Arduino – Blink
Heute wollen wir uns mal die Programmstruktur des Blink-Programms ansehen. Die Schaltung findest Du im vorherigen Beitrag: Arduino – die ersten Schritte.
Öffne die Arduino-Software und lade das Programm Blink (File»Sketchbook»Examples»Digital»Blink).
Es beginnt mit /* Wie in vielen Programmiersprachen werden auf diese Weise mehrzeilige Kommentare eingeleitet. Sie werden nicht von der Software interpretiert. Der mehrzeilige Kommentar endet mit */ Einzeilige Kommentare leitet man mit // ein. Er muss nicht beendet werden, sondern endet mit der Zeile.
/*
* Blink
*
* The basic Arduino example. Turns on an LED on for one second,
* then off for one second, and so on… We use pin 13 because,
* depending on your Arduino board, it has either a built-in LED
* or a built-in resistor so that you need only an LED.
*
* http://www.arduino.cc/en/Tutorial/Blink
*/
Danach folgt die Zeile
int ledPin = 13; // LED connected to digital pin 13
int startet eine Variablendeklaration. Variablen sind Kontainer (Buchstaben oder Wörter), die Werte speichern können. int steht dabei für eine Variable, die ganze Zahlen speichern kann. In diesem Fall lautet der Variablenname ledPin. Mit dem Operator = weisen wir der Variable den Wert 13 zu. Die Befehlszeile wird mit einem Semikolon beendet. Dahinter steht ein Kommentar.
void setup() // run once, when he sketch starts
{
pinMode(ledPin, OUTPUT); // sets the digital pin as output
}
void ist das Schlüsselwort, das eine Funktion startet. setup ist der Name der Funktion und die Klammern dahinter deuten an, dass an diese Funktion keine Werte gesendet werden. Für den Anfang genügt es zu wissen, dass diese Klammern einfach nötig sind. Alle Befehle in der Funktion zusammen werden mit geschweiften Klammern gruppiert {}. Die Funktion muss keine Befehle enthalten, ist aber mit der Funktion loop zwingend erforderlich für Arduino.
In der Funktion setup() gibt es hier ein Befehl: pinMode(); Dieser Befehl benötigt zwei Parameter. Zum einen Die Nummer des Pins, den wir ansprechen wollen, zum anderen die Funktion, die er später haben soll. Wir wollen, dass der Digitale Pin 13 auf dem Arduino-Board ein Signal ausgeben soll. Also setzen wir unsere Variable ledPin (der wir ja schon den Wert 13 zugewiesen haben) ein und legen fest, dass dieser Pin als OUTPUT fungieren soll (sonst wäre auch INPUT möglich).
void loop() // run over and over again
{
digitalWrite(ledPin, HIGH); // sets the LED on
delay(1000); // waits for a second
digitalWrite(ledPin, LOW); // sets the LED off
delay(1000); // waits for a second
}
Die Funktion loop() wird auf dem Arduino-Board ständig widerholt. Es ist somit die Hauptfunktion. Der erste Befehl in dieser Funktion lautet digitalWrite(); und auch dieser bekommt zwei Werte. Der erste ist wie gehabt der Pin, der angesprochen wird (unser ledPin), der zweite (HIGH) schaltet das Signal ein. Wird der Befehl ausgeführt, sendet das Arduino-Board eine Spannung von 5V an den Pin 13 (Nomale LEDs werden mit 2-3V betrieben und würden bei 5V zerstört werden. Das Arduino-Board besitzt aber auf dem Pin 13 einen eingebauten Vorwiderstand, der unsere LED schützt.)
Der Befehl delay(1000); ist eine eingebaute Pause von 1000 Millisekunden, oder auch von einer Sekunde.
Nun wird die Spannung von 5V mit digitalWrite(ledPin, LOW); wieder abgeschalten. Da das Arduino-Board sehr schnell arbeitet, benötigen wir auch hier wieder eine Pause, um eine Änderung zu sehen.
Da die Funktion loop() wiederholt wird, wird der digitale Pin ständig ein und aus geschalten. Jede dieser beiden Phasen dauert eine Sekunde.
Ich hoffe, Du konntest der Erklärung folgen. Beim nächsten mal werde ich über Taster sprechen.
Wenn Du mehr über Arduino erfahren willst, klick einfach hier: Kategorie Arduino.
Samstag, 19. Januar 2008 9:42
[...] Bau die Schaltung einfach nach, wie Du sie auf dem Bild siehst. Und lade das Programm Button aus dem Sketchboard»Examples»Digital»Button auf das Arduino-Board (wie das geht, steht in der Anleitung von Arduino – Blink). [...]