Contrôler et synchroniser des centaines de relais sans effort avec des expandeurs d'E/S
Composants et fournitures
- Expandeur d'E/S (IO Expander) (×2)
- Expandeur de relais (Relay Expander) (×2)
- Carte 16 relais (×2)
- Arduino Nano R3 (×1)
À propos du projet
Besoin de contrôler et synchroniser des centaines de relais simultanément ? Connectez votre Arduino, ESP8266, Raspberry Pi, PC ou Mac à un expandeur d'E/S avec expandeurs de relais et utilisez la nouvelle fonctionnalité de verrouillage externe (External Latching).
Cela permet d'envoyer les nouveaux états des relais dans un format bit compact prêt à être verrouillé. Ensuite, une seule ligne GPIO (du MCU ou de la sortie de l'expandeur d'E/S) fait basculer toutes les données verrouillées en même temps.
Voir aussi notre projet « Contrôler jusqu'à 65 280 relais avec votre Arduino » !
Configuration du verrouillage externe sur l'expandeur d'E/S
Avec la structure de commande simple de l'expandeur d'E/S, configurons un cas d'usage : contrôle d'une carte 16 relais avec verrouillage externe.
- Définir la broche GPIO [4] en sortie avec niveau haut [1] :
g4o1 - Activer la détection de front descendant sur GPIO [10] :
g10n - Activer le verrouillage externe de l'expandeur de relais sur broche [10] :
el10
>g4o1;g10n;el10
ok
ok
10
>
Maintenant, on peut allumer/éteindre les relais de l'expandeur (e1o, e10o, e16o) puis activer le verrouillage en mettant GPIO 4 à bas pendant 1 ms (g4o0,1). La broche 4 revient à l'état haut pour être prête au verrouillage suivant.
>e1o;e10o;e16o
ok
ok
ok
>g4o0,1
ok
>
Étendons à 2 expandeurs d'E/S, 2 expandeurs de relais, 2 cartes 16 relais avec un Arduino Nano. Les 2 expandeurs d'E/S sont chainés en multidrop protocole 9 bits (max 255 expandeurs).
Schéma de verrouillage externe
Schéma de câblage (image non incluse).
Code Arduino
/* IO Expander
* Relay Expander External Latching
*/
#include <HardwareSerial9Bit.h>
#include "IOExpander9Bit.h"
#include <avr/wdt.h>
//#define SERIAL_DEBUG
#define MAX_BOARDS 2
#ifdef SERIAL_DEBUG
SoftwareSerial swSerial(8,7);
#endif
void setup() {
Serial9Bit.begin(115200, SERIAL_9N1);
Serial9Bit.write(0); // Set IO Expanders to 9-bit
#ifdef SERIAL_DEBUG
swSerial.begin(115200);
swSerialEcho = &swSerial;
#endif
wdt_enable(WDTO_8S);
for (uint8_t board = 1; board <= MAX_BOARDS; board++)
SerialCmdDone(board, "eb1");
SerialCmdDone(1, "g4o1;g10n;el10"); // Setup GPIO for external latch of relays
SerialCmdDone(2, "g10n;el10");
}
void loop() {
static uint16_t i = 0;
uint8_t r[2];
r[0] = ~(uint8_t)(i >> 8);
r[1] = ~(uint8_t)i++;
SerialWriteRelayExpander(1, r, 2);
delay(50);
r[0] = ~r[0]; // Invert all relays on board 2
r[1] = ~r[1];
SerialWriteRelayExpander(2, r, 2);
delay(50);
SerialCmdDone(1, "g4o0,1"); // Latch all relays
wdt_reset();
}
Verrouillage externe en action
Vidéo de démonstration : RelayExpanderLatching.mp4
Procurez-vous votre expandeur d'E/S et construisez votre système !
Schéma de câblage
Schéma électrique (image non incluse).
Processus de fabrication
- Maîtriser le SaaS : stratégies pour garder le contrôle tout en exploitant le cloud
- Pourquoi les entrepôts devraient adopter l'IoT maintenant : booster efficacité, précision, sécurité
- Panneaux de contrôle électriques : Essentiels de conception pour la sécurité et le ROI
- Améliorer l'efficacité avec un robot réactif chez Energy Dynamics
- Reprenez le contrôle de votre cycle d'achat : Stratégies éprouvées pour les fabricants
- Le calculateur moteur (ECU/PCM) : le cerveau de votre véhicule
- Relais automobiles : fonctionnement, types, câblage et diagnostic
- Relais électriques : guide complet (types, applications, sélection)
- Première assurance auto : guide pas à pas pour une couverture abordable