Arduino-Programmierung

Veröffentlicht von

Die Arduino-Plattform

Einführung

[FILM Einordnung der Arduino Plattform in die Welt der Computer]

Ein Arduino-Board ist eine einfach zu verwendende Plattform für den Einstieg in die Welt der Mikrocontroller. Diese sind kleine Computer, die für eine Vielzahl von Anwendungen, vor allem bei der digitalen Steuerung von Maschinen unterschiedlichster Art, verwendet werden.

Im Gegensatz zu einem PC verfügen Microcontroller üblicherweise keine Ein/Ausgabegeräte wie sie bei PCs üblich sind (Bildschirm, Tastatur, Maus, etc.). Die Ein- und Ausgabe zur Programmsteuerung erfolgt über Pins (auch GPIOGeneral Purpose In Out genannt). An diese Pins können einfache elektrische Komponenten wie Schalter, Lampen, Sensoren oder Aktoren, … angeschlossen werden um Eingaben und Ausgaben zu erzeugen.

arduino_aufbau

Die Arduino Umgebung verwendet als Programmiersprache eine vereinfachte Form der Programmiersprache C. Anhand von Beispielen werden wir die Syntax und Eigenheiten dieser Programmiersprache und die Arduino Umgebung kennenlernen.

Vorraussetzungen

  • Arduino UNO + USB-Kabel
  • PC/Mac mit der Arduino Software (genannt IDE – Integrated Development Environment. Diese kann von hier frei heruntergeladen und installiert werden.).
  • LED (Leuchtdiode)

Anschluss an den Rechner

Mittels USB-Kabel lässt sich das Arduino leicht am Rechner anschließen und Software uploaden.

Blink

Das Blink-Beispiel ist das wohl einfachste Programm in der Arduino-Welt.

Öffnen Sie das Beispiel Blink aus dem Menü File – Examples – 01.Basics – Blink

blink_location

Laden Sie das Programm mittels Klick auf Upload auf das Board. Folgende Schritte werden dadurch im Hintergrund gestartet:

  • Zunächst wird dabei der Kompilier-Vorgang gestartet. Dabei wird der Programmcode zunächst auf seine Korrektheit überprüft. Wenn Fehler gefunden werde bricht der Vorgang mit einer Fehlermeldung im unteren Fenster ab.
  • Im zweiten Schritt übersetzt der Compiler den (menschenlesbaren) Programmcode in Maschinencode, der auf dem Prozessor des Arduino ausgeführt werden kann.
  • Ist auch dieser Schritt erfolgreich, wird das Programm auf das Board geladen. Wenn es hierbei zu Problemen kommt sollte man die USB-Verbindung zum Board prüfen.

[FILM: Was tun wenn es hakt?]

Beispiel: Blink

Code-Analyse:

In Zeile 1 des Programms wird eine Variable namens led angelegt, welcher der Wert 13 zugewiesen wird. In der Programmiersprache C ist es notwendig anzugeben, welchen Typ eine Variable hat. Typen von Variablen können sein

  • Ganze Zahlen (englisch: Integer): int, byte, long
  • Fließkommazahlen (englisch: floating point): float
  • Buchstaben (englisch: character): char
  • u.v.m, (wird später beim Punkt Datentypen behandelt)

Für jetzt reicht es zu wissen, dass beim Anlegen einer Variablen notwendig ist, den Typ dieser Variablen anzugeben. Dies geschieht in der Form typ name = wert; , also hier int led = 13; Die Variable led  kann so definiert nur ganzzahlige Werte annehmen. Mehr hierzu in der Arduino-Referenz.

Die Funktionen setup  und loop

Anschließend sehen sie zwei Funktionen, die als setup und loop  bezeichnet werden. setup  wird vom Arduino-System einmal aufgerufen, wenn das Board neu gestartet wird. In dieser Funktion werden üblicherweise Initialisierungen vorgenommen. In loop  befindet sich der eigentliche Programmcode. Der Körper der Funktion wird vollständig ausgeführt, anschließend wird loop erneut aufgerufen und immer wieder ausgeführt.

setup_loop

(Was das Schlüsselwort void  bedeuted wird im Abschnitt Funktionen erklärt).

Die setup()  Funktion

Der Befehl pinMode konfiguriert die Funktionsweise des angegebenen Pins. Die Syntax lautet pinMode(INDEX, MODUS) , wobei INDEX einem der Pins entspricht. Der Pin-Index lässt sich am Board ablesen (siehe Bild). MODUS kann die Werte OUTPUT  oder INPUT  annehmen, je nachdem ob Spannung ausgegeben oder gemessen werden soll.

digital_pins
Neben den Anschlüssen lassen sich am Board die Indizes der Pins ablesen.

In unserem Beispiel verwenden wir für den Index die Variable led , welcher vorhin der Wert 13 zugewiesen worden ist. Pin 13 ist also nun als Ausgang definiert (Pin 13 wird deshalb verwendet, weil an diesem Pin auch eine kleine Leuchtdiode angeschlossen ist, siehe Grafik ganz oben).

Die loop()  Funktion

In der loop()  Funktion wird die eigentliche Programmlogik ausgeführt. Die Funktion wird vom Arduino-System aufgerufen, dann die Befehle der Funktion abgearbeitet, anschließend erneut aufgerufen,… Sofern keine Unterbrechung passiert, geschieht dies in einer endlosen Schleife (daher der Name „loop„).

Kommentare

Als ProgrammiererIn ist es gut Praxis Quellcode in Programmen zu kommentieren. Kommentare sollen vor allem helfen, Verständnis für die Aktionen im Programm herzustellen.

In der Programmiersprache C sind zwei Typen von Kommentaren erlaubt: Einzeilige und zweizeilige Kommentare.

Einzeilige Kommentare beginnen mit zwei Slashes // . Jeglicher Text nach diesen beiden Zeichen bis zum Ende der Zeile wird ignoriert.

Mehrzeilige Kommentare haben eine öffnende Zeichenkette /*  und eine schließende Zeichenkette */ . Alles, was zwischen den beiden Zeichen steht, wird ignoriert (auch wenn es über mehrere Zeilen hinweg geht.

Aufgabe

Modifizieren Sie den Code aus dem Blink-Beispiel so, dass ein SOS mit Morse-Code geblinkt wird.

 

Weiterführende Links

  • https://www.arduino.cc/en/Guide/HomePage
  • https://www.arduino.cc/en/Guide/Introduction
  • https://www.arduino.cc/en/Tutorial/HomePage
  • https://www.arduino.cc/en/Reference/VariableDeclaration

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.