Appuyez sur Entrée pour voir vos résultats ou Echap pour annuler.

Comment contrôler un relais avec Arduino

Ça faisait longtemps, mais je reprends où j’ai laissé. Voici le 3è article de la série sur Arduino. Vous avez vu les bases de l’Arduino dans le premier article, vous avez appris à lire un signal (IR) en entrée dans le deuxième, et aujourd’hui, je vous montre comment contrôler un relais pour en produire une sortie.

Qu’est-ce qu’un relais?

Un relais est un circuit électrique permettant de contrôler le flot de courant, comme un interrupteur pour les lumières. La différence est qu’un interrupteur traditionnel fonctionne de façon mécanique, soit en l’activant physiquement avec votre doigt, alors qu’un relais fonctionne avec un courant électrique.

À l’intérieur, le processus reste mécanique. Le circuit de contrôle active un électroaimant qui tire une plaquette de métal qui active la connexion du circuit à contrôler. On peut d’ailleurs l’entendre très bien lorsque le relais s’active. L’avantage d’un relais est aussi qu’il isole complètement les deux circuits, permettant ainsi d’activer un circuit dans lequel circule un courant plus fort.

Sur la photo ci-dessus, vous pouvez voir les limites des deux circuits. Dans mon application pour cet article, je vais utiliser un courant de 5V provenant du Arduino pour activer un circuit de 110V, soit l’équivalent de ce qu’on retrouve dans une maison.

Étape 1 – Le circuit de 110V

IMPORTANT : Si vous reproduisez, sachez que nous ne sommes en aucun cas responsable des accidents. Soyez prudent, ce genre de courant peut vous tuer.

Dans un premier temps, il faut avoir une source de courant de 110V et une façon de ressortir ce dernier après l’avoir passer dans le relais. J’utilise ici un connecteur standard avec du fil électrique approprié. En connectant ça dans une prise, on aura un courant alternatif.

Étape 2 – La prise

Pour la sortie, je veux que ce soit une prise de courant dans laquelle je pourrai y brancher une lampe. Je pourrai utiliser le relais pour allumer et fermer la lampe, à titre d’exemple pour cet article.

Le principe est donc de prendre le fil noir qui sera connecté à la prise à titre de source de courant, de le couper en deux pour y brancher le relais, puis de brancher les deux bouts à la prise, comme ceci :

Ou en vrai :

Puis on attache le relais sur les bouts de fil noir. Le relais que j’utilise ici a une entrée de courant, puis 2 sorties. Une étant normalement ouverte, l’autre normalement fermée, comme le démontre le schéma sous le circuit du relais.

Ce qui devrait donner quelque chose comme ceci :

Étape 3 – Le code

Maintenant qu’on a couvert le premier côté du circuit, la partie à 110V, il faut connecter le relais à l’Arduino. Comme démontré dans le premier article, un Arduino a des « pins » de sortie qui peuvent être utilisées dans le code. On dit que l’état de la « pin » est à HIGH ou LOW dépendamment si du courant passe ou non.

Pour le code, je reprends et améliore celui du dernier article dans lequel on affichait « Vol UP » ou « Vol DOWN » lorsqu’on appuie sur ces touches sur une télécommande de télévision. Le principe sera simple. On va devoir faire un « cheat code », une combinaison de touches sur la télécommande, pour activer ou désactiver le relais 😀

Gamification de la domotique 😐

Donc, pour débuter, on va activer une des « pins » de l’Arduino en mode « sortie », dans la fonction setup().

Ceci nous permettra « d’écrire » sur la « pin » pour produire la sortie :

Note : Le relais que j’utilise est un relais « active low » signifiant que je dois inverser la sortie de l’Arduino. Par exemple, mettre la « pin » à HIGH fermera le relais et vice-versa.

Pour la partie « cheat code », je garde un « buffer » de touches appuyées que je vide systématiquement lorsqu’aucune touche n’est appuyée pendant une seconde. Je vide aussi le buffer lorsqu’il est plein, après avoir validé si son contenu est équivalent au « cheat code ».

J’autorise aussi l’utilisateur d’appuyer sur une touche jusqu’à 300 millisecondes, ce qui est approximativement l’équivalent au temps que ça prend pour cligner des yeux.

Je vous laisse explorer le code que j’ai mis sur GitLab si ça vous intéresse. Un fois qu’on a définit la pin comme étant en mode sortie, on peut la connecter au relais. Le relais a 3 connecteurs, un pour le courant de 5V stable, un pour le GROUND ou 0V, et le dernier pour le contrôle. La pin de contrôle est celle que nous allons connecter à l’Arduino.

Le résultat final, quoique broche à foin, ressemble à ceci :

Conclusion

Une fois le code téléversé sur l’Arduino, on est en mesure d’activer ou de désactiver le relais à distance avec n’importe quelle télécommande de télévision en faisant « Vol UP, Vol UP, Vol DOWN, Vol UP » 😀

Ça me fait trop penser au truc des 30 vies à Contra au NES…

Bref, vous avez appris aujourd’hui comment on peut se servir d’un Arduino pour contrôler des périphériques qui demandes du courant plus fort. On pourrait penser à une pompe qui arroserait les plantes (sortie) lorsque le sol est sec (entrée, capteur d’humidité), un ventilateur qui démarre s’il fait trop chaud ou encore ouvrir les lumières s’il fait trop sombre. Vous avez le choix, le monde d’Arduino est un écosystème encore très effervescent.

Pour le prochain article de la série, je vous propose de mettre ce projet au propre afin de pouvoir l’utiliser sans m’électrocuter. Plus, mon Arduino Mega pour un projet comme ça, c’est l’équivalent de chasser une mouche avec un bazooka. Je voudrais vous montrer par le fait même comment on peut écrire notre code sur une puce ATTinny85 (~2$ vs ~50$ pour Arduino Mega).

Merci de partager dans vos réseaux! Vous êtes notre porte-voix. Si vous faites un projet avec Arduino, prenez des photos et envoyez-les moi!

Suivez-nous par courriel!

Saisissez votre adresse courriel pour vous abonner au blog d'Ezo et recevoir une notification de chaque nouvel article par email.