Arduino: Relaiskarte ansteuern
Nachdem wir vor einiger Zeit bereits eine Anleitung zur Ansteuerung einer Relaiskarte an dem Raspberry Pi veröffentlicht haben, folgt nun auch ein entsprechendes Tutorial für den Arduino. Eine Warnung vorab: Falls ihr Geräte mit hohen Spannungen betreiben wollt solltet ihr im Zweifelsfall einen Elektriker fragen – Hohe Spannungen sind Lebensgefährlich!
Einkaufsliste:
Zur besseren Übersicht verlinken wir euch die benötigten Bauteile für dieses Tutorial im folgenden:
Arduino Nano + USB-Kabel – Preis ca. 14 Euro – siehe z.B. bei Amazon*.
Relaiskarte (4er) – Preis ca. 8 Euro – siehe z.B. bei Amazon*.
Verbindungskabel – Preis ca. 4 Euro – siehe z.B. bei Amazon*.
Anschluss:
Kommen wir nun zum Anschluss unseres Relais an den Arduino Nano. Zunächst verbinden wir den Ground (GND)-Pin unseres Mikrocontrollers mit dem GND-Pin unseres Relais. Mit einem weiteren Verbindungskabel schließen wir nun den 5 Volt Pin unseres Nanos auch an den 5 Volt Port des Relais an.
Danach müssen wir die einzelnen Schaltpins mit dem Arduino verbinden: Digital-Pin 9 auf Relais IN1-Pin, Digital-Pin 10 auf Relais-IN2 sowie Digital-Pin 11 auf Relais-IN3 und letztendlich Digital-Pin 12 auf den IN4-Pin des Relais.
Überprüft außerdem ob die JDD-VC / VCC-Brücke eurer Relaiskarte vorhanden ist bzw. richtig gesetzt wurde:
Da wir nun alles richtig miteinander verbunden haben, können wir unseren Arduino nun mittels USB-Kabel an unseren Computer anschließen.
Funktionstest:
Um unsere angeschlossene Relaiskarte nun auch auf Funktion zu überprüfen, benötigen wir ein kleines Testprogramm. Im folgenden haben wir euch daher ein solches Demo-Programm auch eingebunden (bitte prüft auch nochmals die Pin-Belegung).
// DEFINE PINS
#define RELAY1 9
#define RELAY2 10
#define RELAY3 11
#define RELAY4 12
// DEFINE DELAY
#define WAIT 2000
void setup()
{
// PINMODE
pinMode(RELAY1, OUTPUT);
pinMode(RELAY2, OUTPUT);
pinMode(RELAY3, OUTPUT);
pinMode(RELAY4, OUTPUT);
// TURN OFF
digitalWrite(RELAY1,HIGH);
digitalWrite(RELAY2,HIGH);
digitalWrite(RELAY3,HIGH);
digitalWrite(RELAY4,HIGH);
}
void loop()
{
digitalWrite(RELAY1,LOW); //R1 ON
delay(WAIT);
digitalWrite(RELAY1,HIGH); //R1 OFF
digitalWrite(RELAY2,LOW); //R2 ON
delay(WAIT);
digitalWrite(RELAY2,HIGH); //R2 OFF
digitalWrite(RELAY3,LOW); //R3 ON
delay(WAIT);
digitalWrite(RELAY3,HIGH); //R3 OFF
digitalWrite(RELAY4,LOW); //R4 ON
delay(WAIT);
digitalWrite(RELAY4,HIGH); //R4 OFF
}
Nachdem wir dieses Programm in die Arduino-IDE übertragen haben, können wir das ganze auf unseren Arduino hochladen. Schaut davor noch ob in den Einstellungen der richtige Port sowie das passende Board ausgewählt wurde.
Video:
Im folgenden haben wir unser Relais-Testprogramm noch als Video eingebunden.
Sicherer Weg, den armen Nano zu schmelzen.
Der 5V-Pin des Nano liefert nur max. 40 mA kurzzeitig.
Besser externe Stromversorgung, an der Nano über VIN-Pin und Relais-Board separat angeschlossen sind.
Niemals den Nano zur 5V oder 3.3V-Stromversorgung für andere Module nutzen.
Ganz besonders aufpassen bei Programmierung über USB. Nach dem Laden des Programms wird es auch sofort gestartet. D.h. zusätzlich zum USB muss vorher schon VIN versorgt werden.
Quellen dafür? 😀
Nach meinen Informationen beschränkt sich die 40 mA Angabe nur auf die reinen Input/Output-Pins, auch der 3.3V Pin sollte nur mit max. 50mA belastet werden.
Dagegen kann der 5V Pin des Arduino ohne Probleme mit etwa 500 mA belastet werden. Hatte hier in der Vergangenheit auch nie Probleme damit.
Wie muss die JDD-VC / VCC-Brücke der Relaiskarte denn gesetzt werden?
Siehe https://www.kollino.de/arduino/4-8-kanal-relais-anleitung/