Advertisement
learnelectronics

Arduino battery guage

Oct 7th, 2019
1,894
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.48 KB | None | 0 0
  1. /*
  2.  * *********************************************
  3.  * *    Arduino 12V Battery Capacity Guage     *
  4.  * *                                           *
  5.  * *             learnelectronics              *
  6.  * *         original code by R.Girish         *
  7.  * *                                           *
  8.  * *               Oct. 5, 2019                *
  9.  * *                                           *
  10.  * *     www.youtube.com/c/learnelectronics    *
  11.  * *           arduino0169@gmail.com           *
  12.  * *********************************************
  13.  */
  14.  
  15.  
  16. #include <Wire.h>
  17. #include <Adafruit_GFX.h>
  18. #include <Adafruit_SSD1306.h>
  19.  
  20. #define OLED_RESET 4
  21. Adafruit_SSD1306 display(OLED_RESET);
  22.  
  23.  
  24.  
  25. int analogInput = 0;
  26. int f=2;
  27. int e=3;
  28. int d=4;
  29. int c=5;
  30. int b=6;
  31. int a=7;
  32. int s=13;
  33. float vout = 0.0;
  34. float vin = 0.0;
  35. float R1 = 100000;
  36. float R2 = 10000;
  37. int value = 0;
  38.  
  39.  
  40. void setup()
  41. {
  42.  
  43. display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  44. display.display();
  45. display.clearDisplay();
  46.  
  47. Serial.begin(9600);
  48. pinMode(analogInput,INPUT);
  49. pinMode(s,OUTPUT);
  50. pinMode(a,OUTPUT);
  51. pinMode(b,OUTPUT);
  52. pinMode(c,OUTPUT);
  53. pinMode(d,OUTPUT);
  54. pinMode(e,OUTPUT);
  55. pinMode(f,OUTPUT);
  56. digitalWrite(s,LOW);
  57. digitalWrite(a,HIGH);
  58. delay(500);
  59. digitalWrite(b,HIGH);
  60. delay(500);
  61. digitalWrite(c,HIGH);
  62. delay(500);
  63. digitalWrite(d,HIGH);
  64. delay(500);
  65. digitalWrite(e,HIGH);
  66. delay(500);
  67. digitalWrite(f,HIGH);
  68. delay(500);
  69. digitalWrite(a,LOW);
  70. digitalWrite(b,LOW);
  71. digitalWrite(c,LOW);
  72. digitalWrite(d,LOW);
  73. digitalWrite(e,LOW);
  74. digitalWrite(f,LOW);
  75. }
  76. void loop()
  77. {
  78. value = analogRead(analogInput);
  79. vout = (value * 5.0) / 1024;
  80. vin = vout / (R2/(R1+R2));
  81.   display.setTextSize(1);
  82.   display.setTextColor(WHITE);
  83.   display.setCursor(0,0);
  84.   display.println("  Battery Voltage");
  85.   display.println("");
  86.   display.println("");
  87.   display.setTextSize(3);
  88.   display.print(" ");
  89.   display.println(vin);
  90.   display.display();
  91.   delay(200);
  92.   display.clearDisplay();
  93.  
  94.  
  95.  
  96. Serial.println("Input Voltage = ");
  97. Serial.println(vin);
  98. if(vin>12.46) {digitalWrite(a,HIGH);}
  99. else { digitalWrite(a,LOW);}
  100. if(vin<=12.46 && vin>12.28) {digitalWrite(b,HIGH);}
  101. else { digitalWrite(b,LOW);}
  102. if(vin<=12.28 && vin>12.12) {digitalWrite(c,HIGH);}
  103. else { digitalWrite(c,LOW);}
  104. if(vin<=12.12 && vin>11.98) {digitalWrite(d,HIGH);}
  105. else { digitalWrite(d,LOW);}
  106. if(vin<=11.98 && vin>11.90){digitalWrite(e,HIGH);}
  107. else {digitalWrite(e,LOW);}
  108. if(vin<=11.90) {digitalWrite(f,HIGH);}
  109. else {digitalWrite(f,LOW);}
  110. delay(2000);
  111. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement