Arduino-Einstieg: Schritt für Schritt mit Fotos und Erklärungen
Viele Arduino-Tutorials beschränken sich auf Code und ein Schema für den Schaltkreis - aber reicht das? Klar, das Projekt wird funktionieren. Aber versteht Ihr das auch wirklich? Könnt Ihr danach etwas eigenes basteln? Wir fangen exakt bei Null an, kein Vorwissen nötig, nutzen Fotos statt Grafiken und erklären jeden einzelnen Schritt. Auch für die Software. Ein Einstieg für Menschen, die noch nie mit Bastel-Computern und Platinen zu tun hatten.
Über den Artikel
Warum noch ein Tausendstes Arduino-Tutorial? Es gibt bereits etliche Tutorials, aber drei Dinge stören fast immer: Nur ein kompletter Schaltkreis zum Nachstecken, keine Einzelschritte. Schemata (meist von Fritzing) statt Fotos. Kaum Erklärungen, was da genau passiert. Komplette Schaltkreise nachzubasteln ist doch immer wieder frickelig, Schemata entsprechen oft nicht exakt der Realität, was es für Laien schwieriger macht und fehlende Erklärungen sorgen zwar für ein funktionierendes Projekt. Aber eigene Erweiterungen oder ganze Projekte bekommt man damit auch nicht.
Was gibt es hier? Wir zeigen hier alles, damit Ihr den Arduino in Betrieb nehmen und mit Software versorgen, Schaltkreise per Breadboard aufbauen und Sketches (Arduino-Skripte) gaaanz grob verstehen könnt. Im Detail sieht das dann so aus:
- Ganz kurz zum Arduino, Liste der Bauteile.
- Kommunikation mit dem Arduino, Software hochladen.
- Anschlüsse auf dem Arduino.
- Arbeit mit dem Breadboard.
- RGB-LED blau leuchten lassen.
- RGB-LED dimmen per Software.
- RGB-LED dimmen per Potentiometer.
- RGB-LED blau, rot, grün blinken lassen.
Aber natürlich haben auch wir ein Fritzing-Bild - wohlgemerkt für das letzte Beispiel:
Kurz über Arduino
Arduino ist eigentlich ein ganzes Ökosystem aus Hardware-Spezifikationen, Bauteilen, Entwicklungs-Software und Dokumentation. Wenn hier von "dem Arduino" sprechen, meinen wir natürlich das Arduino-Board. Davon gibt es verschiedene Ausführungen. Hier kommt ein Arduino Mega 2560 von Elegoo zum Einsatz. Es kann aber auch ein Mega von einem anderen Hersteller oder ein ganz anderes Arduino-Board sein, etwa ein Arduino Uno - die hier gezeigten Grundlagen passen auch auf viele andere Boards, selbst das Beispiel lässt sich übernehmen.
Bauteile werdet Ihr vermutlich haben - bestimmt habt Ihr ein Arduino-Set gekauft, oder? Mit dem Most Complete Starter Kit Mega 2560 von Elegoo nutzen wir hier ein ziemlich umfangreiches Set, die nötigen Bauteile sollten aber selbst in den kleinsten Sammlungen vorhanden sein:
- Arduino Mega 2560 oder ähnliches Board.
- 3 x 220-Ohm-Widerstand.
- 10K-Potentiometer.
- Breadboard.
- RGB-LED (Standard LED tut's auch).
- 8 x Verbindungskabel.
Workflow: Das Umsetzen eines Projekts folgt immer dem gleichen Muster: Schaltkreis aufbauen, Arduino per USB mit dem PC verbinden, Code in der Arduino-Software laden/eingeben, Software auf Arduino hochladen, Projekt bestaunen. Wir beginnen aber damit, die Arduino-Software einzurichten, damit Ihr später das Beispielprojekt sofort testen könnt.
Software auf Arduino laden
Besorgt Euch die aktuelle Software und installiert sie. Etwaige Software auf einer CD im Arduino-Set könnt Ihr ignorieren. Schließt anschließend den Arduino per USB am Rechner an - es sollte das übliche Windows-hats-erkannt-Geräusch folgen. Startet nun die Software "Arduino".
Der Software müsst Ihr nun das verwendete Board (hier Mega 2560) und den verwendeten Port angeben. Beides findet Ihr im Werkzeuge-Menü. Den richtigen Port müsst Ihr nur aus der angebotenen Liste auswählen - neben dem Standard "COM1" wird Euch da nur noch der USB-Port des Boards angeboten.
Anschließend könnt Ihr zum Testen ein beliebiges Sketch, wie Skripte/Programme in der Arduino-Welt heißen, über den kleinen Rechtspfeil oben links im Programmfenster hochladen. Wenn die Meldung "Hochladen beendet" kommt, ist alles in Ordnung. Ihr könnt das Board nun wieder vom PC entfernen.
Manchmal verwenden Projekte Bibliotheken. Das ist Software mit Funktionen, die in vielen Projekten benötigt werden, beispielsweise zum Ansteuern eines Displays. Solche Bibliotheken könnt Ihr über das Werkzeuge-Menü installieren und aktivieren. Für unsere Einführung ist das nicht nötig.
Arduino-Anschlüsse
Auf dem Mega findet Ihr 86 Anschlüsse (plus USB/Strom) - das scheint zunächst verwirrend. Aber schaut mal auf die Platine, die Beschriftung hilft bereits: Es gibt den Bereich PWM, was für Pulsweitenmodulation steht, und analogen Output erlaubt (etwa zum Dimmen einer LED). Der Bereich Digital liefert digitalen Output (etwa zum Ein-/Ausschalten einer LED). Der Bereich Analog in nimmt analoge Signale in Empfang, die Pins unter Communicatins kommunizieren mit angeschlossenen Computern und sonstigen Geräten und alles unter Power dient der Stromversorgung. Apropos: Pins mit der Beschriftung GND, also Ground/Erdung, gibt es mehrmals - welchen Ihr nutzt ist egal.
PWM-Detail: Nicht alle Pins in dem Bereich sind wirklich PWM-tauglich! Bei dem Elegoo-Board befinden sich außen deutliche Beschriftungen: Nur Pins mit einer angehängten ~/Tilde sind PWM-tauglich.
Das Breadboard
Man könnte Schaltkreise auch ohne Steckbrett (oder Lötplatine) aufbauen - man hätte dann einen riesigen Kabelball ... Ein Breadboard macht die Arbeit einfach etwas, nun, einfacher. Die Standard-Breadboards bestehen aus zwei unabhänigen Hälften, geteilt durch die tiefe Einkärbung längs. Ganz außen liegen zwei Längsverbindungen für die Stromversorgung der beiden Hälften. Tipp: Die meisten Anleitungen zeigen die Breadboards quer liegend und mit der blauen Minus-/Erde-/Ground-Verbindung unten.
In den durchnummerierten Reihen sind die Verbindungen natürlich quer, so dass alle Bauteile in einer Reihe auf einer Hälfte automatisch verbunden sind. Strom kann jede Reihe bei Bedarf aus der längsseitigen Versorgung abzapfen. Supersimpelbeispiel: Ihr könntet einen beliebigen Anschluss der Plus-Schiene mit dem 5V-Pin und einen beliebigen Anschluss der Minus-Schiene mit dem GND-Pin des Arduino verbinden - und hättet damit schon mal Strom. Steckt Ihr dann eine LED mit dem langen Beinchen in die Plus- und dem kurzen Beinchen in die Minus-Schiene, egal wo, fließt Strom mit 5 Volt durch die LED - und grillt sie damit, weil zu viel Strom.
RGB-LED blau leuchten lassen
Eine RGB-LED beinhaltet eine rote, eine grüne und eine blaue LED, alle mit einem eigenen Plus-Anschluss und einem gemeinsamen Minus-Beinchen - hier das längere. Ihr könnt auch eine normale LED nehmen, da zunächst nur die blaue LED angeschlossen und genutzt wird. Den allerletzten Schritt werdet Ihr dann auch so verstehen.
Beginnt mit der LED in der oberen Hälfte: Steckt sie so, dass das längere Minus-Beinchein (die Kathode), das zweite von links ist - dann stimmt die Reihenfolge R, G, B bei den drei restlichen Beinchen. (Wie genau Bauteile beschaltet sind, müsst Ihr schlicht und ergreifend nachschlagen.)
Minus-Seite des Schaltkreises: Verbindet nun die Kathode mit der blauen Minus-Leiste der unteren Hälfte - wo genau ist egal. Und nun fehlt noch eine Verbindung von der Minus-Leiste zu einem GND-Pin am Arduino. Standardmäßig werden hier schwarze Kabel verwendet.
Fehlt noch die Plus-Seite des Stromkreises: Verbindet den 5V-Pin mit einem Anschluss auf der unteren Hälfte des Breadboards, direkt gegenüber des ganz rechten Beinchens der RGB-LED, also der blauen LED darin. Am besten mit einem blauen Kabel. (Ihr könntet all die Bauteile auch andernorts einstecken und verbinden - aber so ist es schön übersichtlich.) Verbindet nun letztlich die Reihe mit dem 5V-Anschluss mit der Reihe des rechten Beinchens der RGB-LED - und zwar mit einem Widerstand, damit die LED nicht wie oben erwähnt brutzelt. Ein 220-Ohm-Widerstand genügt, alles bis rauf zu 1 Kiloohm funktioniert.
Exkurs Widerstände: Leider sind die Widerstände in den Sets oft schlecht zu entziffern und nicht beschriftet. Ihr findet hier eine Auflösung der Farbcodes auf den Widerständen - und zwar auch wenn es nicht vier, sondern fünft Ringe sind. Der letzte Ring ist meistens entweder gold und/oder hat einen größeren Abstand als die anderen Ringe zueinander. 220 Ohm erkennt Ihr an den Sequenzen Rot, Rot, Schwarz, Schwarz bei 5 Ringen und Rot, Rot, Braun bei 4 Ringen - egal, was danach folgt.
Nun könnt Ihr den Arduino per USB oder Netzteil mit Strom versorgen. Und das passiert: Der Strom kommt vom 5-Volt-Pin, durchfließt den Widerstand, in das Beinchein der blauen LED innerhalb der RGB-LED und zurück durch das lange Minus-Beinchen/die Kathode und die Minus-Leiste zum GND-Pin auf dem Arduino. Die LED leuchtet - wie spannend ... Klemmt den Strom nun wieder ab.
RGB-LED dimmen 1: Software
Bislang wurde nichts gesteuert. Das heißt, dass es zum einen keine Software gab, zum anderen permanente 5-Volt-Stromversorgung. Beides wird nun anders. Ändert zunächst den Schaltkreis etwas ab: Auf dem Arduino kommt das blaue Kabel nun vom 5V-Pin in den Pin 3 im Bereich PWM (PWM-Pin, zu erkennen an der Tilde). Über diesen Output-Pin kann dann gleich via Software gesteuert werden, wann und wieviel Strom zur blauen LED kommt.
Klemmt den Arduino wieder an den PC, startet die Arduino-Software (kurz IDE: Integrated Development Environment, also Entwicklungsumgebung) und startet ein neues Sketch. Kopiert folgenden Code hinein und ladet ihn hoch:
// Pin definieren
#define BLUE 3
// Pin-Modus und analogen Output setzen
void setup()
{
pinMode(BLUE, OUTPUT);
analogWrite(BLUE, 127);
}
Der Code ist extrem minimalistisch: Zunächst wird dem Pin 3 der name BLUE zugeschrieben. Es folgt die setup-Funktion, die schlicht und ergreifend immer ausgeführt wird, wenn der Arduino ein neues Sketch bekommt oder resettet wird (über den kleinen, einzigen Knopf auf dem Board). Darin wird der Modus des Pins auf Output gesetzt, damit klar ist, was mit dem Signal passieren soll (eben "outputten" ...) und letztlich wird über analogWrite ein Wert an BLUE übergeben: Werte können hier zwischen 0 (aus) und 255 (maximaler Strom) wanken. Der hier vergebene Wert von 127 dimmt die LED also rund um die Hälfte. Aber ein echter Dimmer ist das noch nicht - er folgt.
Übrigens: Ein digitalWrite würde über alle Pins auf dem Arduino funktionieren, könnte aber nur die Werte HIGH und LOW ausgeben, die LED also nur an oder aus machen - folgt auch gleich.
RGB-LED dimmen 2: Potentiometer
Ein echter Dimmer sollte über einen Schalter funktionieren, beziehungsweise hier über einen Drehregler, den Potentiometer. Das ist nichts weiter als ein variabler Widerstand, der sich bis auf einen bestimmten Wert hochschrauben lässt. Hier ist es ein Potentiometer mit bis zu 10 Kiloohm. Dieser hat drei Anschlüsse: Rein, Raus und Erde. Stellt die Stromversorgung zunächst wieder auf konstant um, steckt also das blaue Kabel wieder in den 5V-Pin.
Platziert nun das Potentiometer ein Stückchen abseits der RGB-LED. Die drei Beinchen benötigen zwei Reihen auf ganzer Breite - die Seite mit zwei Beinen sollte zu Euch zeigen, damit man wie gewohnt nach rechts "aufdrehen" kann.
Dieser Poti soll den fixen Widerstand ersetzen - entfernt den Widerstand also und steckt jeweils ein blaues Kabel dorthin, wo eben noch der Widerstand steckte. (Auch das könnte wieder woanders stecken, aber wo wird deutlich, dass der Poti 1:1 den Widerstand ersetzt.)
Der Ausgang des Potis ist zwischen den beiden Beinchen - verbindet also das blaue Kabel vom Beinchen der blauen LED mit diesem Ausgang.
Den Eingang (beim Widerstand war es der Pin in der unteren Breadboard-Hälfte) setzt Ihr auf das vordere rechte Beinchen des Potis - also von Euch aus gesehen hinten rechts am Poti, in die Reihe des Beinchens.
Dem linken Beinchein des Potis spendiert Ihr nun noch eine Verbindung zur Minus-Leiste. Gebt dem Arduino wieder Strom und dreht am Poti - ein Dimmer in Action!
RGB-LED blau, rot, grün blinken lassen
Zieht wieder den Stromstecker und wechselt abermals die Stromzufuhr für die blaue LED vom 5V-Pin zu Pin 3, um sie wieder via Software steuern zu können. Jetzt kommen endlich die beiden anderen LEDs in der RGB-LED ins Spiel: Schließt zunächst die rote LED, also das linke Beinchen, an Pin 6 an - wie ganz am Anfang die blaue LED: Rotes Kabel von Pin 6 in eine Reihe auf dem Breadboard und aus der Reihe eine Verbindung mit einem 220-Ohm-Widerstand zum linken Rote-LED-Beinchen.
Und dasselbe macht Ihr mit der grünen LED, die an Pin 5 kommt. Die Pins 3, 5 und 6 sind PWE-fähig, Pin 4 ist es nicht, daher die Lücke.
Schließt den Arduino wieder an, startet die IDE und ein neues Projekt und ladet folgenden Code hoch:
// Pins definieren
#define BLUE 3
#define GREEN 5
#define RED 6
// Initialisierung bei reset
void setup()
{
pinMode(RED, OUTPUT);
pinMode(GREEN, OUTPUT);
pinMode(BLUE, OUTPUT);
digitalWrite(RED, LOW);
digitalWrite(GREEN, LOW);
digitalWrite(BLUE, LOW);
}
// Endlosschleife
void loop()
{
delay(2000);
digitalWrite(RED, HIGH); // Rote LED geht an
digitalWrite(GREEN, LOW);
digitalWrite(BLUE, LOW);
delay(2000);
digitalWrite(RED, LOW);
digitalWrite(GREEN, HIGH); //Grüne LED geht an
digitalWrite(BLUE, LOW);
delay(2000);
digitalWrite(RED, LOW);
digitalWrite(GREEN, LOW);
digitalWrite(BLUE, HIGH); //Blaue LED geht an
}
Das Meiste kennt Ihr schon: Die Pin-Definitionen und-Modi entsprechen dem ersten Code-Beispiel von oben. Es folgt das angekündigte digitalWrite, das hier zunächst mal alle LEDs über den Wert LOW ausschaltet. Es folgt eine Endlosschleife: Über delay wird 2 Sekunden gewartet, dann wird der Wert für die rote LED auf HIGH geändert - sie leuchtet. Wieder 2 Sekunden später wird rot zurück auf LOW und die grüne LED auf HIGH gesetzt. Und dann folgt das Ganze nochmal für Blau. Und die blaue LED könnt Ihr in den zwei Sekunden natürlich nach wie vor mit dem Poti regeln.
Fritzing-Schema
Nochmal kurz zur oben bereits gezeigten Fritzing-Grafik: Der Poti wird hier direkt mit den Beinchen verbunden, nicht mit den gegenüberliegenden Anschlüssen derselben Reihe - daher entspricht es nicht ganz den Fotos.
Lessons Learned
Oha, bestes Buzzwordgequatsche ... Naja, nennen wir es Dinge zum Mitnehmen. Was solltet Ihr nun wissen?
- Kommunikation mit Arduino über IDE.
- Funktionsweise des Breadboards.
- Steuerbare/permanente Stromversorgung über Output-/Power-Pins.
- Signalregulierung über fixe/variable Widerstände.
- Grundlegende Ansteuerung von Pins aus Sketches.
Damit könnt Ihr sicherlich nicht sofort eigene Projekte starten. Andere Bauteile sind deutlich komplexer und von der Software braucht man gar nicht erst reden. Aber: Es sollte genügen, um mit den typischen, superkurzen Projektbeschreibungen zurecht zu kommen, kleinere Anpassungen vorzunehmen und auch ein wenig Fehlerbehebung zu betreiben. Beispielsweise könnt Ihr nun wunderbar Pin-Definitionen nachvollziehen.
Und wenn Ihr Blut geleckt habt: Wir haben noch eine Anleitung für Wenn-Dann-Projekte, um beispielsweise eine LED zu erleuchten, wenn ein bestimmter Abstand unterschritten wird. Und als Praxisprojekt: Die Tutobar.
Und hier noch ein paar Amazon-Links auf typische Boards und Sets: