Bonjour,
Ton programme fonctionne très bien de la façon dont tu l'as écrit.
Lors du démarrage ton programme effectue le setup() puis entre dans loop() (qui est une boucle qui s'effectue indéfiniment)
Ton programme effectue ta répétition
for (int i = 0; i < 6; i++) {
pulseRelayON(RELAY_1);
pulseRelayOFF(RELAY_1);
}
Lorsque cette répétition est termine, il recommence puisque c'est le principe même de loop()
Si tu veux exécuter cette boucle qu'une seule fois, il faudra faire différemment, à savoir :
- l’exécuter dans le setup,
- mettre un drapeau pour contrôler l'exécution dans loop,
- plus d'autres solutions (en programmation souvent les solutions sont aussi nombreuses que les programmeurs)
En attendant, fait l'essai suivant :
#define RELAY_1 2
void setup() {
pinMode(RELAY_1, OUTPUT);
digitalWrite(RELAY_1, HIGH);
for (int i = 0; i < 6; i++) {
pulseRelayON(RELAY_1);
pulseRelayOFF(RELAY_1);
}
}
void loop() {
}
void pulseRelayON(int pin) {
digitalWrite(pin, LOW);
delay(600);
}
void pulseRelayOFF(int pin) {
digitalWrite(pin, HIGH);
delay(300);
}
Dans ce cas ton relais va clignoter 5 fois à chaque démarrage de la carte Arduino.
@+