strano comportamento scheda 4 rele

ho realizzato questo codice per provare la mia scheda 4 rele arduino ma la cosa strana (ho controllato i collegamenti e sono regolari) e che si eccitano i relè quando l'uscita e bassa e rimangono spenti quando l'uscita è alta. Credendo che fosse un problema arduino ho staccato i collegamenti in1-in4 e li ho connessi a 5v e non si eccitano, se li metto a massa si eccitano. Sbaglio io a pensare che il livello deve essere HIGH per eccitarli ma serve LOW o c'è qualcosa che non và?

  int rl1 = 4;   
   int rl2 = 5;   
   int rl3 = 6;  
   int rl4 = 7;  

void setup() {
  pinMode(rl1, OUTPUT);  
  pinMode(rl2, OUTPUT);  
  pinMode(rl3, OUTPUT); 
  pinMode(rl4, OUTPUT); 

}

void loop() {
  
     digitalWrite(rl1,LOW);    // spenge - rele1
     digitalWrite(rl2,LOW);    // spenge - rele2
     digitalWrite(rl3,HIGH);   // accende - rele3
     digitalWrite(rl4,HIGH);   // accende - rele2
}

mistervolt-70:
... Sbaglio io a pensare che il livello deve essere HIGH per eccitarli ma serve LOW ...

Eh, sì. Quelle schede attivano i relè con ingresso LOW.

Ciao,
P.

Ho notato che la scheda a 1 rele si attiva con livello HIGH, sai come funzionano quelle a 2 e a 8?

il 99% delle schede che trovi per Arduino ( e non ) sono a logica negata, quindi si attivano con LOW

mistervolt-70:
Ho notato che la scheda a 1 rele si attiva con livello HIGH, sai come funzionano quelle a 2 e a 8?

Ma lo schema elettrico é uguale?
Solo il fatto che su una schedina ci sono dei relé non vuol dire che hanno tutti lo stesso circuito elettrico.

Ciao Uwe

uwefed:
Ma lo schema elettrico é uguale?
Solo il fatto che su una schedina ci sono dei relé non vuol dire che hanno tutti lo stesso circuito elettrico.

questo l'ho capito. Dato che ho usato per primo nelle mie esperienze la scheda a 1 rele che si attiva con il livello HIGH, credevo che anche le altre avrebbero utilizzato la stessa logica HIGH...

È necessario verificare le caratteristiche della scheda relè che si acquista e modificare di conseguenza il programma. È la soluzione più semplice che ho trovato.

Ciao,
P.

pgiagno:
È necessario verificare le caratteristiche della scheda relè che si acquista e modificare di conseguenza il programma. È la soluzione più semplice che ho trovato.

Tra l'altro se si scrive il programma in modo ordinato è una modifica elementare:

#define ON_LEVEL   ...   <- HIGH o LOW a seconda della scheda
#define OFF_LEVEL  ...   <- HIGH o LOW a seconda della scheda


....
digitalWrite(RELE2, ON_LEVEL);  <-- non serve mai modificare il programma