- #include <LiquidCrystal.h>
-
-
- LiquidCrystal lcd(12, 11, 10, 9, 8, 7);
-
- const float referenceVolts = 5; // the default reference on a 5-volt board
- //const float referenceVolts = 3.3; // use this for a 3.3-volt board
-
- const float R1 = 10000; // value for a maximum voltage of 10 volts
- const float R2 = 10000;
- // determine by voltage divider resistors, see text
- const float resistorFactor = 1023.0 / (R2/(R1 + R2));
- const int batteryPin = 0; // +V from battery is connected to analog pin 0
-
- int sensorPin3 = A3; // select the input pin for the potentiometer
-
- int sensorValue0 = 0; // variable to store the value coming from the sensor
- int sensorValue3 = 0; // variable to store the value coming from the sensor
-
-
- void setup() {
- // initialize serial communication at 9600 bits per second:
- Serial.begin(9600);
- lcd.begin(20,4); // columns, rows. use 16,2 for a 16x2 LCD, etc.
- lcd.clear(); // start with a blank screen
- }
-
- void loop() {
-
- int val = analogRead(batteryPin); // read the value from the sensor
- float volts = (val / resistorFactor) * referenceVolts ; // calculate the ratio
- Serial.print("Volts :");
- Serial.println(volts); // print the value in volts
-
- float average = 0;
- for(int i = 0; i < 1000; i++) {
- average = average + (.0264 * analogRead(A3) -13.51) / 1000;
- delay(1);
- }
- Serial.print("Amps :");
- Serial.println(average);
-
- lcd.setCursor(0,0); // set cursor to column 0, row 0 (the first row)
- lcd.print("Volts:"); // change this text to whatever you like. keep it clean.
- lcd.setCursor(0,1); // set cursor to column 0, row 1
- lcd.print(volts);
-
- // if you have a 4 row LCD, uncomment these lines to write to the bottom rows
- // and change the lcd.begin() statement above.
- lcd.setCursor(0,2); // set cursor to column 0, row 2
- lcd.print("Amps");
- lcd.setCursor(0,3); // set cursor to column 0, row 3
- lcd.print(average);
-
- }