Und hier kommen wie versprochen die beiden ersten Experimente mit dem Arduino. Es geht darum LED’s zu schalten.
Im ersten Experiment wollen wir die rote LED des Ausbildungsshields zum blinken bringen. Dazu schließen wir eine rote LED über einen Widerstand von 270 Ohm mit der Anode an PIN D5 und mit der Kathode an PIN D4 an. Man würde jetzt eher erwarten, dass die Kathode an Masse gelegt wird. Aber wie im einführenden Beitrag beschrieben, ist dies eine Eigenart des Ausbildungs-Shields und dient dazu, die gewählte Vielzahl an Bauteilen ansteuern zu können. Einige Pins wurden daher doppelt belegt. Der Vorwiderstand dient dazu den Strom durch die Leuchtdiode einzustellen, bzw. zu begrenzen.
Die beiden folgenden Grafiken zeigen die Schaltung von 3 LED’s. Für das erste Experiment wird nur die rote LED benötigt. Die beiden weiteren Leuchtdioden verwenden wir im nächsten Experiment.
Nachfolgend nun die Programmcode, der über die gewählte Entwicklungsumgebung in den Arduino geladen wird:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
/**************************************************************************** Erster Test des AATiS EDU-Shield (BB65) für Arduino Es wird die rote LED zum Blinken gebracht *****************************************************************************/ // Zu Beginn werden die benötigten Variablen definiert // Definition der Ein- und Ausgabepins. Es werden alle LED definiert, auch wenn nicht alle LED benötigt werden. // Die anderen LED werden in zükünftigen Projekten benötigt. // Den einzelnen Variablen werden die Pinnummern zugeordnet, an denen die entsprechenden Bauteile hängen. const byte rote_LED = 5; const byte gelbe_LED = 6; const byte gruene_LED = 9; const byte gemeinsam_LED = 4; const byte RGB_rot = 5; const byte RGB_blau = 6; const byte RGB_gruen = 9; const byte gemeinsam_RGB = A5; // Im Programmteil Setup werden die grundsätzlichen Einstellungen vorgenommen. // Dieser Teil der Software wird nur einmal durchlaufen. // Die LED-Pins werden so eingestellt, dass sie für eine Ausgabe programmiert sind. Es werden alle Ausgänge für die LED programmiert, auch wenn nicht alle LED benötigt werden. // Die anderen LED werden in zukünftigen Projekten benötigt. void setup() { pinMode(rote_LED, OUTPUT); pinMode(gelbe_LED, OUTPUT); pinMode(gruene_LED, OUTPUT); pinMode(RGB_rot, OUTPUT); pinMode(RGB_blau, OUTPUT); pinMode(RGB_gruen, OUTPUT); pinMode(gemeinsam_LED, OUTPUT); pinMode(gemeinsam_RGB, OUTPUT); digitalWrite(gemeinsam_LED,LOW); // Mit diesem Befehl wird der Ausgang, an dem die Kathoden 3 LED hängen auf Masse gelegt. hä } // Loop ist die sogenannte Hauptprogrammschleife des Programms. // Die Programmteil wird ständig wiederholt void loop() { digitalWrite(rote_LED,HIGH); // Ausgang an dem die rote LED hängt auf 5V schalten delay(1000); // 1000ms warten digitalWrite(rote_LED,LOW); // Ausgang an dem die rote LED hängt auf 5V schalten delay(1000); // 1000ms warten } |
Mit ‚//‚ markiert man den Anfang von Kommentaren. Diese werden von der Entwicklungsumgebung beim programmieren des Mikrocontrollers nicht beachtet. Kommentare dienen dazu die Software lesbarer zu gestalten. Mit ‚/* …. */‚ kann ein ganzer Block im Programmcode als Kommentar markiert werden.
Und nun noch ein zweites kleines Experiment. Die drei LED’s werden so programmiert, dass eine Ampelschaltung simuliert wird. Viel Spaß beim Ausprobieren.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
/**************************************************************************** Zweiter Test des AATiS EDU-Shield für Arduino BB65 Es wird eine Ampel simuliert *****************************************************************************/ // Zu Beginn werden die benötigten Variablen definiert // Definition der Ein- und Ausgabepins. Es werden alle LED definiert, auch wenn nicht alle LED benötigt werden. // Die anderen LED werden in zükünftigen Projekten benötigt. // Den einzelnen Variablen werden die Pinnummern zugeordnet, an denen die entsprechenden Bauteile hängen. const byte rote_LED = 5; const byte gelbe_LED = 6; const byte gruene_LED = 9; const byte gemeinsam_LED = 4; const byte RGB_rot = 5; const byte RGB_blau = 6; const byte RGB_gruen = 9; const byte gemeinsam_RGB = A5; void setup() { // Im Programmteil Setup werden die grundsätzlichen Einstellungen vorgenommen. // Dieser Teil der Software wird nur einmal durchlaufen. // Die LED-Pins werden so eingestellt, dass sie für eine Ausgabe programmiert sind. Es werden alle Ausgänge für die LED programmiert, auch wenn nicht alle LED benötigt werden. // Die anderen LED werden in zukünftigen Projekten benötigt. pinMode(rote_LED, OUTPUT); pinMode(gelbe_LED, OUTPUT); pinMode(gruene_LED, OUTPUT); pinMode(RGB_rot, OUTPUT); pinMode(RGB_blau, OUTPUT); pinMode(RGB_gruen, OUTPUT); pinMode(gemeinsam_LED, OUTPUT); pinMode(gemeinsam_RGB, OUTPUT); digitalWrite(gemeinsam_LED, LOW); // Mit diesem Befehl wird der Ausgang, an dem die Kathoden 3 LED hängen auf Masse gelegt. } void loop() { digitalWrite(rote_LED, HIGH); // PIN der roten LED auf 5 Volt setzen (Ampel auf rot schalten) delay(5000); // 5 Sekunden warten digitalWrite(gelbe_LED, HIGH); // PIN der gelben LED ebenfalls auf 5 Volt setzen (Ampel auf rot/gelb schalten) delay(1000); // 5 Sekunden warten digitalWrite(rote_LED, LOW); // PIN der roten LED auf 0 Volt setzen digitalWrite(gelbe_LED, LOW); // PIN der gelben LED auf 0 Volt setzen digitalWrite(gruene_LED, HIGH); // PIN der grünen LED auf 5 Volt setzen (Ampel auf gruen schalten) delay(5000); // 5 Sekunden warten digitalWrite(gruene_LED, LOW); // PIN der grünen LED auf 0 Volt setzen digitalWrite(gelbe_LED, HIGH); // PIN der gelben LED auf 5 Volt setzen (Ampel auf gelb schalten) delay (1500); // 5 Sekunden warten digitalWrite(gelbe_LED, LOW); // PIN der gelben LED auf 0 Volt setzen } |
Du muss angemeldet sein, um einen Kommentar zu veröffentlichen.