Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Contrôler 65 280 relais avec Arduino : solutions d'extension IO et relais

Composants et fournitures

Composant Quantité Notes
Arduino Nano R3 1
Extenseur IO (IO Expander) 1 Extenseur IO
Extenseur Relais (Relay Expander) 1
Extenseur IO (IO Extender) 1
Carte relais 16 canaux Arduino 1

Applications et services en ligne

À propos du projet

Utilisez l'Extenseur IO et l'Extenseur Relais pour contrôler jusqu'à 65 280 relais.

Besoin d'ajouter beaucoup de relais à votre projet ? Alors vous avez besoin de l'Extenseur IO avec des Externseurs Relais. Chaque Externseur IO peut contrôler jusqu'à 16 Externseurs Relais en chaîne pour un total de 256 relais. En connectant 255 Externseurs IO ensemble, vous pouvez contrôler sélectivement jusqu'à 65 280 relais.

Contrôler des relais avec un seul Externseur IO

Contrôler 65 280 relais avec Arduino : solutions d extension IO et relais

Liste des fonctionnalités

Pièces nécessaires pour construire une banque de relais

Schéma de câblage

Contrôler 65 280 relais avec Arduino : solutions d extension IO et relais

Note : Dans le schéma ci-dessus, l'Extenseur IO et l'Arduino Nano sont alimentés par la première carte relais. Tous les Externseurs Relais sont alimentés par la carte relais à laquelle ils sont connectés.

Code : Contrôler 64 relais avec un seul Externseur

/* IO Expander
 * Contrôler 64 Relais
 */
#include <SoftwareSerial.h>
#include "IOExpander.h"
#include <avr/wdt.h>
//#define SERIAL_DEBUG
#define MAX_RELAYS 64

#ifdef SERIAL_DEBUG
SoftwareSerial swSerial(8,7);
#endif

char cmd[10];

void setup() {
  Serial.begin(115200);
  #ifdef SERIAL_DEBUG
  swSerial.begin(115200);
  swSerialEcho = &swSerial;
  #endif
  wdt_enable(WDTO_8S);
  sprintf(cmd, "eb%d", MAX_RELAYS / 16);
  SerialCmdDone(cmd);
}

void loop() {
  static int i = 1;
  sprintf(cmd, "e%df", i);
  SerialCmdDone(cmd);
  if (i++ >= MAX_RELAYS) i = 1;
  sprintf(cmd, "e%do", i);
  SerialCmdDone(cmd);
  delay(100);
  wdt_reset();
}

Plusieurs Externseurs IO contrôlant des relais

Une autre façon de contrôler des relais est d'utiliser plusieurs Externseurs IO. Cela permet de distribuer capteurs et relais vers un réseau central ou en étoile, mais d'interconnecter tous les Externseurs IO sur un bus série unique. Si vous devez séparer les Externseurs IO jusqu'à 1200 m (4000 ft), utilisez les Externseurs IO (IO Extenders) comme montré ci-dessous avec du câble réseau Cat5 standard.

Contrôler 65 280 relais avec Arduino : solutions d extension IO et relais

Schéma de câblage

Contrôler 65 280 relais avec Arduino : solutions d extension IO et relais

Note : Dans le schéma ci-dessus, tous les Externseurs IO et l'Arduino Nano sont alimentés par la première carte relais via le bus série. Tous les Externseurs Relais sont alimentés par la carte relais à laquelle ils sont connectés.

Code : Contrôler 64 relais avec plusieurs Externseurs

/* IO Expander
 * Relay Bonnaza with IO Expanders!
 */
#include <HardwareSerial9Bit.h>
#include "IOExpander9Bit.h"
#include <avr/wdt.h>
#define MAX_BOARDS 4

char cmd[10];

void setup() {
  Serial9Bit.begin(115200, SERIAL_9N1);
  Serial9Bit.write(0); // Set IO Expanders to 9-bit
  wdt_enable(WDTO_8S);
  for (int board = 1; board <= 4; board++)
    SerialCmdDone(board, "eb1");
}

