Dein Fortschritt:
0 / 0 Aufgaben
1
Ein Rücklicht fürs Fahrrad
AFB I–IITim baut für sein Fahrrad ein Rücklicht mit einem Arduino Uno. Normalerweise soll die rote LED blitzen; solange der Taster am Lenker gedrückt ist, soll sie dauerhaft leuchten. Die Schaltung und der Sketch sehen so aus:
Arduino · ruecklicht.ino
const int LED = 9; const int TASTER = 2; void setup() { pinMode(LED, OUTPUT); pinMode(TASTER, INPUT_PULLUP); } void loop() { if (digitalRead(TASTER) == LOW) { // Dauerlicht digitalWrite(LED, HIGH); } else { // Blinklicht digitalWrite(LED, HIGH); delay(100); digitalWrite(LED, LOW); delay(400); } }
Schaltskizze des Rücklichts
INPUT_PULLUP nicht.- Nennen Sie die Pins, die der Sketch als Ausgang bzw. als Eingang benutzt, wie oft
setup()undloop()jeweils ausgeführt werden und den Speicher, in dem das übersetzte Programm auf dem Board liegt. - Berechnen Sie für das Blinklicht die Periodendauer \(T\), die Frequenz \(f\) und die Anzahl der Blitze in einer Minute.
- Erläutern Sie, warum der Sketch einen gedrückten Taster an
LOWerkennt und warum die LED nach dem Drücken manchmal erst mit Verzögerung dauerhaft leuchtet.
Hinweise
Hinweis zu Aufgabe a)
Schauen Sie auf die
pinMode-Aufrufe. Welcher Speicher des Mikrocontrollers behält das Programm auch ohne Strom?Hinweis zu Aufgabe b)
Eine Periode besteht aus der Leuchtzeit und der Pause. Rechnen Sie Millisekunden in Sekunden um, bevor Sie \(f = \frac{1}{T}\) bilden. Die Laufzeit der übrigen Befehle ist gegenüber den Wartezeiten vernachlässigbar.
Hinweis zu Aufgabe c)
Was misst Pin 2, wenn der Taster offen ist und der interne Pull-up-Widerstand ihn mit 5 V verbindet — und was, wenn der Taster ihn mit GND verbindet? Wann wird
digitalRead in loop() überhaupt aufgerufen?