Commande de relais Reed par GPIO
publication: 30 décembre 2023 / mis à jour 30 décembre 2023
Piloter un relais Reed
Piloter une LED, c'est bien. Mais piloter de vrais appareils, c'est mieux. Mais dès qu'on souhaite piloter d'autres appareils se posent certains problèmes:
- puissance nécessaire pour activer/désactiver les appareils
- garatir une isolation galvanique entre la carte RP pico et les appareils à piloter;
- disposer d'un interface de pilotage dont les tensions sont compatibles avec la tension de commande et la tension et puissance à commander.
On ne pilote pas une lampe LED 230V comme on commande un moteur électrique de piscine de près de 1000W sous 230V.
Le pilotage de circuits de puissance nécessite des relais adaptés. Or, ces relains ne peuvent pas se commander directement depuis une carte RP pico, sauf à disposer d'une activation électronique. Oubliez les relais de kit ARDUINO. Ces relais ne tiennent pas dans le temps pour la commande de gros circuits. Nous verrons en fin d'article certaines solutions adaptées à des cas précis.
Le relais REED
Les relais REED sont adaptés au pas des composants pour cartes électroniques:

Certains de ces relais sont sensibles aux champs magnétiques intenses et peuvent être activés mécaniquement par la proximité d'un aimant permanent.
Principaux intérêts des relais REED:
- Petits et légers: Les relais REED sont très petits et légers, ce qui les rend idéaux pour les applications compactes.
- Coût abordable: Les relais REED sont relativement abordables, ce qui les rend attrayants pour les applications à petit budget.
- Haute fiabilité: Les relais REED sont très fiables et peuvent supporter des millions de cycles de commutation.
- Résistance aux vibrations: Les relais REED sont résistants aux vibrations, ce qui les rend idéaux pour les applications mobiles.
- Résistance aux chocs: Les relais REED sont résistants aux chocs, ce qui les rend idéaux pour les applications où des chocs peuvent se produire.
Ces relais ne conviennent pas pour la commutation de courants importants. On réservera leur usage pour la commande de relais industriels.
Pilotage du relais REED par la carte RP pico
La commande du relais REED est triviale. Elle s'effectue exactement comme l'allumage d'une LED connectée à un port GPIO.

Ici, un relais REED à 4 pins. Les pins sont numérotés 1 3 5 et 7 en partant de la gauche. Schéma fonctionnel:

Branchement des connecteurs à la carte RP pico:
- connecteur +3 vers le GPIO qui active le relais
- connecetur -5 vers GND de la carte RP pico
La majorité du code FORTH reprend celui du précédent article "Initiation aux ports GPIO".
Dans notre exemple, on connecte le GPIO 07 vers le connecteur +3 du relais:
07 constant MY_RELAY \ Reed Relay on GPIO 7 : relay_init ( -- ) MY_RELAY GPIO_FUNC_SIO gpio_set_function MY_RELAY GPIO-OUT gpio_set_dir ;
Ensuite, on définit simplement les mots permettant d'activer ou désactiver le relais reed:
: relay_state ( state -- ) MY_RELAY swap gpio_put ; : relay_on ( -- ) GPIO_HIGH relay_state ; : relay_off ( -- ) GPIO_LOW relay_state ;
Gestion d'un relais industriel bistable
Voici une petite variante permettant de commander un relais industriel bistable. Un relais bistable se verrouille ou se déverrouille selon la commande reçue. Cette commande est une simple impulsion. Pour notre cas, les impulsions seront transmises par deux relais REED connectés à notre carte RP pico. Exemple de relais bistable:

Les relais bistables ont plusieurs avantages:
- ne nécessitent aucune alimentation de la bobine pour conserver l'état ouvert ou fermé;
- conservent l'état ouvert ou fermé en cas de coupure électrique;
- faciles à mettre en oeuvre;
Le modèle présenté ici commute un courant pouvant atteindre 16A sous 230V. C'est suffisant pour commander une pompe de piscine par exemple, un système d'éclairage collectif, un radiateur électrique de 2000W....
On définit d'abord les deux ports GPIO qui vont activer deux relais REED distincts:
07 constant MY_RELAY_ON \ Reed Relay on GPIO 7 08 constant MY_RELAY_OFF \ Reed Relay on GPIO 8
Ensuite, on initialise ces deux ports GPIO:
: relays_init ( -- )
MY_RELAY_ON GPIO_FUNC_SIO gpio_set_function
MY_RELAY_ON GPIO-OUT gpio_set_dir
MY_RELAY_OFF GPIO_FUNC_SIO gpio_set_function
MY_RELAY_OFF GPIO-OUT gpio_set_dir
;
Et pour finir, on définit deux mots permettant d'activer ou désactiver le relais bistable:
200 value ACTION_DELAY : bistable_on ( -- ) MY_RELAY_ON GPIO_HIGH gpio_put ACTION_DELAY ms MY_RELAY_ON GPIO_LOW gpio_put ; : bistable_off ( -- ) MY_RELAY_OFF GPIO_HIGH gpio_put ACTION_DELAY ms MY_RELAY_OFF GPIO_LOW gpio_put ;
Ici, on met un délai de 300 millisecondes pour gérer la durée d'activation ou désactivation du relais bistable. Cette valeur peut être ajustée.
Legal: site web personnel sans commerce / personal site without seling