Piezo Speaker Lautstärke mit Arduino?
Hallo an alle, die Ahnung von Arduino Programmierung haben. Ist es irgenwie möglich, dass ich konstant eine bestimmte Frequenz mit einem Piezo Lautsprecher ausgeben und von diesem die Lautstärke über das Programm regeln kann? Danke schon im vorhinein. MfG aza1234
2 Antworten
Hi!
Ich hatte genau das gleiche Problem. Kurz gesagt habe es geschafft, indem ich einen Transistor dazwischen geschaltet habe und die Basis per PWM mit einem dazwischen geschalteten Kondensator angesteuert.
Das bedeutet (Ich weiß leider nicht wie man Schaltpläne hier zeichnet):
Piezo:
Pluspol an beliebigen Pin (ich nehme hier mal Pin 2)
Minuspol an Kollektor des Transistors
Transistor (NPN):
Kollektor an Minuspol des Piezos
Emitter an GND
Basis an Widerstand 2
Widerstand 1 (10kOhm):
Anschluss 1 an beliebigen PWM Pin (ich nehme hier mal Pin 3)
Anschluss 2 an Widerstand 2 UND an Kondensator.
Widerstand 2:
Anschluss 1 an Widerstand 1 UND an Kondensator.
Anschluss 2 an Basis des Transistors
Kondensator (100 mikroF):
Anschluss 1 (bei Elektrohytkondensatoren Pluspol) an Widerstand 1 UND
Widerstand 2
Anschluss 2 (Minuspol) an GND
Jetzt kannst du an Pin 2 tone(2, Tonhoehe) und noTone(2) verwenden und an Pin 3 analogWrite(3, Lautstaerke) einsetzen um den Piezo zu steuern.
Der Kondensator ist übrigens sehr wichtig, da sonst der Ton nicht leiser oder lauter würde, sondern lediglichein unangenehmes "Flattern" des Tons entstehen würde.
Mal eins nach den anderen. Den Lautsprech sprichst du folgendermaßen an:
void setup()
{
pinMode(outputPin, OUTPUT); // dein Lautsprecher-Pin als Ausgang definieren
}
void loop()
{
tone(outputPin, frequency, duration);
}
Die Funktion 'tone' verlangt nach 3 Parametern. Zum einen der Pin an dem dein Lautsprecher angeschlossen ist, die Frequenz die der Lautsprecher wiedergibt und die Dauer, wie lange er den Ton abgibt.
Lautstärke mit Programm regeln müsstest du ein wenig genauer erklären, wird aber womöglich nicht so einfach funktionieren.