Die Welt der Automation im Blick
Einsteigen mit dem Arduino
Nicht zuletzt der preiswerte und leistungsstarke Kleincomputer ›Arduino‹ verdient mehrere Blicke, sollen platzsparende Lösungen das Licht der Automationswelt erblicken. Ein Einstieg in dessen Funktionsweise ist keine unüberwindbare Hürde, und macht sogar richtig Spaß.
Der Arduino gehört zur erstaunlichen Schar leistungsstarker Kleincomputer, mit denen sich sehr ansehnliche Projekte umsetzen lassen. Für relativ wenig Geld bekommt man ein Elektronenhirn, das sich bestens eignet, in die Welt der Steuerungstechnik einzutauchen. Zwar gibt es mittlerweile Abwandlungen des Arduino-Urmodells, doch lohnt es sich nach wie vor, sich mit dem Original zu befassen.
Komponenten eines Arduino:
- 1: Reset-Knopf zum Neustart des Arduino
- 2: I2C-Pins (Serielle Datenausgabe, etwa für ein LCD-Display)
- 3: Digital-Pins (Signal-Eingänge für digitale Sensoren; Signal-Ausgänge für digitale Schaltungen)
- Hinweis 1: An den Pins liegt eine Spannung von 5 Volt an.
- Hinweis 2: Pins mit Tilde-Zeichen (˜) ermöglichen eine PWM-Modulation
- 4: Power-on-Leuchte
- 5: ICSP-Header (Mit einem Bootloader können Mikrokontroller programmiert werden)
- 6: Mikrocontroller mit Recheneinheit, Arbeitsspeicher und Speicher für Quellcode
- 7: Analog-Pins (Signal-Eingänge für analoge Sensoren mit 0 bis 5 V Spannung)
- 8: Stromversorgung (5V, 3,3V und GND für externe Schaltungen)
- 9: Externe Stromversorgung (min. 7V, max. 12V); wird nur benötigt, wenn keine USB-Verbindung zum PC besteht
- 10: USB-Anschluss (Zur Stromversorgung und zum Upload von Programmen)
Voraussetzungen:
Der Arduino wird über eine USB-Schnittstelle angesprochen. Dies ist an sich kein Problem, wenn aktuelle Treiber verwendet werden. Manchmal funktioniert ein Rechner mit USB 3.0-Variante nicht. Auch das Betriebssystem 10 macht verschiedentlich Probleme, weshalb der sichere Weg, den Arduino korrekt anzusprechen, über eine USB-2.0-Schnittstellen führt, die in einem Rechner steckt, der über das Betriebssystem Windows 7 verfügt.
Doch auch neuere Rechner funktionieren problemlos, wenn man sich die Mühe macht, entsprechende Treiber aufzuspielen, wenn dies nicht schon bei der Installation erfolgt ist.
IDE-Installation:
Die IDE (Entwicklungsumgebung) zum Programmieren des Arduino kann entweder von der Herstellerseite oder von diversen, seriösen Anbietern heruntergeladen werden. Gut fährt, wer sich dazu an Fachzeitschriften wendet, die über ein entsprechendes Download-Portal verfügen. In jedem Fall muss darauf geachtet werden, das volle Programmpaket zu erwerben und nicht nur einen Download-Manager herunterzuladen, da andernfalls die Gefahr besteht, noch weitere, unerwünschte Programme auf seinem Rechner zu installieren.
Einstieg:
Nach der Installation der Arduino-IDE präsentiert sich diese wie folgt:
Wird der Arduino zum ersten Mal mit einem PC über die USB-Schnittstelle verbunden, so fällt auf, dass nicht nur die Power-On-Leuchte leuchtet, sondern auch eine in der Nähe der IC2-Pins sitzende LED blinkt.
Der einfachste Weg, sich mit dem Arduino vertraut zu machen, ist, die bereits mitgelieferten Beispielprogramme, die im Zuge der IDE-Installation mitinstalliert werden, auszuprobieren. Darunter ist ein Sketch mit dem Namen ›Blink‹. Dieses Programm eignet sich ideal für den Einstieg in die Arduino-Handhabung. Zu finden ist es über Datei/Beispiele/01.Basics/Blink.
Nach dem Laden des Sketch fällt auf, dass dazu ein neues Fenster geöffnet wurde.
Der Sketch präsentiert sich wie folgt:
/*
Blink
Turns on an LED on for one second, then off for one second, repeatedly.
Most Arduinos have an on-board LED you can control. On the Uno and
Leonardo, it is attached to digital pin 13. If you're unsure what
pin the on-board LED is connected to on your Arduino model, check
the documentation at http://www.arduino.cc
This example code is in the public domain.
modified 8 May 2014
by Scott Fitzgerald
*/
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin 13 as an output.
pinMode(13, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(13, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(13, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
Das Programm ist recht kurz und leicht zu verstehen. Um die Blinkfrequenz der auf dem Board verbauten LED zu ändern, muss nur zwischen den Klammern der beiden delay-Befehlen eine andere Zahl als 1000 eingetragen werden. Dabei steht der erste delay-Befehl für die Leuchtdauer und der zweite delay-Befehl für die Ausschaltdauer der LED.
Zum Beispiel bewirkt folgende Änderung, dass die LED rund 3 Sekunden leuchtet und nur eine Zehntelsekunde ausgeschaltet bleibt.
// the loop function runs over and over again forever
void loop() {
digitalWrite(13, HIGH); // turn the LED on (HIGH is the voltage level)
delay(3000); // wait for a second
digitalWrite(13, LOW); // turn the LED off by making the voltage LOW
delay(100); // wait for a second
}
Hochgeladen wird das geänderte Programm über den Button ›Hochladen‹, der sich im oberen Bereich der IDE befindet.
Nach dem Betätigen des Buttons wird der Sketch zunächst in Maschinensprache übersetzt und danach automatisch zum Arduino hochgeladen. Die LED wird unmittelbar nach erfolgreicher Übertragung in der neuen Frequenz blinken.
Jede Änderung der Werte wird sich nach dem Hochladen entsprechend auf die Blinkfrequenz der LED auswirken.
Befehlsaufbau:
Der Sketch ist relativ einfach aufgebaut, wie eine Analyse des Programms zeigt:
- 1: Die Zeichenfolge /* leitet einen längeren, über mehrere Zeilen reichenden Kommentar ein,
- während die Zeichenfolge */ den Kommentar abschließt.
- 2: Die Zeichenfolge // wird für Kommentare verwendet, die einzeilig bleiben.Kommentare werden vom Compiler ignoriert, brauchen daher keinen Speicherplatz im Arduino. Sie sollten daher großzügig verwendet werden, um Sketche leicht lesbar zu gestalten.
- 3: Das Schlüsselwort void dient zur Funktionsdeklaration. Es leitet in diesem Fall den Befehl setup() ein. Dieser Befehl muss am Anfang jeden Sketches stehen und dient zum Setzen von pinmode oder der Initiierung der seriellen Schnittstelle.
- 4: Der Befehl pinMode dient dazu, einen ganz bestimmten Pin als Eingang oder Ausgang einzurichten. In diesem Beispiel wird Pin 13 über den Befehl Output als Ausgang eingerichtet.
- 5: Die geschweiften Klammern { } dienen dazu, Anfang und Ende von Funktions- und Anweisungsblöcken festzulegen. In diesem Beispiel sind diese in gelber Farbe hervorgehoben.
- 6: Der Befehl loop erzeugt eine Schleife, die endlos durchlaufen wird. Dadurch kommt das Blinken der LED zustande. Solange der Arduino Strom bekommt, wird die Schleife nicht verlassen. Soll die Blinkfrequenz verändert werden, ist ein erneuter Compilerlauf mit neuen Werten nötig.
- 7: Der Befehl digitalWrite gibt auf einem nachfolgenden, eingeklammerten Pin einen Logikpegel aus. Dieser kann High oder low sein. In diesem Beispiel wird mit High die LED zum leuchten und mit low zum erlöschen gebracht.
- 8: Der Befehl delay erzeugt eine Pause, deren Dauer zwischen Klammern in Millisekunden angegeben wird. 1.000 Millisekunden bewirken demnach, dass das Programm exakt eine Sekunde wartet, ehe es weiterarbeitet.
- 9: Nach jeder Anweisung muss zwingend ein Semikolon ; eingefügt werden. Dieses Zeichen dient zur Trennung der einzelnen Programmelemente.
War dieser Artikel für Sie hilfreich?
Bitte bewerten Sie diese Seite durch Klick auf die Symbole.
Zugriffe heute: 3 - gesamt: 5734.