ho necessita di visualizzare su 2 display
3 tensioni e correnti di panello solare
1 tensione e corrente batteria
e
1 tensione batteria BM
il tutto sara montato nel mio camper
a forza di fare varie prove e incollaggi vari ero riuscito a visualizzare abbastanza bene.
ma adesso non legge piu gli ingressi dove sbaglio ?
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 20, 4);
LiquidCrystal_I2C lcd2(0x23, 10, 2);
int analogInput6 = A6;
int analogInput7 = A7;
int analogInput8 = A8;
int analogInput9 = A9;
int analogInput10 = A10;
float vout6 = 0.0;
float vin6 = 0.0;
float R3 = 100000.0; // inserire valore esatto resistenza R1 (100K)
float R4 = 10000.0; // inserire valore esatto resistenza R2 (10K)
int value6 = A6; //volt
float vout7 = 0.0;
float vin7 = 0.0;
float R5 = 100000.0; // inserire valore esatto resistenza R1 (100K)
float R6 = 10000.0; // inserire valore esatto resistenza R2 (10K)
int value7 = A7; //volt
float vout8 = 0.0;
float vin8 = 0.0;
float R7 = 100000.0; // inserire valore esatto resistenza R1 (100K)
float R8 = 10000.0; // inserire valore esatto resistenza R2 (10K)
int value8 = A8; //volt
float vout9 = 0.0;
float vin9 = 0.0;
float R9 = 100000.0; // inserire valore esatto resistenza R1 (100K)
float R10 = 10000.0; // inserire valore esatto resistenza R2 (10K)
int value9 = A9; //volt
float vout10 = 0.0;
float vin10 = 0.0;
float R11 = 100000.0; // inserire valore esatto resistenza R1 (100K)
float R12 = 10000.0; // inserire valore esatto resistenza R2 (10K)
int value10 = A10; //volt
void setup() {
Serial.begin(9600);
}
void loop()
{
value6 = analogRead(A6); // analogInput
vout6 = (value6 * 5.0) / 1024.0;
// inserire al posto di 5.0V l`uscita in volt tra i Pin 5V e GND del vostro Arduino
vin6 = vout6 / (R4/(R3+R4));
if (vin6<0.09)
vin6=0.0;
value7 = analogRead(A7); // analogInput
vout7 = (value7 * 5.0) / 1024.0;
// inserire al posto di 5.0V l`uscita in volt tra i Pin 5V e GND del vostro Arduino
vin7 = vout7 / (R6/(R5+R6));
if (vin7<0.09)
vin7=0.0;
value8 = analogRead(A8); // analogInput
vout8 = (value8 * 5.0) / 1024.0;
// inserire al posto di 5.0V l`uscita in volt tra i Pin 5V e GND del vostro Arduino
vin8 = vout8 / (R8/(R7+R8));
if (vin8<0.09)
vin8=0.0;
value9 = analogRead(A9); // analogInput
vout9 = (value9 * 5.0) / 1024.0;
// inserire al posto di 5.0V l`uscita in volt tra i Pin 5V e GND del vostro Arduino
vin9 = vout9 / (R10/(R9+R10));
if (vin9<0.09)
vin9=0.0;
value10 = analogRead(A10); // analogInput
vout10 = (value10 * 5.0) / 1024.0;
// inserire al posto di 5.0V l`uscita in volt tra i Pin 5V e GND del vostro Arduino
vin10 = vout10 / (R12/(R11+R12));
if (vin10<0.09)
vin10=0.0;
float average = 0;
for(int i = 0; i < 4000; i++) {
average = average + (.0264 * analogRead(A1) -13.57) / 1000; //average = average + (.0264 * analogRead(A0) -13.51) / 1000;
delay(1); }
float average2 = 0;
for(int i = 0; i < 4000; i++) {
average2 = average2 + (.0264 * analogRead(A2) -13.57) / 1000; //average = average + (.0264 * analogRead(A0) -13.51) / 1000;
delay(1); }
float average3 = 0;
for(int i = 0; i < 4000; i++) {
average3 = average3 + (.0264 * analogRead(A3) -13.57) / 1000; //average = average + (.0264 * analogRead(A0) -13.51) / 1000;
delay(1); }
float average4 = 0;
for(int i = 0; i < 4000; i++) {
average4 = average4 + (.0264 * analogRead(A4) -13.57) / 1000; //average = average + (.0264 * analogRead(A0) -13.51) / 1000;
delay(1); }
float average5 = 0;
for(int i = 0; i < 4000; i++) {
average5 = average5 + (.0264 * analogRead(A5) -13.57) / 1000; //average = average + (.0264 * analogRead(A0) -13.51) / 1000;
delay(1); }
lcd.begin();
lcd2.begin();
lcd.setCursor(0, 0);// prima riga
lcd.print("A");
lcd.print(average,1);
lcd.print(" SOL1"); //
lcd.print(" v "); //
lcd.print( vin6,1);
lcd.setCursor(0, 1);// seconda riga
lcd.print("A"); //
lcd.print(average2,1);
lcd.print(" SOL2"); //
lcd.print(" v "); //
lcd.print(vin7,1);
lcd.setCursor(0, 2);// TERZA riga
lcd.print("A"); //
lcd.print(average3,1);
lcd.print(" SOL3"); //
lcd.print(" v "); //
lcd.print(vin8,1);
lcd.setCursor(0, 3);// 4 riga
lcd.print("A"); //
lcd.print(average4,1); //A4
lcd.print(" SOL TOT "); //
lcd2.setCursor(0, 0);
lcd2.print("A "); // 2 DISPLAY
lcd2.print(average5,1);
lcd2.print("BS V ");
lcd2.print(vin9,2);
lcd2.setCursor(0, 1);
lcd2.print(" BM "); // 2 DISPLAY
lcd2.print(vin10,1);
delay(100);
}