» » X1 – 01.0 Blink

X1 – 01.0 Blink

eingetragen in: X1-lernkurs | 0

 

Blink

Nachdem wir in der letzten Lektion gelernt haben, wie die Programmierumgebung aufgebaut ist, können wir mit dem Programmieren anfangen. In dieser Lektion befassen wir uns mit den grundlegendsten Funktionen der Arduino Programmiersprache. Die Funktion void setup() wird jedes mal ausgeführt wenn der Arduino hochfährt. Die in void setup() eingegebenen Anweisungen werden ein mal ausgeführt. Mit void loop() können Anweisungen in einer sich wiederholenden Reihenfolge ausgeführt werden.

Video-Beispiel:

 

Code-Beispiel:

void setup() {
pinMode(13, OUTPUT);    //Pin 13 soll ein Ausgang sein
}
void loop() {
digitalWrite(13, HIGH); //Schalte Pin 13 EIN
delay(200);             //Warte 200 Millisekunden
digitalWrite(13, LOW);  //Schalte Pin 13 AUS
delay(200);
}

 
 
 

Schritt 1

Mit void setup() erfolgt hauptsächlich die Pinbelegung. Dazu nutzen wir den Befehl pinMode(), in der Klammer muss die Nummer des Pins angegeben und der Modus des Pins festgelegt werden. In unserem Beispiel soll Pin 13 ein Ausgang sein. Anzumerken ist hier, dass fast jeder Befehl mit einem Semikolon (;) beendet wird.

 

 

 

void setup() {

pinMode(13, OUTPUT);
}

 

 

 

 

Schritt 2

Weiter geht es mit void loop(), mit diesem Befehl wird das eigentliche Programm ausgeführt. Wie der Name "Loop", also Schleife, schon sagt, wird dieser durchgehend wiederholt.

Mit digitalWrite geben wir eine digitales Eingabeformat vor. Digital bedeutet, dass es nur an also "HIGH" oder aus "LOW" gibt. Rechts im Beispiel steht also: schalte Pin 13 an

Auch hier wird mit einem Semikolon abgeschlossen.

 

 

 

void loop() {
digitalWrite(13, HIGH);
...
}

 

 

 

 
 
 

Schritt 3

Bevor wir zum delay Befehl kommen möchten wir einen kleinen Tipp mit euch teilen. Um den Code übersichtlich zu halten trennen wir die Befehle mit einem Zeilenumbruch, je übersichtlicher der Code, desto einfacher ist das Finden von Fehlern.

Damit nicht alle Befehle immer direkt hintereinander ausgeführt werden kann mit delay() eine Pause zwischen Befehlen eingebaut werden. In die Klammer kommt die Länge der Pause in Millisekunden.

Wenn wir also delay() nach unserem in Schritt 2 geschriebenen Code einfügen, wird Pin 13 eingeschaltet und dann 200ms bis zur nächsten Anweisung gewartet.

 

 

 

void loop() {
...
delay(200);

...
}

 

 

 

 

Schritt 4

Nachdem der Roboter 200ms gewartet hat, soll er Pin 13 wieder ausschalten. Wir verwenden den gleichen Befehl, allerdings wird anstelle von HIGH jetzt LOW verwendet. Alternativ kannst du auch HIGH  durch 1 und LOW durch 0 ersetzen. Die ausgeschriebenen Worte machen es allerdings übersichtlicher für dich.

Da durch voidloop() der Code immer wiederholt wird und sich die LED direkt wieder einschalten würde, bauen wir hier auch eine Verzögerung von 200ms ein.

 

 

 

void loop() {
...
digitalWrite(13, LOW);
delay(200);
}

 

 

 

 

Fazit

Glückwunsch du hast dein erstes Programm geschrieben!

Das Wichtigste ist, dass du für alle Befehle die richtige Syntax lernst. Wenn beispielsweise digitalWrite() verwendet wird, muss das W unbedingt groß geschrieben werden. Es ist ebenso wichtig alle Informationen in der Klammer mit einem Komma zu trennen und sie in die richtige Reihenfolge zu bringen.

Um das Programm auszuführen reicht ein Klick auf den Hochladen Button aus. Falls du im schwarzen Fenster eine rote Fehlermeldung bekommst, solltest du deinen Code nochmal genau unter die Lue nehmen. Hast du einen Schreibfehler? Sind alle Zeilen mit einem Semikolon abgeschlossen? Wenn du diese Fehler mit Sicherheit ausschließen kannst, ist dein Board möglicherweise nicht richtig eingestellt. (siehe X1 - Vorbereitung).

Wenn alles richtig ist, sollte nun die System-LED des X1 alle 200ms einmal aufblinken.

Bevor du mit der nächsten Lektion weiter machst, nimm dir ein bisschen Zeit, spiel etwas mit den Zahlen, denn am besten lässt es sich mit eigenen Experimenten lernen!

Falls du nicht weiterkommst steht dir natürlich jederzeit die Kommentarfunktion zur Verfügung, oder du besuchst uns in einem unserer diversen Foren und wir finden zusammen eine Lösung!

Bitte hinterlasse eine Antwort