„Arduino IDE“ Grundlagen

Damit wir uns mit dem Umgang mit „Arduino IDE“ vertraut machen, werden wir gleich zu Beginn ein einfaches Sketch erstellen und hochladen. Wir benötigen zur Kontrolle ob alles funktioniert keinerlei weitere Hardware außer unserem „D1 mini“, ein Micro- USB- Kabel und einen Computer mit einem eingerichteten Arduino IDE.


Wir starten also „Arduino IDE“ und sehen ein leeres Sketch.
„Arduino IDE“ vergibt immer einen Dateinamen, der sich ändern lässt wenn man das Sketch speichert.

arduino_first_sketch

Befehle in C und C++
Ein Sketch (Quellcode) besteht aus einer Abfolge von Befehlen. Diese müssen sich an sehr genaue Vorgaben halten. Groß und Kleinschreibung sind explizit ein zu halten. Der Compiler (Programmteil dass Dein Sketch für den MC übersetzt) wird bei jeder Nachlässigkeit seine Arbeit abbrechen und hoffentlich eine verständliche Fehlermeldung ausgeben.
Wir sehen im Fenster zwei leere Funktionsaufrufe mit jeweils einen Kommentar.


Kommentare
Wenn wir etwas kommentieren, weisen wir den Compiler an, diese Teile nicht zu verarbeiten / übersetzen.
Sie dienen dazu sich Markierungen zu setzen, die Funktion von Programmteilen für sich selbst, oder einen Kollegen zu veranschaulichen. Nutze diese Möglichkeit ausgiebig!
Sie wird Dir und deinen Kollegen die Arbeit sehr erleichtern.
Einen einzeiligen Kommentar beginnt man mit //.
Ab dieser Zeichenfolge wechselt der Compiler in die nächste Zeile.

Sollten wir längere Kommentare setzen wollen, können wir diese mit /* einleiten und mit */ abschließen. Alles was dazwischen steht ignoriert der Compiler.

 


Funktionen
Grundsätzlich bestehen Sketches (Programme im Quellcode) bei „Arduino IDE“ immer aus zwei Teilen.
Diese beiden Teile werden als Funktionen angesprochen. Wir werden später selbst Funktionen erstellen, doch das würde jetzt zu weit führen.

  • Eine Funktion wird mit einem Typ, der zur Rückgabe vorgesehen ist eingeleitet.
    void bedeutet, dass keine Rückgabe definiert wird.
  • Name der Funktion
  • Innerhalb der runden Klammern werden die Typen zur Übergabe festgelegt.
  • Zwischen den beiden geschweiften Klammern befinden sich dann die Anweisungen der Funktion.

Die beiden Funktionen sind eine fixe Vorgabe innerhalb von „Arduino IDE“.  Wir können diese formal nicht verändern. lediglich ihren Inhalt werden wir bearbeiten.

Die Funktion void setup()
Diese Funktion wird bei Programmstart (Der MC wird an die Spannungsquelle angeschlossen) einmal aufgerufen. Nach erfolgreichen Ablauf startet die Funktion loop().
In diesem Teil werden wir unseren MC einrichten. Ein und Ausgänge festlegen, oder andere Schnittstellen wie WiFi oder Bus Systeme konfigurieren und starten.

Die Funktion void loop()
Diese Funktion wird immer wieder durchlaufen. Wenn der Ablauf am Ende angekommen ist, startet dieser wieder am Anfang der Funktion loop().
Hier werden wir also unsere Programme schreiben, die fortwährend ablaufen sollen.
Außer wir nutzen spezielle Funktionen ist dieser Ablauf nicht mehr an zu halten.


Unser erstes eigenes Sketch

Als erstes ändern wir den Kommentar in der Funktion „setup()“.

In der nächsten Zeile starten wir die serielle Schnittstelle

  • Serial ist eine fix integrierte Klasse innerhalb von „Arduino IDE“
    • . trennt den Aufruf einer Klasse von einer Methode innerhalb dieser.
      • begin(115200) startet diese mit der Baudrate, welche innerhalb der Klammern definiert wird.
        • ; schließt einen Befehl ab.

Der nächste Befehl dient dazu, das Sketch kurz an zu halten

  • delay(5000) stoppt unseren Ablauf für 5000 Millisekunden.

Die serielle Schnittstelle ist nicht sehr schnell. Bis diese läuft und Dein serieller Monitor auf diesen reagieren kann, vergeht immer etwas Zeit. Durch dieses Anhalten erreichen wir, dass wir den nächsten Befehl während des Programmablaufs auch wirklich im seriellen Monitor zu sehen bekommen.

  • Serial.println() weist die serielle Schnittstelle an, den Inhalt der Klammer in einer Zeile aus zu geben und einen Zeilenumbruch am Ende zu veranlassen.
    • „Serial bereit“ Gibt den Text vor der ausgegeben werden soll.
      Beachte dass die Anführungszeichen tatsächlich im Sketch geschrieben wurden.
      Damit weis der Compiler, dass dieser Text explizit verwendet werden soll. Andernfalls könnte es sich ja um eine Anweisung handeln. Dazu später mehr.

