Ciao a tutti ragazzi, ho un problema che mi affligge da 2 giorni e ho già provato a fare ricerche su internet ma non ho trovato nulla.
Praticamente ho 2 fotoresistenze (foto e foto1) con corrispettivi valori variabili (val e val1) e devo comandare 2 led (led e led1).
Devo far si che se val>val1 mi si accenda led, se invece val1>val mi si accenda il led1 e se uno è acceso l'altro non può accendersi, quindi non devo avere entrambi i led accesi
In più se ho val=val1 entrambi i led mi si devono spegnere. Il problema è che non riuscirò mai ad avere i valori perfettamente uguali per vari fattori quindi l'uguaglianza devo farla in un range (100) dalla differenza dei 2 valori quindi |val-val1|<100.
In esempio pratico se R1=470 e R2=630 mi si accende led1 perchè R2 è maggiore, se invece ho R1=640 e R2=570 non si accende nessun led perchè la differenza è minore di 100.
Ho provato ad impostare il programma ma non funziona la seconda parte cioè quella di spegnere entrambi i led con la differenza minore di 100, potete aiutarmi perfavore?
Qua metto lo sketch che ho utilizzato
int foto = 0;
int foto1 = 1;
int led = 8;
int led1 = 5;
int val = 0;
int val1 = 0;
void setup() {
pinMode(led , OUTPUT);
pinMode(led1 , OUTPUT);
}
void loop() {
val = analogRead(foto);
val1 = analogRead(foto1);
if(abs(val-val1)<100)
digitalWrite(led && led1,LOW);
else{
if(val>val1){
digitalWrite(led,HIGH);
digitalWrite(led1,LOW);
}
if(val1>val){
digitalWrite(led1,HIGH);
digitalWrite(led,LOW);
}
}
}