{{backlinks>.}} ===== 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.