Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
ef_informatik:arduino [2024-12-03 11:36] – [Aufgabe D1: RGB-LED] sca | ef_informatik:arduino [2024-12-10 09:34] (aktuell) – [Aufgabe D2: Potentiometer] sca | ||
---|---|---|---|
Zeile 481: | Zeile 481: | ||
=== Aufgabe D2: Potentiometer === | === Aufgabe D2: Potentiometer === | ||
- | Verbinde ein Potentiometer mit dem Arduino und speichere den aktuellen Wert in einer Variablen. Nutze dann diesen Wert, um über einen anderen Pin die Helligkeit | + | Verbinde ein Potentiometer mit dem Arduino und speichere den aktuellen Wert in einer Variablen. Nutze dann diesen Wert, um über einen anderen Pin Blinkdauer |
- | ===== - Zusatzthemen ===== | + | *Tipp:* Verwende die `map(...)`-Funktion. |
+ | === Aufgabe D3: Helligkeit regulieren mit PWM === | ||
+ | |||
+ | Um die Helligkeit einer LED einstellen zu können, würde sich ein analoger Output-Pin anbieten, da dieser, im Gegensatz zu einem digitalen Output, auch Werte zwischen 0V und 5V annehmen kann. | ||
+ | Trotzdem wollen wir für diese Aufgabe die LED an einem digitalen Pin anschliessen. Um die Helligkeit einstellen zu können, so müssen wir auf einen Trick zurückgreifen: | ||
+ | Diesen Code kann man natürlich selbst schreiben. Einfacher aber ist es, wenn man die LED an einen PWM-Pin anschliesst (digitale Pins mit Tilde-Symbol). **PWM** steht für **Pulse Width Modulation**. Der Output wechselt dabei periodisch zwischen LOW und HIGH, wobei man die Breite des Pulses mit einer Zahl zwischen 0 und 255 angeben kann: `analogWrite(PIN_NR, | ||
+ | |||
+ | |||
+ | <nodisp 2> | ||
+ | |||
+ | ++++Lösungen D| | ||
+ | |||
+ | **Aufgabe D1:** | ||
+ | |||
+ | <code python> | ||
+ | </ | ||
+ | |||
+ | **Aufgabe D2:** | ||
+ | |||
+ | <code python> | ||
+ | /* | ||
+ | POTI: | ||
+ | - left to LOW | ||
+ | - right to HIGH | ||
+ | - center to PIN_POTI A0 | ||
+ | |||
+ | LED: PIN_LED -> LED -> Resistor 150 Ohm -> LOW | ||
+ | */ | ||
+ | |||
+ | #define PIN_LED 2 | ||
+ | #define PIN_POTI A0 | ||
+ | |||
+ | bool isOn = true; | ||
+ | |||
+ | void setup() { | ||
+ | Serial.begin(9600); | ||
+ | pinMode(PIN_LED, | ||
+ | } | ||
+ | |||
+ | void loop() { | ||
+ | int valPoti = analogRead(PIN_POTI); | ||
+ | int delayTime = map(valPoti, | ||
+ | Serial.println(delayTime); | ||
+ | digitalWrite(PIN_LED, | ||
+ | isOn = !isOn; | ||
+ | delay(delayTime); | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ++++ | ||
+ | |||
+ | </ | ||
+ | |||
+ | ===== - Zusatzthemen ===== | ||
Link zu Dossier von Simon Graf: | Link zu Dossier von Simon Graf: | ||
+ | {{ : | ||
+ | |||
+ | {{ : | ||
+ | {{ : | ||