Arduino: Spach-Referenz
Autor: Prof. Dr.-Ing. Schneider
Programmstruktur
Zum Erlernen der grundlegenden Programmstrukturen, schauen Sie bitte in Ihre Vorlesungsunterlagen und in das begleitende Lehrbuch [1, S. 78 ff.].
Siehe auch: https://www.arduino.cc/reference/de/
Die Struktur eines Arduino-Programms teilt sich in zwei Bereiche auf: setup()
und loop()
(vgl. Quelltext 1).
Quelltext 1: ArduinoSketchStruktur.ino
void setup ( ) // Programmstart
{
// Anweisungen
}
void loop ( ) // Hauptschleife
{
// Anweisungen
}
Die Setup-Funktion wird einmalig beim Start des Arduino-Boards oder nach einem Reset ausgef ¨uhrt. In dieser Funktion werden Grundeinstellungen wie Variablendeklarationen oder die Konfiguration der seriellen Schnittstelle vorgenommen. Zus¨atzlich werden die Ein- und Ausg¨ange gesetzt.
Die Setup-Funktion ist zwingend notwendig und muss immer vorhanden sein, auch wenn keine Deklarationen erfolgen m¨ussen. In diesem Fall bleibt die Funktion ohne Anweisungen.
Die Loop-Funktion ist der zweite Bereich der Grundstruktur eines Arduino-Programms und hat die Aufgabe eines Hauptprogramms. Nach dem einmaligen Durchlaufen der Setup-Funktion wird die Loop-Funktion durchlaufen – wie der Name schon sagt, als endlose Schleife. Im Loop werden alle weiteren Anweisungen und Funktionsaufrufe untergebracht, die im Normalbetrieb f¨ur die gew¨unschte L¨osung ben¨otigt werden.
Funktion
Konventionen
Klammern
Semikolon
Kommentare
Header
Datentypen
Datentypenkonvertierung
Variablen, Konstanten, Arrays und Daten
Kontrollstrukturen
if-Verzweigung
Mit der if-Verzweigung werden in Programmen Entscheidungen gefällt. An if
muss eine Frage anschließen, die als Ausdruck, der in Klammern eingeschlossen ist, angegeben wird. Wenn der Ausdruck wahr ist, wird alles Nachfolgende ausgef¨uhrt. Wenn er falsch ist, wird mit dem nächsten Code-Block fortgefahren. Die else
-Anweisung ist optional.
Quelltext: ArduinoSketchStruktur.ino
if (Bedingung 1) {
// Anweisungen 1;
}
else if (Bedingung 2) {
// Anweisungen 2;
}
else {
// Anweisungen 3;
}
Siehe auch: Arduino.cc: <ode>else
switch-case-Verzweigung
Wie auch if-Statements, erlaubt es auch switch case, dass abh¨angig von der Bedingung in verschiedenen Situationen unterschiedlicher Code ausgef¨uhrt wird. Im Detail vergleicht switch case die Variablenwerte mit denen in den case-Statements. Wenn ein passendes case-Statement gefunden wird, so wird der Code in diesem case-Statement ausgef¨uhrt. Das break-Keywort beendet das switch case-Statement und wird ¨ublicherweise am Ende jedes case-Statements verwendet. Wenn kein break-Keywort verwendet wird, f¨uhrt switch case alle Statements aus, bis ein break-Keywort auftaucht oder das switch case zu Ende ist.
Quelltext: ArduinoSketchStruktur.ino
switch (var) {
case label 1 :
// Anweisungen 1;
break;
case label 2 :
// Anweisungen 2;
break;
default:
// Anweisungen 3;
break; //Wird nicht benötigt, wenn Anweisungen vorhanden sind
}
Siehe auch: Arduino.cc: <ode>switch..case
for-Schleife
while-Schleife
Siehe auch: Arduino.cc: <ode>while
Operatoren
Eingebaute Funktionen
Bibliotheken
Serial.h
Quelltext: Serial.h<
begin(long Baudrate) // bis 115200 Baud
end()
int available() // Anzahl empfangener Bytes
int read() // -1 wenn keine Daten
int peek() // Lesen ohne den Puffer zu löschen
flush() // Puffer löschen
print(data)
println(data) // inkl. Zeilenumbruch
write(byte)
write(char * string)
write(byte * data, size)
SerialEvent() // wenn Daten fertig
Weiterführende Links
Literatur
[1] Brühlmann, T.: Arduino Praxiseinstieg. Heidelberg: mitp-Verlag, 2. Auflage 2012. ISBN: 978-3-8266-9116-4
→ zurück zum Hauptartikel: Arduino UNO