Il s'agit de langage C.
A la base, tu as qqch comme :
avec etatDeLabrocheEnSortie qui vaut 1 (présence d'électricité en sortie) ou 0 (absence).
Suivant comment tu câbles ton relais, il peut être alimenté lorsque la sortie est à 0 ou à 1. Pour éviter d'avoir à t'en souvenir quand tu code, tu vas définir les deux états en leur donnant un nom. Par exemple :
Du coup, dans ton code, tu vas alors écrire, pour alimenter ton relais :
et pour couper son alimentation :
Imagine maintenant que tu utilises une entrée (par exemple avec un interrupteur) dont l'état pilote le relais.
Tu vas par exemple écrire le code suivante :
Code : Tout sélectionner
if (digitalRead(entree) == 0) {
digitalWrite(numeroDeLaBroche, RELAY_OFF);
} else {
digitalWrite(numeroDeLaBroche, RELAY_ON);
}
C'est facile à lire, mais ça prend 5 lignes de code... Du coup, il est possible de remplacer ces 5 lignes par :
C'est exactement pareil, une fois compilé, ça ne doit pas aller plus vite, mais c'est plus compact, plus facile à lire quand on a l'habitude, et moins source de bug lors de la modification du code.
Dans ton code, ce n'est pas l'état d'une entrée qui pilote le relais, mais la valeur d'un booléen transmis dans un message et accessible via l'appel message.getBool().
Ce qui revient donc à faire :
Code : Tout sélectionner
if (message.getBool() == 0) {
digitalWrite(RELAY_PIN, RELAY_OFF);
} else {
digitalWrite(RELAY_PIN, RELAY_ON);
}
Si tu veux aller plus loin, tu peux aller consulter ce lien :
https://c.developpez.com/cours/poly-c/? ... 2#LII-B-18