#include <LiquidCrystal_I2C.h>
#define I2C_ADDR 0x27
#define LCD_COLUMNS 20 // ou 20
#define LCD_LINES 4 // ou 4
LiquidCrystal_I2C lcd(I2C_ADDR, LCD_COLUMNS, LCD_LINES);
float maiorAtual, maiorAnterior=0;
int i=0;
void setup() {
lcd.init();
lcd.backlight();
pinMode(8, OUTPUT);
}
void loop() {
lcd.setCursor(0, 0);
unsigned long tempo = millis();
lcd.print("Tempo(s): ");
lcd.print((tempo/1000.),2);
lcd.setCursor(0, 1);
lcd.print("S1:");
float v1 = analogRead(0)*5./1023;
lcd.print(v1,3);
lcd.print("V S2:");
float v2 = analogRead(1)*5./1023;
lcd.print(v2,3);
lcd.print("V");
lcd.setCursor(0, 2);
float v3 = analogRead(2)*5./1023;
lcd.print("S3:");
lcd.print(v3,3);
float v4 = analogRead(3)*5./1023;
lcd.print("V S4:");
lcd.print(v4,3);
lcd.print("V");
if(v1>v2&&v1>v3&&v1>v4){
analogWrite(3,1);
analogWrite(4,0);
analogWrite(5,0);
analogWrite(6,0);
maiorAtual=v1;
if(i=0){
maiorAnterior=maiorAtual;
}
}
if(v2>v1&&v2>v3&&v2>v4){
analogWrite(3,0);
analogWrite(4,1);
analogWrite(5,0);
analogWrite(6,0);
maiorAtual=v2;
if(i=0){
maiorAnterior=maiorAtual;
}
}
if(v3>v1&&v3>v2&&v3>v4){
analogWrite(3,0);
analogWrite(4,0);
analogWrite(5,1);
analogWrite(6,0);
maiorAtual=v3;
if(i=0){
maiorAnterior=maiorAtual;
}
}
if(v4>v1&&v4>v2&&v4>v3){
analogWrite(3,0);
analogWrite(4,0);
analogWrite(5,0);
analogWrite(6,1);
maiorAtual=v4;
if(i=0){
maiorAnterior=maiorAtual;
}
}
if(maiorAtual!=maiorAnterior){
maiorAnterior=maiorAtual;
tone(8,20);
delay(100);
noTone(8);
}
delay(10);
i=1;
}