Encender la luz y el sonido simultáneamente

FunduinoÚltima actualización el

LED und Piezo gleichzeitig ansteuern – und Variablen kennenlernen

Eine LED blinkt, ein Piezo piept – beides gleichzeitig und im Sekundentakt. Technisch ist das der Blink-Sketch mit einem zweiten Ausgang.

Der eigentliche Lerninhalt steckt aber im ersten Programmabschnitt: Hier lernst du Variablen kennen. Die Pins bekommen Namen, und im restlichen Programm steht dann „LED“ statt „5“. Das macht den Code lesbar – und wenn du später umsteckst, änderst du nur eine Zeile.

Aufbau und Programm gibt es für vier Boards: Arduino UNO, Wemos D1 Mini, ESP32-Wroom und NodeMCU.

Steckbrettaufbau mit LED und Piezo am Arduino UNO
Aufbau am Arduino UNO, Pin 5 und Pin 7

Elige un microcontrolador

Pins, Schaltplan und Sketch in den Arbeitsschritten ändern sich entsprechend deiner Auswahl. Sie bleibt gespeichert.

Die Aufgabe

Eine LED und ein Piezo-Lautsprecher sollen gleichzeitig blinken und piepen. Technisch ist das der Blink-Sketch mit einem zweiten Ausgang – didaktisch geht es um etwas anderes: um Variablen.

Statt im ganzen Programm mit den Zahlen 5 und 7 zu hantieren, bekommen die beiden Pins vor dem setup einen Namen. Danach steht im Programm „LED“ und „Pieps“ statt der Pinnummer. Willst du später umstecken, änderst du nur eine einzige Zeile.

Aktiver oder passiver Lautsprecher?

Für dieses Projekt brauchst du einen aktiven Lautsprecher, auch Piezo-Speaker genannt. Er erzeugt seinen Ton selbst, sobald Spannung anliegt – genau deshalb genügt im Sketch ein digitalWrite.

Beide Bauformen sehen fast gleich aus. Den aktiven erkennst du an der geschlossenen, schwarzen Unterseite; beim passiven ist die Unterseite offen.

Der Artikel verlinkt für dasselbe Bauteil zwei verschiedene Produkte – eines in der Materialliste, ein anderes im Aufgabentext.

Passiver Lautsprecher mit offener und aktiver mit geschlossener Unterseite nebeneinander
Links passiv (offen), rechts aktiv (geschlossen)

Aufbau und Programm für den Arduino UNO

Die LED hängt an Pin 5, der Piezo an Pin 7. Vor die LED gehört ein Vorwiderstand von 220 Ohm – LEDs arbeiten mit 2 bis 3 Volt, der Mikrocontroller liefert 5 Volt.

Steckbrettaufbau mit LED und Piezo am Arduino UNO
Aufbau am Arduino UNO, Pin 5 und Pin 7
Arduino UNO
// Dieses Mal nutzen wir auch den ersten Programmabschnitt.
// Hier werden Variablen eingetragen. Das bedeutet, dass sich hinter einem Buchstaben oder einem Wort eine Zahl verbirgt.
// Bei uns ist die LED an Pin 5 angeschlossen und der Piezo-Speaker an Pin 7.
// Damit man die beiden Pins später nicht verwechselt, benennen wir Pin 5 und Pin 7 einfach um.
int LED = 5;  // Das Wort „LED“ steht jetzt für die Zahl „5“.
int Pieps = 7;  // Das Wort „Pieps“ steht jetzt für die Zahl „7“.
void setup()  // wir starten mit dem Setup.
{
  pinMode(LED, OUTPUT);  // Pin 5 (Pin „LED“) ist ein Ausgang.
  pinMode(Pieps, OUTPUT);  // Pin 7 (Pin „Pieps“) ist ein Ausgang.
}
void loop()  // Das Hauptprogramm beginnt.
{
  digitalWrite(LED, HIGH);  // Schalte die LED an.
  digitalWrite(Pieps, HIGH);  // Schalte den Piezo-Lautsprecher an.
  delay(1000);  // Warte 1000 Millisekunden. (Es piepst und leuchtet.)
  digitalWrite(LED, LOW);  // Schalte die LED aus.
  digitalWrite(Pieps, LOW);  // Schalte den Piezo aus.
  delay(1000);  // Warte 1000 Millisekunden. (kein Lärm, kein Licht)
}
// Hier am Ende springt das Programm an den Start des Loop-Teils.
// also wird es gleich wieder piepsen und leuchten. Wenn man die Pause (delay) verkleinert oder vergrößert,
// piepst und leuchtet es schneller oder langsamer.

Aufbau und Programm für den Wemos D1 Mini

Beim Wemos D1 Mini liegen LED und Piezo an D5 und D6. Den Pinnummern muss im Programm ein „D“ vorangestellt werden.

Steckbrettaufbau mit LED und Piezo am Wemos D1 Mini
Aufbau am Wemos D1 Mini, D5 und D6
Wemos D1 Mini
int LED = D5;  // Das Wort „LED“ steht jetzt für D5.
int Pieps = D6;  // Das Wort „Pieps“ steht jetzt für D6.
void setup()  // wir starten mit dem Setup.
{
  pinMode(LED, OUTPUT);  // Pin D5 (Pin „LED“) ist ein Ausgang.
  pinMode(Pieps, OUTPUT);  // Pin D6 (Pin „Pieps“) ist ein Ausgang.
}
void loop()  // Das Hauptprogramm beginnt.
{
  digitalWrite(LED, HIGH);  // Schalte die LED an.
  digitalWrite(Pieps, HIGH);  // Schalte den Piezo-Lautsprecher an.
  delay(1000);  // Warte 1000 Millisekunden. (Es piepst und leuchtet.)
  digitalWrite(LED, LOW);  // Schalte die LED aus.
  digitalWrite(Pieps, LOW);  // Schalte den Piezo aus.
  delay(1000);  // Warte 1000 Millisekunden. (kein Lärm, kein Licht)
}

Aufbau und Programm für den ESP32-Wroom

Am ESP32-Wroom sitzen LED und Piezo an Pin 26 und Pin 27.

Steckbrettaufbau mit LED und Piezo am ESP32-Wroom
Aufbau am ESP32-Wroom, Pin 26 und Pin 27
ESP32-Wroom
int LED = 26;  // Das Wort „LED“ steht jetzt für die Zahl „26“.
int Pieps = 27;  // Das Wort „Pieps“ steht jetzt für die Zahl „27“.
void setup()  // wir starten mit dem Setup.
{
  pinMode(LED, OUTPUT);  // Pin 26 (Pin „LED“) ist ein Ausgang.
  pinMode(Pieps, OUTPUT);  // Pin 27 (Pin „Pieps“) ist ein Ausgang.
}
void loop()  // Das Hauptprogramm beginnt.
{
  digitalWrite(LED, HIGH);  // Schalte die LED an.
  digitalWrite(Pieps, HIGH);  // Schalte den Piezo-Lautsprecher an.
  delay(1000);  // Warte 1000 Millisekunden. (Es piepst und leuchtet.)
  digitalWrite(LED, LOW);  // Schalte die LED aus.
  digitalWrite(Pieps, LOW);  // Schalte den Piezo aus.
  delay(1000);  // Warte 1000 Millisekunden. (kein Lärm, kein Licht)
}

Aufbau und Programm für den NodeMCU

Am NodeMCU liegen LED und Piezo an D1 und D2.

Steckbrettaufbau mit LED und Piezo am NodeMCU
Aufbau am NodeMCU, D1 und D2
NodeMCU
int LED = D1;  // Das Wort „LED“ steht jetzt für D1.
int Pieps = D2;  // Das Wort „Pieps“ steht jetzt für D2.
void setup()  // wir starten mit dem Setup.
{
  pinMode(LED, OUTPUT);  // Pin D1 (Pin „LED“) ist ein Ausgang.
  pinMode(Pieps, OUTPUT);  // Pin D2 (Pin „Pieps“) ist ein Ausgang.
}
void loop()  // Das Hauptprogramm beginnt.
{
  digitalWrite(LED, HIGH);  // Schalte die LED an.
  digitalWrite(Pieps, HIGH);  // Schalte den Piezo-Lautsprecher an.
  delay(1000);  // Warte 1000 Millisekunden. (Es piepst und leuchtet.)
  digitalWrite(LED, LOW);  // Schalte die LED aus.
  digitalWrite(Pieps, LOW);  // Schalte den Piezo aus.
  delay(1000);  // Warte 1000 Millisekunden. (kein Lärm, kein Licht)
}
Calificar la guía

Comentarios

Haz una pregunta o comparte tu experiencia

Schreib uns, wenn etwas nicht funktioniert. Nenne dabei dein Board und die Fehlermeldung.

Revisamos cada comentario antes de publicarlo. Tu dirección de correo electrónico permanece con nosotros.