Setup der Arduino-IDE
- Download der IDE: https://www.arduino.cc/en/Main/Software
- Start der IDE
- Anschluss des Arduino-Boards. Eventuell Installation des CH340 Treibers.
- Unter File → Examples → 01.Basic → Blink öffenen Sie den “Blink”-Sketch
- Unter Tools → Port → … wählen Sie den Port aus (COM4 oder so unter Windows, ttyUSB0 oder so unter Linux).
- Wählen Tools → Board → Arduino/Genuino Uno aus.
- Drücken Sie “Upload” (oder Ctrl-u).
- Die Onboard-LED sollte jetzt blinken.
- Legen Sie einen Ordner an, worin Sie ihre Sketches (Arduino-Programme) speichern werden.
- Speichern Sie den Code unter anderem Namen in Ihrem Ordner.
- Verändern Sie den Code so, dass die LED schneller blinkt.
Diskussion des Codes
Live Kommentare einfügen.
Serial: Kommunikation mit dem Computer
- Legen Sie einen neuen Sketch an und speichern Sie diesen unter dem Namen “SerialBeispiel”.
Beispiel-Sketch live.
Coding Conventions
- Es wird eingerückt
- für jede öffnende geschweifte Klammer
- die entsprechende schliessende geschweifte Klammer steht unter dem ersten Buchstenben der Zeile mit der öffnenden Klammer.
- Nach if werden grundsätzlich geschweifte Klammern gesetzt.
- Die öffnende geschweifte Klammer kommt als letztes Zeichen hinter das öffnende Statement.
- Variablen beginnen mit Kleinbuchstaben.
- Klassen beginnen mit einem Grossbuchstaben.
- Globale Variablen haben einleuchtende Name (besser 'state' als nur 's')
- #define Konstanten werden vollständig mit Grossbuchstaben geschrieben.
// Port auf dem die LED hängt #define LED 2 void setup() { pinMode(LED, OUTPUT); } // globale Variable int counter=0; void loop() { counter++; if (counter>100) { digitalWrite(LED, HIGH); } else if (counter>300) { digitalWrite(LED, LOW); counter=0; } }
Zusammenfassung
Übersicht: https://www.arduino.cc/en/Reference/HomePage
- void setup() { … } Programmstart, wird einmal ausgeführt.
- void loop() { … } Wird danach wiederholt.
- pinMode(nummer, was) OUTPUT, INPUT, INPUT_PULLUP, siehe https://www.arduino.cc/en/Reference/PinMode
- digitalWrite(nummer, was) HIGH, LOW, 1, 0, true, false, siehe https://www.arduino.cc/en/Reference/DigitalWrite
- Serial, siehe https://www.arduino.cc/en/Reference/Serial
- Serial.begin(speed) normalerweise 115200 oder 9600
- Serial.print(was) Siehe https://www.arduino.cc/en/Serial/Print
- Serial.println(was) Wie print, aber mit Zeilenumbruch “\r\n”.
- for(initialisierung; Bedingung davor; Aktion danach) { … } Siehe https://www.arduino.cc/en/Reference/For
- if (bedingung) { … } Siehe https://www.arduino.cc/en/Reference/If und https://www.arduino.cc/en/Reference/Else
- if (bedingung) { … } else { … }
- if (bedingung) { … } else if (bedingung2) { … } … else { … }
- int (Ganzzahlen, ca. -32'000 bis 32'000)
- long (Ganzzahlen, ca. -2'000'000'000 bis 2'000'000'000)
Aufgaben
Primzahlen
Schreiben Sie einen Sketch, der Primzahlen ausgibt (ohne obere Grenze).
Studieren Sie dazu die Arduino-Dokumentation zum for-loop, der if-Schleife und dem Modulo-Operator %.
LED dimmen
Eine LED kann gedimmt werden, indem man diese ganz schnell ein- und ausschaltet. Je nach Anteil der Zeit, während der die LED angeschaltet ist, erscheint diese heller oder dunkler.
Schreiben Sie ein Programm, das die LED schön “an- und ausdimmt”.
Beachten Sie, dass unser Helligkeitsempfinden nicht linear ist. Eine gute Variante besteht darin, den Anteil der “An-Zeit” quadratisch ansteigen zu lassen.