Problema semplice progetto con sensori di luminosità

Ho realizzato un progetto semplicissimo in cui ci sono 2 resistori fotoelettrici e 2 led. Arduino deve verificare dove c'è più luce e accendere alternativamente un led. Il problema è che qualunque sia lo stato dei resistori e i loro valori, arduino tiene sempre accesi entrambi i led.

Il programma è il seguente:

int luminosita1;
int luminosita2;
int led1=2;
int led2=1;
int sensore1=A0;
int sensore2=A1;

void setup()
{
  Serial.begin(9600);
  pinMode(sensore1, INPUT);
  pinMode(sensore2, INPUT);
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
}

void loop()
{
  luminosita1 = analogRead(sensore1);
  luminosita2 = analogRead(sensore2);
  if(luminosita1>luminosita2){
  digitalWrite(led1, HIGH);
  digitalWrite(led2, LOW);
  }
  if(luminosita2>luminosita1){
  digitalWrite(led1, LOW);
  digitalWrite(led2, HIGH);
  }
  Serial.print("luminosita1 = ");
  Serial.println(luminosita1);
  Serial.print("luminosita2 = ");
  Serial.println(luminosita2);
  delay(500);
}

Dove sbaglio?

Togli

pinMode(sensore1, INPUT);
  pinMode(sensore2, INPUT);

perché cosí definisci i due pin come entrate digitali. Le entrate analogiche non hanno bisogno del pinMode()

Se non era quello dacci lo schema elettrico e cosa stampa lo sketch sul terminale.
Ciao Uwe

ciao

Mammolos:
Dove sbaglio?

quando fai un analogread su più ingressi la prima lettura la devi buttare.
prova così

void loop()
{
  luminosita1 = analogRead(sensore1);
  luminosita1 = analogRead(sensore1);
  luminosita2 = analogRead(sensore2);
  luminosita2 = analogRead(sensore2);
  if(luminosita1>luminosita2){
   ...

ciao
pippo72

uwefed:
Togli

pinMode(sensore1, INPUT);

pinMode(sensore2, INPUT);



perché cosí definisci i due pin come entrate digitali. Le entrate analogiche non hanno bisogno del pinMode()

Se non era quello dacci lo schema elettrico e cosa stampa lo sketch sul terminale.
Ciao Uwe

Grazie mille, funziona :wink: