Problema codice con porte logiche

ciao,
Sto cercando di trasformare uno schema con delle porte logiche in un programma arduino… finora senza successo.

Gli input sono dei pulsanti, inoltre dove è situata l’uscita BLK_MOV_89L_L1 ; BLK_MOV_89S_L1 e MOV_52 sono presenti dei led.

il codice finora è:

//DEFINISCO I PIN INPUT E GLI OUTPUT E GLI ASSEGNO UN NOME//

#define input_52_L1 24       
#define input_89L_L1 22
#define input_89S_L1 23

#define output_52_L1 30
#define output_89S_L1 29
#define output_89L_L1 28

// DEFINISCO DELLE VARIABILI BOOLEANE//
int BLK_89L_L1;
int BLK_89S_L1;
int BLK_ALL_L1 ;
int MOV_52_L1;

void setup() {
  
   pinMode(input_52_L1, INPUT);
   pinMode(input_89L_L1, INPUT);
   pinMode(input_89S_L1, INPUT);

   pinMode (output_52_L1, OUTPUT);
   pinMode (output_89L_L1, OUTPUT);
   pinMode (output_89S_L1, OUTPUT);
      
}

void loop() {
         // SE INPUT 89L è ALTO E BLK_89S è BASSO E MOV_52 è BASSO ALLORA: OUTPUT 89L E BLK_89L SONO ALTI PER 4 SECONDI//
    
    if((input_89L_L1 == HIGH) &&( BLK_89S_L1 == LOW) && (MOV_52_L1 ==LOW)) 
  { 
    digitalWrite (output_89L_L1, HIGH);                                   
    digitalWrite (BLK_89L_L1, HIGH);
    delay (4000);
    digitalWrite (BLK_89L_L1, LOW);
    digitalWrite (output_89L_L1, LOW);
}
       // SE INPUT 89S è ALTO E BLK_89L è BASSO E MOV_52 è BASSO ALLORA: OUTPUT 89S E BLK_89S SONO ALTI PER 4 SECONDI//
  
  if((input_89S_L1 == HIGH )&& (BLK_89L_L1 == LOW) && (MOV_52_L1 ==LOW))
{   
    digitalWrite (output_89S_L1, HIGH);
    digitalWrite (BLK_89S_L1, HIGH);
    delay (4000);
    digitalWrite (BLK_89S_L1, LOW);
    digitalWrite (output_89S_L1, LOW);
}

// SE BLK_89L OPPURE BLK_89S SONO ALTI ALLORA BLK_ALL è ALTO
  
  if((BLK_89L_L1 == HIGH )|| (BLK_89S_L1 == HIGH))
{ 
  digitalWrite (BLK_ALL_L1, HIGH);
  
}
// SE  INPUT 52 è ALTO E BLK_ALL è BASSO ALLORA: OUTPUT 52 E MOW_52 SONO ALTI PER 500MS 
  
  if((input_52_L1 == HIGH) && (BLK_ALL_L1 == LOW))
{ 
    digitalWrite (output_52_L1, HIGH);
    digitalWrite (MOV_52_L1, HIGH);
    delay (500);
    digitalWrite (MOV_52_L1, LOW);
    digitalWrite (output_52_L1, LOW);
}

  
   }

Caricato il codice su Arduino Mega 2560, collegati i pulsanti con relative resistenze di pull up o pull down e collegati i led con le relative resistenze… non succede un bel niente.

Ho sicuramente sbagliato qualcosa nel codice ma il problema sorge quando bisogna capire cosa si ha sbagliato… qualcuno può aiutarmi???

Ti invitiamo a presentarti qui: http://forum.arduino.cc/index.php?topic=113640.0 e a leggere il regolamento: http://forum.arduino.cc/index.php?topic=149082.0 - qui una serie di schede by xxxPighi per i collegamenti elettronici vari: http://forum.arduino.cc/index.php?topic=146152.0 - qui le pinout delle varie schede by xxxPighi: http://forum.arduino.cc/index.php?topic=151646.0 - qui una serie di link utili: http://forum.arduino.cc/index.php?topic=126861.0

ciao,

Ho sicuramente sbagliato qualcosa nel codice...

Non c'è un digitalRead a pagarlo oro :fearful: :fearful:

#define input_52_L1 24  
#define input_89L_L1 22
....
   if((input_89L_L1 == HIGH) &&( BLK_89S_L1 == LOW) && (MOV_52_L1 ==LOW)) 
....

input_89L_L1 è il numero del pin , NON il valore letto su quel pin.

 if((digitalRead(input_89L_L1) == HIGH) &&( BLK_89S_L1 == LOW) && (MOV_52_L1 ==LOW))

così suona un po' meglio

ciao pippo72

p.s. questo è il primo di tanti altri errori....