Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
ef_informatik:arduino [2024-12-03 12:18] – [Aufgabe D2: Potentiometer] scaef_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 einer blinkenden LED einzustellen.+Verbinde ein Potentiometer mit dem Arduino und speichere den aktuellen Wert in einer Variablen. Nutze dann diesen Wert, um über einen anderen Pin Blinkdauer einer blinkenden LED einzustellen. Die Blinkdauer soll zwischen 0ms un d 200ms variieren.
  
-===== 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: Man muss die LED blinken lassen: Schnell genug, damit man es nicht als Blinken wahrnimmt aber langsam genug, damit die LED weniger hell erscheint.
 +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,puls_breite);` Siehe dazu auch die Grafiken im [[https://docs.arduino.cc/learn/microcontrollers/analog-output|Manual zu PWM]].
 +
 +
 +<nodisp 2>
 +
 +++++Lösungen D|
 +
 +**Aufgabe D1:**
 +
 +<code python>
 +</code>
 +
 +**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,OUTPUT);
 +}
 +
 +void loop() {
 +  int valPoti = analogRead(PIN_POTI);
 +  int delayTime = map(valPoti,0,1023,0,200);
 +  Serial.println(delayTime);
 +  digitalWrite(PIN_LED,isOn);
 +  isOn = !isOn;
 +  delay(delayTime);
 +}
 +</code>
 +
 +++++
 +
 +</nodisp>
 +
 +===== - Zusatzthemen =====
  
 Link zu Dossier von Simon Graf: Link zu Dossier von Simon Graf:
  
 +{{ :ef_informatik:transistorcpu_skript_teil_01-03.pdf | Vom Transistor zur CPU Teil 1 bis 3 }}
 +
 +{{ :ef_informatik:transistorcpu_skript_teil_04-06.pdf | Vom Transistor zur CPU Teil 4 bis 6 }}
  
 +{{ :ef_informatik:transistorcpu_skript_teil_07-09.pdf | Vom Transistor zur CPU Teil 7 bis 9 }}
  
  • ef_informatik/arduino.1733228303.txt.gz
  • Zuletzt geändert: 2024-12-03 12:18
  • von sca