Arduino 1st steps - Blinky (advanced)

From Hackteria Wiki
Jump to: navigation, search

Übung gemäss dem super Arbeitsblatt von Noah Gautschi

tl:dr

  • LED aus dem Fundus "Trash" der HSLU auf Arduino uno board erfolgreich zum blinken gebracht
  • Steuerung der Helligkeit via pwm, Länge von "led an" und "led aus" über ein einziges Potentiometer.
    • Umstellen zwischen Modus Hell/An/Aus über einen Taster
    • Visualisierung des aktuell gewählten Modus über LED-bar

LED blinky als "Hello World"

Variante der Übung 01 auf seite 13. Blinkendes LED auf einem Breadboard ist IMMER die erste Übung im umgang mit Arduino oder ähnlichen Entwicklerboards, daher war dies naheliegend. Als "Expert" wäre es jedoch etwas beschämend gewesen, es bei einem simplen blinkenden LED zu belassen - daher folgende Erweiterungen avisiert:

  • Helligkeit einstellen
    • LED zwischen PIN 9 (pwm) und GND
    • analogWrite Helligkeit (0-255)
  • Input: variabel (einstellen von Werten)
    • Potentiometer GND - A0 - +5v
    • anlogRead auf A0
    • Skalen anpassen
  • Input: digital (wählen von Modi)
    • Taster zwischen zwei pins
  • Output: Anzeige Programmzustand
    • LED-Bar, zwischen +5v und 3 pins

Codestruktur - Quest für maximale Modalität

Aus ein paar Jahren schmerzhafter Erfahrung hat sich die Erkentnis durchgesetzt, dass es sich lohnt, Code von Beginn an so Modular wie möglich zu gestalten. Konkret:

  • jede Funktion in eine eigene Funktion schreiben :)
  • im void loop nur die Funktionen aufrufen
  • alle konkreten Werte oben im Code definieren. Dies umfasst:
    • Pins benamseln
    • Variabeln definieren
    • Globale Variabeln einstellen, hier z.B. Toleranzwerte für's Poti oder Anzahl Modi
  • im Rest des Codes keine konkreten Werte (=Zahlen) benutzen
  • keine Libraries verwenden

Aufbau / Hardware

Code

Imlementation Hell

delay zu millis

poti toleranz

poti - werte auslesen nur bei veränderung

taster - repeat rate