contare quante volte si accendono i led

ciao ragazzi, spero mi possiate aiutare, ho gia cercato altre discussioni e sulla base di cio che ho trovato ho modificato più e più volte lo sketch che vi propongo.
purtroppo non riesco a raggiungere il risultato.
a me servirebbe che sul monitor seriale vengano stampati i valori di due variabili, dipendenti da due led.
praticamente il prototipo prevede 2 led, uno rosso e uno verde.
l’accensione dei led è pilotata dai valori di due fotoresistori, quando entrambi i fotoresist. sono al buio, si accende il led verde.
quando solo uno dei due è al buio, si accende il led rosso.

io vorrei che quando lo stato dei led cambia, il contatore scattase di una unità

allego lo sketh di partenza

int FotoValue;
int FotoValue2;
int ledPin1 = 2;

int ledPin2 = 4;
 
void setup() { 
  
  pinMode(ledPin1, OUTPUT);
  pinMode(ledPin2, OUTPUT);

}
 
void loop() {
  FotoValue = analogRead(A1);
  FotoValue2 = analogRead(A2);
  
  if (FotoValue< 1000&& FotoValue2< 1000) {
    digitalWrite(ledPin1, HIGH);
    delay (10);
    digitalWrite(ledPin1, LOW);
    
}   
    else if (FotoValue> 1000&& FotoValue2< 1000){
    digitalWrite(ledPin2, HIGH);
    delay (10);
    digitalWrite(ledPin2, LOW);
}
    
    else if (FotoValue< 1000&& FotoValue2> 1000){
    digitalWrite(ledPin2, HIGH);
    delay (10);
    digitalWrite(ledPin2, LOW);
}
    else if (FotoValue> 1000&& FotoValue2> 1000){
    digitalWrite(ledPin2,LOW);
    digitalWrite(ledPin1, LOW);
}
 delay(10);
}
int countGreen = 0;                 //contatore led verde
int countRed =0;                              //contatore led rosso

int FotoValue;
int FotoValue2;
int ledPin1 = 2;

int ledPin2 = 4;
 
void setup() { 
  Serial.begin(9600);
  pinMode(ledPin1, OUTPUT);
  pinMode(ledPin2, OUTPUT);

}
 
void loop() {
  FotoValue = analogRead(A1);
  FotoValue2 = analogRead(A2);
    
  if (FotoValue< 1000 && FotoValue2< 1000) {
    digitalWrite(ledPin1, HIGH);
    delay (10);
    digitalWrite(ledPin1, LOW);
    countGreen++;                                  //incrementa contatore led verde
}   
 if (FotoValue > 1000 || FotoValue2 > 1000){
    digitalWrite(ledPin2, HIGH);
    delay (10);
    digitalWrite(ledPin2, LOW);
    countRed++;                   //incrementa contatore led rosso
}
   
Serial.println (countRed);
Serial.println (countGreen);
 delay(10);
}

perchè tutti quei else if?
se le condizioni sono queste:
“l’accensione dei led è pilotata dai valori di due fotoresistori, quando entrambi i fotoresist. sono al buio, si accende il led verde.
quando solo uno dei due è al buio, si accende il led rosso.”
le condizioni da verificare sono solo 2 :wink:

ti consiglio di studiarti un po il C di arduino

[u]http://arduino.cc/en/Reference/HomePage[/u]

comunque va benissimo lo sketh che ha messo l'utente ricdata

no, non va bene lo sketch che ha postato ricdata , comunque grazie ugualmente.
Che mi dovrei studiare il linguaggio di arduino già lo so…

 int FotoValue;
int FotoValue2;
int ledPinVERDE = 2;
int ledPinROSSO = 4;
int fronte;
int caciotta;
int num_giusti=0;
int num_sbagliati=0;
unsigned int temp_min1=0;
unsigned int temp_min2=0;
#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 8, 7, 6, 5);

 
void setup() { 
  
  pinMode(ledPinVERDE, OUTPUT);
  pinMode(ledPinROSSO, OUTPUT);
Serial.begin(9600);
// set up the LCD's number of columns and rows: 
  lcd.begin(16, 2);
  // Print a message to the LCD.
  lcd.setCursor(0, 0);
  lcd.print("si    no     tot");
  
  

}

 
void loop() {
  FotoValue = analogRead(A1);
  FotoValue2 = analogRead(A2);
  lcd.setCursor (13, 1);
  lcd.print (num_giusti+num_sbagliati);
  
  //*************************************************************************************************************************************************************************************** 
  
  if (FotoValue< 1000&& FotoValue2< 1000) 
  { /* in questo caso entrambe le LDR risultano al buio
       vuol dire che il passo del pz. è abbastanza lungo da occuparle entrambe
       */
    digitalWrite(ledPinVERDE, HIGH); //accendo la luce verde
    digitalWrite(ledPinROSSO, LOW);
     if (fronte==0){ //se la variabile fronte è uguale a zero
     num_giusti++; // il contatore dei passi giusti aumenta di uno
      //questo valore viene stampato sul monitor seriale
      Serial.println (num_giusti);
      lcd.setCursor(0, 1);
      lcd.print(num_giusti);
      fronte=1; /*assegno a fronte il valore uno, così facendo blocco il ciclo if
                in quanto fronte diventa diversa da zero*/
      caciotta=0;          
      temp_min1=0;
      temp_min2=0;
      
     
    }}   
    
    
    //*************************************************************************************************************************************************************************************
    
    
    else if (FotoValue> 1000&& FotoValue2< 1000){
    temp_min1++;
      if (FotoValue> 1000&& FotoValue2< 1000&& temp_min1>35){
      /*nei due casi successivi le LDR non sono occupate contemporaneamente
      ciò indica che il pz. ha cambiato dei parametri del proprio passo
      quali velocità o lunghezza*/
      digitalWrite(ledPinROSSO, HIGH); //il pz. sbaglia quindi gli viene presentata la luce rossa
      digitalWrite(ledPinVERDE, LOW);
      fronte=0;
        if (caciotta==0){
        num_sbagliati++;
        Serial.println (num_sbagliati);
        lcd.setCursor (6, 1);
        lcd.print(num_sbagliati);
        caciotta=1;
        temp_min2=0;
        
    }}}
    
    //*************************************************************************************************************************************************************************************
    else if (FotoValue< 1000&& FotoValue2> 1000){
    temp_min2++;
      if (FotoValue< 1000&& FotoValue2> 1000 && temp_min2>35){
      digitalWrite(ledPinROSSO, HIGH);
      digitalWrite(ledPinVERDE, LOW);
      fronte=0;
        if (caciotta==0){
        num_sbagliati++;
        Serial.println (num_sbagliati);
        lcd.setCursor (6, 1);
        lcd.print(num_sbagliati);
        caciotta=1;
        temp_min1=0;
         
    }}}
    
    
    //***************************************************************************************************************************************************************************************
    
    
    else if (FotoValue> 1000&& FotoValue2> 1000){
      //in questo caso entrambe le LDR sono illuminate, dovrebbe corrispondere alla fase oscillatoria del passo
    digitalWrite(ledPinROSSO,LOW);
    digitalWrite(ledPinVERDE, LOW);
    fronte=0;
    caciotta=0;
    temp_min1=0;
    temp_min2=0;
    
    
    
    //*************************FINE**********************************
  }delay (10);
  }

grazie a te.