Die nächsten beiden Zeilen beinhalten einen Kommentar und eine Anweisung für die Hardware. Solche Anweisungen halten sich an die Syntax von C++ Funktionsaufrufen. Die Reihenfolge in der die Werte welche durch ein Komma „,“ getrennt werden ist fest vorgegeben. Solche Aufrufe sind natürlich nur innerhalb der Arduino Plattform sinnvoll. Oftmals bestehen hier auch Unterschiede zwischen einzelnen Boards.

  • pinMode() weist den MC an, fest, wie ein Pin sich verhalten soll.
    • D4 Spricht den Pin (Lötpunkt) des „D1 mini“ an, der mit „D4“ beschriftet ist.
      An diesem Pin ist eine kleine LED parallel geschalten.

      • OUTPUT legt fest, dass auf diesen schreibend zugegriffen werden soll.
        Mit INPUT würden wir das Gegenteil erreichen.

Damit haben wir in der „setup“ Funktion  alles festgelegt, was wir für unser kleines Sketch brauchen. Wir können die „setup- Funktion“  mit einer geschwungenen Klammer schließen und die „loop“- Funktion beginnen.

  • digitalWrite() schaltet einen als Ausgang definierten Pin
    • D4 Das Programm will natürlich wissen welchen Ausgang wir schreiben wollen.
      • HIGH legt fest, dass dieser eingeschalten werden soll.

Nun können wir zügig weiter machen. Wir weisen den MC an einen Text, der den Schaltzustand des Programms anzeigt, in die serielle Schnittstelle zu schreiben. Halten das Programm wiederum für 10 Sekunden an.

  • LOW weist einen Ausgang an, diesen aus zu schalten.

Mit der geschwungenen Klammer wird die Funktion „loop“ geschlossen.


„Syntax Highlighting“ und Einrückungen
Es ist Dir sicher schon aufgefallen, dass die Texte deines Sketch in unterschiedlichen Farben dargestellt werden. Diese als „Syntax- Highlithing“ bekannte Funktion, soll es Dir erleichtern ein Sketch besser lesen zu können. Nebenbei soll das einrücken von Programmblöcken es erleichtern sich in einem Sketch besser zurecht zu finden.
Mit „Werkzeuge“ / „Automatische Formatierung“ werden diese Einrückungen automatisch vorgenommen.
Alles zusammen sollte unser Sketch nun so aussehen.

 


Die Buttons von Arduino IDE

button_ueberpruefen Überprüfen
startet den Compiler. Eventuelle Fehler und Warnungen werden im Textfeld (schwarz) angezeigt. Bei schwerwiegenden Fehlern wird abgebrochen und die Zeile mit dem Fehler rot markiert.

button_hochladen Hochladen
startet den Compiler und lädt die fertig compilierte Anwendung auf den MC hoch. Im Textfeld kann an die Ausgaben des Compilers mitverfolgen und den Upload- Vorgang beobachten. Nach dem Upload wird der MC neu gestartet, was Du ebenfalls in der Ausgabe beobachten kannst.

button_neu Neu
öffnet eine neue Arduino- Datei in einem neuen Fenster, mit der Dateiendung: „ino“

button_oeffnen Öffnen
öffnet eine bestehende Arduino-Datei in einem neuen Fenster.

button_speichern Speichern
speichert das aktuelle Sketch  unter den festgelegten Namen. Sollte noch kein Name vergeben worden sein, erhälst Du dazu eine Aufforderung.


Speichern
Wir speichern also unser Sketch z.B. „Blinker“.
Standardmäßig speichert Arduino alle Dateien unter deinem Benutzernamen im Ordner Dokumente/Arduino. Für jedes Projekt wird ein eigener Ordner angelegt, der den Namen der „ino- Datei“ trägt.


Hochladen
Zuerst starten wir den „Seriellen Monitor“.
Wir laden nun das Sketch hoch und warten bis der Vorgang abgeschlossen wurde.
In der Zwischenzeit, können wir den „Seriellen Monitor“ in den Vordergrund setzen.
Sobald das Upload fertig ist, startet der MC neu.

Nun solltest Du die Ausgaben des Sketch im seriellen Monitor beobachten können.


Fazit
Wir haben nun neben der grundlegenden Bedienung von „Arduino IDE“ auch einige Befehle kennen gelernt. So nutzen wir Kommentare zur Wahrung der Übersicht in einem Sketch und verstehen den Unterschied zwischen der „loop“- und „setup“- Funktion. Daneben können wir nun Ausgänge als solche definieren und schalten.

Weitere Aktionen
Als erstes solltest Du mal genau beobachten wie sich die Ausgabe des seriellen Monitors zum Zustand der LED des „D1 mini“ verhält.  Melde Dich doch mal in unserer Google Community dazu! Was ist Dir aufgefallen?