🎛️

Potentiometer

Projekt B04 - Analoge Werte lesen und LED dimmen

Beginner
ADC
PWM
Poti 10kΩ
1
Lernziele

Was du lernst

  • ADC (Analog-Digital-Converter) - Analoge Spannung als Zahl lesen
  • PWM (Pulse Width Modulation) - LED stufenlos dimmen
  • Werte mappen - ADC-Bereich auf PWM-Bereich umrechnen
  • Potentiometer - Variabler Spannungsteiler

Voraussetzungen

Projekte B01-B03 abgeschlossen, Grundlagen-Modul (PWM) verstanden

Komponenten

Was du brauchst

🎛️

Potentiometer 10kΩ

Ein variabler Widerstand mit drei Anschlüssen. Durch Drehen ändert sich die Spannung am mittleren Pin (Schleifer).

Anschlüsse: VCC, Schleifer (Signal), GND

💡

LED + 220Ω Widerstand

Die LED wird über PWM gedimmt - ihre Helligkeit folgt der Poti-Position.

ADC-Pins beim Arduino

Die analogen Eingänge A0-A5 können analoge Werte lesen! Wir nutzen A0.

2
Theorie

ADC und PWM verstehen

ADC - Analog zu Digital

Der ADC wandelt eine Spannung (0-5V) in eine Zahl um.

  • 0V → 0
  • 2.5V → 512
  • 5V → 1023
int wert = analogRead(A0);
// Ergibt 0 bis 1023

PWM - Digital zu "Analog"

PWM schaltet schnell ein/aus. Der Duty Cycle bestimmt die "Helligkeit".

  • 0 → LED aus
  • 127 → halbe Helligkeit
  • 255 → volle Helligkeit
analogWrite(pin, 127);
// PWM-Wert 0-255

Schaltplan

Poti und LED anschließen

Verbindungen

  Potentiometer:
  Pin 1 (VCC)      → 5V
  Pin 2 (Schleifer) → A0
  Pin 3 (GND)      → GND

  LED:
  Pin 9 ──[220Ω]──LED──GND
            

Wichtig

  • Poti an 5V
  • Mittlerer Pin (Schleifer) → A0
  • LED an Pin 9 (PWM-fähig!)

PWM-Pins beim Arduino Uno

Nur Pins 3, 5, 6, 9, 10, 11 können PWM!

3
Code

Schritt 1: Poti-Wert lesen

// Schritt 1: Potentiometer-Wert auslesen

const int POTI_PIN = A0;

void setup() {
  Serial.begin(9600);
}

void loop() {
  int wert = analogRead(POTI_PIN);  // 0 bis 1023
  Serial.print("Poti-Wert: ");
  Serial.println(wert);
  delay(100);
}

Teste es!

Drehe am Poti und beobachte die Werte in der Konsole. Sie sollten von 0 bis 1023 reichen.

3
Code

Schritt 2: LED mit PWM steuern

// Schritt 2: PWM für LED einrichten

const int POTI_PIN = A0;
const int LED_PIN = 9;  // PWM-faehiger Pin!

void setup() {
  pinMode(LED_PIN, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  int wert = analogRead(POTI_PIN);  // 0-1023

  // map() rechnet den Wert um: 0-1023 → 0-255
  int helligkeit = map(wert, 0, 1023, 0, 255);

  analogWrite(LED_PIN, helligkeit);
  Serial.print("Helligkeit: ");
  Serial.println(helligkeit);
  delay(50);
}

Die map()-Funktion

map(wert, vonMin, vonMax, zuMin, zuMax) rechnet einen Wertebereich in einen anderen um. Perfekt für ADC→PWM!

3
Code

Schritt 3: Mit Prozentanzeige

// Fertige Version: Poti steuert LED-Helligkeit

const int POTI_PIN = A0;
const int LED_PIN = 9;

void setup() {
  pinMode(LED_PIN, OUTPUT);
  Serial.begin(9600);
  Serial.println("Drehe am Potentiometer!");
}

void loop() {
  int wert = analogRead(POTI_PIN);
  int helligkeit = map(wert, 0, 1023, 0, 255);

  analogWrite(LED_PIN, helligkeit);

  // Prozent berechnen
  int prozent = wert * 100 / 1023;
  Serial.print("Helligkeit: ");
  Serial.print(prozent);
  Serial.println("%");

  delay(100);
}

Ergebnis

Die LED-Helligkeit folgt stufenlos der Poti-Position. In der Konsole siehst du die Helligkeit in Prozent.

Ausprobieren

Simulation in Wokwi

Wokwi Projekt

Füge ein Potentiometer und eine LED hinzu:

In Wokwi

Suche nach "potentiometer" und ziehe es in die Simulation. Klicke auf den Knopf und ziehe um zu drehen!

4
Challenges

Erweiterungen

📊

Challenge 1: Bargraph

Nutze 5 LEDs als Füllstandsanzeige (wie ein VU-Meter).

🎚️

Challenge 2: Stufen

Teile den Bereich in 5 Stufen. LED blinkt je nach Stufe unterschiedlich schnell.

🔊

Challenge 3: Tonhöhe

Nutze einen Piezo und ändere die Tonhöhe mit dem Poti.

📺

Challenge 4: Display

Zeige den Prozentwert auf einem LCD Display an.

🎛️

Geschafft!

Du kannst jetzt analoge Werte verarbeiten

ADC

Analoge Werte lesen

PWM

LED stufenlos dimmen

map()

Wertebereiche umrechnen

Nächstes Projekt

B05: RGB-LED Farbmischer - Drei Kanäle mit PWM steuern

← →
1 / 11