ARDUINO Beispiele
grundlegende
Programm-Funktionen an Hand von Beispielen
Die Bibliothek zur Steuerung von Servos: #include <Servo.h>
Libraries (zu Deutsch Bibliotheken)
sind sehr hilfreich beim Erstellen eines Sketch (ARDUINO-Programm).
Vieles übernimmt die Library und muss nicht mehr durch etliche
Einzelbefehle programmiert werden. Hinweis: beachten Sie auch => LINKs zum Thema ARDUINO. |
Die linke Abbildung zeigt das
Einbinden einer Bibliothek in ein Programm (Sketch), hier für
Servosteuerungen. Das Einfügen von Bibliotheken in ein Programm hat stets die Form: # (Lattenzaun), include (Einfügen), Kleinerzeichen <, Bibliotheksnamen (hier "Servo"), Punkt h .h, Größerzeichen >. Bibliotheken werden an oberster Position im Programm eingefügt. Mit dieser Bibliothek können Servos mit wenigen Programmzeilen auf Positionen gestellt werden, indem nur die Stellung in Grad anzugeben ist, wie nachfolgend ein Demo-Beispiel zeigt. |
Demo-Beispiel Servo Ein Servo führt langsame Drehbewegungen kontinuierlich von 0° nach 180° und wieder von 180° nach 0° zurück. Wie schnell das ausgeführt wird, kann durch Werte von "delay" bestimmt werden. Die Variable "pos" (Position) wird in Zeile 13 um 1° erhöht (in Zeile 18 um 1° verringert). Wird hier statt 1 eine 2 gewählt, so ist die Drehgeschwindigkeit auch höher, aber weniger kontinuierlich, die Schrittweite also 2°, statt 1°. Sehr komfortabel können natürlich auch andere Werte für Drehwinkel gewählt werden. |
Die Befehle "switch", "case", "break", und eine Variable "state"
Die Anwendung
dieser Befehle ist nicht ganz trivial. Deshalb habe ich hierzu ein
einfaches Demo-Programm erstellt, welches zum besseren Verständnis
beitragen möge. Zunächst die Worterklärungen: "switch" (englisch) => "Schalter" (deutsch), "case" => "Fall", "break" => "Abbruch", "state" => "Status". Wann sind diese Funktionen nützlich? Nun, wenn es vorkommt, dass im Programmablauf (also in der "loop" (Schleife, die stets kontinuierlich durchlaufen wird) verschiedene Fälle auszuführen sind, und diese in Abhängigkeit von Bedingungen (=Status). Klingt schon kompliziert in der Theorie, aber das folgende Beispiel bring im wahrsten Sinne des Wortes Licht in die Sache, nämlich mittels LEDs, die zyklisch wechselnd aufleuchten. Den Testaufbau dazu zeigt die rechte Abbildung 1 und das zugehörige Programm die untere Abbildung 2. Download Demo switchstateTEST_1 |
Abb.1 |
Abb.2 |
INIZIALISIERUNG: LED1 an Pin D2, LED2 an Pin D3, eine Variable für Bedingungen wann welcher Fall auszuführen ist, hier mit dem Namen "state2" (es kann aber auch ein anderer Name gewählt werden). DEKLARATION: LED1, also Pin D2, und LED2, also Pin D3 als Ausgang definieren. ENDLOSSCHLEIFE: state2 (die Bedingung) wird auf Null gesetzt. Die for-Schleife erhöht bei jedem Durchlauf state2 um 1, bis state2 4 erreicht. Innerhalb der switch-Abfrage werden die Fälle (case) 1 bis 4 abgefragt. Je nach dem Wert welcher in der Variablen state2 steht werden nur die Anweisungen ausgeführt, die zwischen case x: und break stehen. Also z.B., wenn case2 den Wert 3 erhalten hat, werden die Anweisungen ausgeführt die zwischen case3 und dem zugehörigen break stehen. delay(1000) 1 Sekunde Pause. Dann wird state2 wieder auf Null gesetzt und der ganze Vorgang beginnt von vorne, da das Schleifenende erreicht wurde. Exakt zu beachten sind die geschweiften Klammern "auf: {" und "zu:}", welche in Abb.2 deutlich am Anfang und am Ende der farblich eingefügten Rahmen zu sehen sind! |
wird in lockeren Abständen um weitere Anwendungen ergänzt