Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Steuern Sie bis zu 65.280 Relais mit Ihrem Arduino!

Komponenten und Verbrauchsmaterialien

Arduino Nano R3
× 1
IO-Expander
IO-Expander
× 1
Relais-Expander
× 1
IO Extender
× 1
Arduino 16 Relaisplatine
× 1

Apps und Onlinedienste

Arduino-IDE

Über dieses Projekt

Verwenden Sie den IO-Expander und den Relais-Expander, um bis zu 65.280 Relais zu steuern.

Müssen Sie Ihrem Projekt viele Relais hinzufügen? Dann benötigen Sie den IO-Expander mit Relais-Expander. Jeder IO-Expander kann bis zu 16 verkettete Relais-Expander für insgesamt 256 Relais steuern. Wenn Sie dann 255 IO-Expander miteinander verbinden, können Sie bis zu 65.280 Relais selektiv steuern.

Steuerrelais mit einem einzelnen IO-Expander

Funktionsliste

  • Verwenden Sie billige Arduino-16-Relaiskarten für <$15.
  • Einfach zu verwendende Relaissteuerbefehle.
  • Steuern Sie jeweils ein einzelnes Relais oder eine Bank.
  • Kein Treiber erforderlich. Codeplatz sparen.
  • Kein Datenraum, um den Relaisstatus aufrechtzuerhalten.
  • Keine zusätzliche Stromversorgung erforderlich.

Benötigte Teile zum Bau einer Relaisbank

  • IO-Expander
  • IO-Extender
  • Relais-Expander
  • Arduino 16 Relaisplatine

Schaltplan

Hinweis: Im obigen Schaltplan werden der IO-Expander und Arduino Nano von der ersten Relaisplatine mit Strom versorgt. Alle Relaiserweiterungen werden von der Relaisplatine mit Strom versorgt, an die sie angeschlossen sind.

/* IO Expander
*
* 64 Relais steuern
*
*/
#include
# include "IOExpander.h"
#include
//#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();
}

Mehrere E/A-Erweiterungen, die Relais steuern

Eine andere Möglichkeit, Relais zu steuern, besteht darin, mehrere IO-Expander zu verwenden. Dies gibt uns die Möglichkeit, Sensoren und Relais auf ein zentrales oder sternförmiges Netzwerk zu verteilen, aber dennoch alle IO-Expander auf einem einzigen seriellen Bus zu verbinden. Wenn Sie die IO-Expander bis zu einer Höhe von 4000 Fuß trennen müssen, verwenden Sie die IO-Extender wie unten gezeigt mit dem standardmäßigen blauen Cat5-Netzwerkkabel.

Schaltplan

Hinweis: Im obigen Schaltplan werden alle IO-Expander und Arduino Nano von der ersten Relaisplatine über den seriellen Bus mit Strom versorgt. Alle Relaiserweiterungen werden von der Relaisplatine mit Strom versorgt, an die sie angeschlossen sind.

/* IO-Expander
*
* Bonnaza mit IO-Expandern weiterleiten!
*
*/
#include
#include "IOExpander9Bit.h"
#include
#define MAX_BOARDS 4
char cmd[10];
void setup()
{
Serial9Bit.begin(115200, SERIAL_9N1);
Serial9Bit.write(0); // IO-Expander auf 9-Bit setzen
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" , Relais);
SerialCmdDone(board, cmd);
if (++relay> 16) {
relay =1;
if (++board> MAX_BOARDS) board =1;
}
sprintf(cmd, "e%do", Relais);
SerialCmdDone(board, cmd);
delay(100);
wdt_reset( );
}

Warum muss ich also so viele Relais steuern?

Eine solche Anwendung liegt in der Aquaponik oder Hydroponik. Viele Sensoren und Geräte müssen bis hin zu jedem Anbaubeet oder jeder einzelnen Pflanze automatisiert werden. Dies erfordert extreme IO und der IO Expander liefert.

Holen Sie sich also noch heute Ihren IO Expander und bauen Sie Ihr System!

Code

  • Steuern Sie 64 Relais mit einem einzigen Expander
  • 64 Relais mit mehreren Expandern steuern
Steuerung von 64 Relais mit einem einzigen ExpanderC/C++
/* IO Expander * * 64 Relais steuern * */#include #include "IOExpander.h"#include //#define SERIAL_DEBUG#define MAX_RELAYS 64#ifdef SERIAL_DEBUGSoftwareSerial swSerial(8,7);#endifchar 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); Verzögerung (100); wdt_reset();}
64 Relais mit mehreren Expandern steuernC/C++
/* IO-Expander * * Bonnaza mit IO-Expander weiterleiten! * */#include #include "IOExpander9Bit.h"#include #define MAX_BOARDS 4char cmd[10];void setup(){ Serial9Bit.begin(115200, SERIAL_9N1); Serial9Bit.write(0); // IO-Expander auf 9-Bit setzen wdt_enable(WDTO_8S); for (int board =1; board <=4; board++) SerialCmdDone(board, "eb1");}void loop(){ static int board =1; statisches int-Relais =1; sprintf(cmd, "e%df", Relais); SerialCmdDone(board, cmd); wenn (++ Relais> 16) { Relais =1; if (++board> MAX_BOARDS) board =1; } sprintf(cmd, "e%do", Relais); SerialCmdDone(board, cmd); Verzögerung (100); wdt_reset();}

Schaltpläne


Herstellungsprozess

  1. Aktivieren Sie die Alexa-Steuerung für Ihren Deckenventilator
  2. Münzprüfer mit Arduino steuern
  3. Arduino-Kontrollzentrum
  4. Arduino mit Bluetooth zur Steuerung einer LED!
  5. Arduino-Befeuchtersteuerung
  6. Arduino Nano:Steuerung von 2 Schrittmotoren mit Joystick
  7. Steuern Sie Ihre LED mit Cortana
  8. ThimbleKrox - Maussteuerung mit den Fingern
  9. Steuern Sie Ihr Lichtsystem mit einem Smartphone
  10. 25-kHz-4-Pin-PWM-Lüftersteuerung mit Arduino Uno