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 12:18] – [Aufgabe D2: Potentiometer] 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 Blinkfrequenz | + | 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: | ||
| + | {{ : | ||
| + | |||
| + | {{ : | ||
| + | {{ : | ||