void loop() {
  static int board = 1;
  static int relay = 1;
  sprintf(cmd, "e%df", relay);
  SerialCmdDone(board, cmd);
  if (++relay > 16) {
    relay = 1;
    if (++board > MAX_BOARDS) board = 1;
  }
  sprintf(cmd, "e%do", relay);
  SerialCmdDone(board, cmd);
  delay(100);
  wdt_reset();
}

Alors pourquoi ai-je besoin de contrôler autant de relais ?

Une telle application est l'aquaponie ou l'hydroponie. Beaucoup de capteurs et dispositifs doivent être automatisés jusqu'à chaque bac de culture ou plante individuelle. Cela nécessite une entrée/sortie extrême et l'Extenseur IO la fournit.

Contrôler 65 280 relais avec Arduino : solutions d extension IO et relais

Procurez-vous votre Externseur IO aujourd'hui et construisez votre système !

Code

Contrôler 64 relais avec un seul Externseur (C/C++)

/* IO Expander * * Control 64 Relays * */
#include <SoftwareSerial.h>
#include "IOExpander.h"
#include <avr/wdt.h>
//#define SERIAL_DEBUG
#define MAX_RELAYS 64
#ifdef SERIAL_DEBUG
SoftwareSerial swSerial(8,7);
#endif
char cmd[10];
void setup() {
  Serial.begin(115200);
  #ifdef SERIAL_DEBUG
  swSerial.begin(115200);
  swSerialEcho = &swSerial;
  #endif
  wdt_enable(WDTO_8S);
  sprintf(cmd, "eb%d", MAX_RELAYS / 16);
  SerialCmdDone(cmd);
}
void loop() {
  static int i = 1;
  sprintf(cmd, "e%df", i);
  SerialCmdDone(cmd);
  if (i++ >= MAX_RELAYS) i = 1;
  sprintf(cmd, "e%do", i);
  SerialCmdDone(cmd);
  delay(100);
  wdt_reset();
}

Contrôler 64 relais avec plusieurs Externseurs (C/C++)

/* IO Expander * * Relay Bonnaza with IO Expanders! * */
#include <HardwareSerial9Bit.h>
#include "IOExpander9Bit.h"
#include <avr/wdt.h>
#define MAX_BOARDS 4
char cmd[10];
void setup() {
  Serial9Bit.begin(115200, SERIAL_9N1);
  Serial9Bit.write(0); // Set IO Expanders to 9-bit
  wdt_enable(WDTO_8S);
  for (int board = 1; board <= 4; board++)
    SerialCmdDone(board, "eb1");
}
void loop() {
  static int board = 1;
  static int relay = 1;
  sprintf(cmd, "e%df", relay);
  SerialCmdDone(board, cmd);
  if (++relay > 16) {
    relay = 1;
    if (++board > MAX_BOARDS) board = 1;
  }
  sprintf(cmd, "e%do", relay);
  SerialCmdDone(board, cmd);
  delay(100);
  wdt_reset();
}

Schémas

Contrôler 65 280 relais avec Arduino : solutions d extension IO et relais Contrôler 65 280 relais avec Arduino : solutions d extension IO et relais

Processus de fabrication

  1. Contrôler votre ventilateur de plafond avec Alexa : Guide étape par étape
  2. Construire une Tirelire Intelligente : Contrôler un Accepteur de Pièces avec Arduino Nano
  3. Centre de contrôle d'alimentation Arduino : N-FET, P-FET, Relais et RTC
  4. Contrôler une LED par Bluetooth avec Arduino et MIT App Inventor
  5. Contrôleur d'humidificateur DIY avec Arduino et relais – Installation haute tension sécurisée
  6. Contrôler 2 moteurs pas-à-pas avec Arduino Nano et joystick – Tutoriel Visuino
  7. Contrôler une LED Arduino avec Cortana via Bluetooth sur Windows 10
  8. ThimbleKrox : Contrôle Souris au Doigt avec Arduino Micro et MPU-6050
  9. Contrôle de ventilateur PWM 4 broches 25 kHz avec Arduino Uno – Construction, code et test