Bonjour,
J'ai un comportement étrange avec un module relais 16 alimenté en 12v
Le module est connecté à une Mega par 16 pins + 1 GND.
Le module est alimenté par une alimentation 12V 1,25A
L'arduino par une 2ème alimentation 12V 1,25A
J'essaie de faire un test de déclenchement de chaque relais, mais il ne se passe rien....
Par contre quand je coupe le courant de la multiprise où sont branchées les alimentations, pendant une 1/2 seconde les relais s'enclenchent avant de s'éteindre à nouveau :o
J'imagine que le problème vient de l'alimentation, mais je comprends pas très bien pourquoi. Avez vous une idée de ce qui peut générer cet allumage lors de la coupure de courant et comment je peux régler mon problème d'activation des relais ?
Voici le module 16 relais
et voici le code :
#define Relay1 22
#define Relay2 23
#define Relay3 24
#define Relay4 25
#define Relay5 26
#define Relay6 27
#define Relay7 28
#define Relay8 29
#define Relay9 30
#define Relay10 31
#define Relay11 32
#define Relay12 33
#define Relay13 34
#define Relay14 35
#define Relay15 36
#define Relay16 37
#define RELAY_ON 0
#define RELAY_OFF 1
void setup()
{
digitalWrite(Relay1,RELAY_OFF);
digitalWrite(Relay2,RELAY_OFF);
digitalWrite(Relay3,RELAY_OFF);
digitalWrite(Relay4,RELAY_OFF);
digitalWrite(Relay5,RELAY_OFF);
digitalWrite(Relay6,RELAY_OFF);
digitalWrite(Relay7,RELAY_OFF);
digitalWrite(Relay8,RELAY_OFF);
digitalWrite(Relay9,RELAY_OFF);
digitalWrite(Relay10,RELAY_OFF);
digitalWrite(Relay11,RELAY_OFF);
digitalWrite(Relay12,RELAY_OFF);
digitalWrite(Relay13,RELAY_OFF);
digitalWrite(Relay14,RELAY_OFF);
digitalWrite(Relay15,RELAY_OFF);
digitalWrite(Relay16,RELAY_OFF);
}
void loop()
{
digitalWrite(Relay1,RELAY_ON);
digitalWrite(Relay2,RELAY_OFF);
digitalWrite(Relay3,RELAY_OFF);
digitalWrite(Relay4,RELAY_OFF);
digitalWrite(Relay5,RELAY_OFF);
digitalWrite(Relay6,RELAY_OFF);
digitalWrite(Relay7,RELAY_OFF);
digitalWrite(Relay8,RELAY_OFF);
delay(1000);
digitalWrite(Relay1,RELAY_OFF);
digitalWrite(Relay2,RELAY_ON);
digitalWrite(Relay3,RELAY_OFF);
digitalWrite(Relay4,RELAY_OFF);
digitalWrite(Relay5,RELAY_OFF);
digitalWrite(Relay6,RELAY_OFF);
digitalWrite(Relay7,RELAY_OFF);
digitalWrite(Relay8,RELAY_OFF);
delay(1000);
digitalWrite(Relay1,RELAY_OFF);
digitalWrite(Relay2,RELAY_OFF);
digitalWrite(Relay3,RELAY_ON);
digitalWrite(Relay4,RELAY_OFF);
digitalWrite(Relay5,RELAY_OFF);
digitalWrite(Relay6,RELAY_OFF);
digitalWrite(Relay7,RELAY_OFF);
digitalWrite(Relay8,RELAY_OFF);
delay(1000);
digitalWrite(Relay1,RELAY_OFF);
digitalWrite(Relay2,RELAY_OFF);
digitalWrite(Relay3,RELAY_OFF);
digitalWrite(Relay4,RELAY_ON);
digitalWrite(Relay5,RELAY_OFF);
digitalWrite(Relay6,RELAY_OFF);
digitalWrite(Relay7,RELAY_OFF);
digitalWrite(Relay8,RELAY_OFF);
delay(1000);
digitalWrite(Relay1,RELAY_OFF);
digitalWrite(Relay2,RELAY_OFF);
digitalWrite(Relay3,RELAY_OFF);
digitalWrite(Relay4,RELAY_OFF);
digitalWrite(Relay5,RELAY_ON);
digitalWrite(Relay6,RELAY_OFF);
digitalWrite(Relay7,RELAY_OFF);
digitalWrite(Relay8,RELAY_OFF);
delay(1000);
digitalWrite(Relay1,RELAY_OFF);
digitalWrite(Relay2,RELAY_OFF);
digitalWrite(Relay3,RELAY_OFF);
digitalWrite(Relay4,RELAY_OFF);
digitalWrite(Relay5,RELAY_OFF);
digitalWrite(Relay6,RELAY_ON);
digitalWrite(Relay7,RELAY_OFF);
digitalWrite(Relay8,RELAY_OFF);
delay(1000);
digitalWrite(Relay1,RELAY_OFF);
digitalWrite(Relay2,RELAY_OFF);
digitalWrite(Relay3,RELAY_OFF);
digitalWrite(Relay4,RELAY_OFF);
digitalWrite(Relay5,RELAY_OFF);
digitalWrite(Relay6,RELAY_OFF);
digitalWrite(Relay7,RELAY_ON);
digitalWrite(Relay8,RELAY_OFF);
delay(1000);
digitalWrite(Relay1,RELAY_OFF);
digitalWrite(Relay2,RELAY_OFF);
digitalWrite(Relay3,RELAY_OFF);
digitalWrite(Relay4,RELAY_OFF);
digitalWrite(Relay5,RELAY_OFF);
digitalWrite(Relay6,RELAY_OFF);
digitalWrite(Relay7,RELAY_OFF);
digitalWrite(Relay8,RELAY_ON);
delay(1000);
}