Piezzo -> vernünftiges piepsen

Gast #468913
Lesenswert?

Hat jemand erfahrungswerte wie man nem Piezo am besten ein vernünftiges 
piepsen entlockt?
Ich kiege es zwar hin das er töne von sich gibt aber das hört sich... 
naja schräg an.
Ich hätte am liebsten ein piepsen ähnlich dem beim POST des PCs, halt 
son informationspiepen :D
Piezo ist einer von nem Alten Mainboard, wird über transistor von nem 
TINY15 angesteuert.
Vieleicht hat ja jemand auch auf dem Tiny schon son "peper" 
implementiert und kann mir die Werte für Comparematch und TopValue sowie 
Prescaler der PWM nennen :)
Ich hab sosnt fürcht ich bald nen Klingeln im Ohr wenn meiner weiterhin 
so qäckt :)

Danke schonmal im vorraus.
Gast #469101
Lesenswert?

Es gibt Piezo-Summer welche eine feste Frequenz haben, die sie durch 
anlegen einer Gleichspannung erzeugen. Andere Summer benötigen ein 
Rechteck-Signal. Ich selbst setze eine solchen Summer ein und betreibe 
ihn mit einem 1,5kHz Rechteck-Signal. Was man bei Piezos beachten sollte 
ist, dass der Piezo nicht "frei schwebt", sondern an einer Platte oder 
ähnlichem befestigt ist, da er sonst nur ein Krächtzen von sich gibt.

MfG

Kai
(Firma: Promaxx.net) #469136
Lesenswert?

Versuch es mal mit 3kHz. Irgendwo haben die alle eine optimal laute 
Frequenz.

Besser wird es, wenn Du statt 5V so bis zu 20V nehmen würdest.
Und dann noch die Anschlüsse im Gegentakt, dann verdoppelt sich die 
Spannung...

Ich habe es auch lange probiert. Mit Ladungspumpe durch 2 Shottky-Dioden 
einen 1000uF-Kondensator auf 10V geladen und dann mit einem ICL7660 im 
Gegentakt angesteuert...

Kauf einen selbsterregenden Summer und fertig.
Gast #469325
Lesenswert?

So mal ne kurze Rückmeldung:
Er summt. sowohl bei 1.5khz als auch bei 3khz recht annehmbar.
Aber wie entlocke ich dem ganzen ein simples "piep" wie es der PC z.B. 
beim starten von sich gibt? Ne Tabelle mit WAV samples wäre denk ich 
übertrieben und passt auch nicht in den TINY rein :D
Gast #469336
Lesenswert?

Einfach die gewünschte Frequenz aktivieren. Je nach Geschmack 100-300ms 
waren. Frequenz wieder deaktiviern. Fertig!
So macht es das Bios mit dem PC-Speaker, bzw. bei aktuellen Boards mit 
Piepser auch.
Gast #469338
Lesenswert?

@Läubi

> Er summt. sowohl bei 1.5khz als auch bei 3khz recht annehmbar.
> Aber wie entlocke ich dem ganzen ein simples "piep" wie es der PC z.B.
> beim starten von sich gibt? Ne Tabelle mit WAV samples wäre denk ich

Wie bereits gesagt, Ansteuerung im Gegentaktbetrieb verdoppelt praktisch 
die verfügbare Spannung -> 4fache Leistung.

Also die beiden Pins an jeweils ein AVR-Pin, und beide Pins immer auf 
entgegengesetzten Pegel schalten. Das Ganze mit der entsprechenden 
Frequenz. Wenn man die Prozedur ein paar hundert Millisekunden macht, 
gibts den "berühmten" PEEP. Ach nee, das war was anderes ;-)

MfG
Falk
(Firma: TravelRec.) Persönliche Seite #469340
Lesenswert?

3kHz anschalten, 1s warten, 3kHz ausschalten = Piep!

Du betreibst den Piezo aber nicht mit Wechselspannung, wie ich gelesen 
habe. Wenn es kein selbsterregter Piezo ist, muß er mit Wechselspannung 
betrieben werden, da ein Piezo ein C darstellt, welcher sich aufläd und 
dann auch wieder entladen werden muß. Wenn Du den Piezo nun zwischen 2 
Portpins schaltest, die immer gegensätzlichen Pegel haben, kannst Du 
10Vss auf das Ding schalten. Damit solltest Du auch genug Schmackes 
bekommen. Immer vorausgesetzt, daß es ein Piezo und kein 
elektrodynamischer Summer ist. Letztere habe nämlich eine Spule und ein 
Blechplättchen drin. Diese erzeugen auch ziemlich gemeine Induktionen 
und brauchen eine Freilaufdiode. Miß das Ding mal durch - wenn Du einen 
Widerstand von 20-100 Ohm messen kannst, ist es ein elektrodynamischer 
Speaker.
Gast #469369
Lesenswert?

Also im Momment ist das ganze derart angeschlossen:

GND -- BC447 -- (-)Piezo(+) -- 270ohm -- 5V

Gegentakt wäre natürlich ne möglichkeit... da die Platine aber schon so 
fertig ist etwas scher im Nachinein noch reinzufriemeln :(
Könnte ich statdessen auch einfach eine Entladewiderstand einbauen? 
(Wenn ja wie gross?)
Gast #469382
Lesenswert?

Ich hab jezt mal gemessen, laut MM 20 Ohm Widerstand (gemessen in der 
Schaltung oder muß ich das Teil dafür auslöten?)
Also laut Travelrec ein Elektrodynamischer Speaker(?) hilft das weiter?
Gast #469408
Lesenswert?

@Läubi

Ich hab jezt mal gemessen, laut MM 20 Ohm Widerstand (gemessen in der
Schaltung oder muß ich das Teil dafür auslöten?)

JA! Wenigstens ein Pin.

> Hier mal ein Bild von dem Teil

Sieht schwer nach Piezo aus.

MfG
Falk
Gast #469551
Lesenswert?

Okay also dann weiß ich jezt die Frequenz das Ding geht mit 5V Aber sit 
meine Schaltung den jezt brauchbar dafür?

Und kann mal wer kurz über meine Timerberechnung schauen?
Also der Tiny läuft ja mit 1,6Mhz
Ich betreibe den Timer im CTC-Modus mit Toggle des Pins an dem der 
Transistor hängt.
Prescaler: /16
CTC-Wert: 42
Frequenz: 2380 Hz (etwa)
Kommt das so hin?
Gast #469592
Lesenswert?

@Läubi

> Das Problem ist das Netzteil schafft nicht soviel an dem der AVR hängt

Das Ding zieht 50 mA. Welches "Netzteil" schafft das nicht?

> mit dem Widerstand wollte ich verhindern das das NT in die Knie geht,
> stört der Widerstand oder ist der Pieper nur leiser?

Ich dachte der leise Piepser ist das Problem?

MfG
Falk
Gast #469603
Lesenswert?

>> Das Ding zieht 50 mA. Welches "Netzteil" schafft das nicht?
Nen Minitrafo der laut Hersteller 55mA liefern kann :)

>> Ich dachte der leise Piepser ist das Problem?
Das Problem ist eher das das Ding recht unangenhm "krächtz" mir aber ein 
etwas angenhmeres piepen lieber wäre :)
(Der AVR soll nur Signal geben das eine Aufgabe fertig ist und im 
Momment hörts sich halt recht Agressiv an)
Die Lautstärke ist im Momment zwar nicht berühmt aber durchaus noch im 
Bereich des höhrbaren :)
Gast #469701
Lesenswert?

> Das Problem ist eher das das Ding recht unangenhm "krächtz" mir aber ein
> etwas angenhmeres piepen lieber wäre :)

Dann nimm mal probehalber ein richtiges Netzteil und mach die 270 Ohm 
raus. Es kann sein, dass der Piepser bei niedrigen Ansteuerspannungen 
komisch klingt, und erst bei ordentlich Leistung ordentlich piept.

MfG
Falk
Gast #469775
Lesenswert?

So, hab mal rumprobiert.
Kleiner Widerstand --> Lauter aber nicht anderer Ton.
Ich habs jezt sogemacht Timer im CTC wie oben.

Timer 160ms an
Timer 160ms aus
Timer 160ms an
Timer aus

Ergibt in etwa das typische zweimal piepsen wie beim POST Test des Bios.
Im momment noch ganz stumpf mit Warteschleifen aber es geht erstmal.
Gast #470103
Lesenswert?

Ich kenne diese Teile auch nur als elektromagnetische Wandler, zumal das 
bei 20 Ohm Innenwiderstand und einem "Klick" beim Anlegen einer Spannung 
sehr wahrscheinlich ist. Der Frequenzbereich dieser Teile ist gar nicht 
so schlecht, ich betreibe hier einen mit 440 Hz und auch das geht noch 
recht gut. Natürlich lässt bei so niedrigen Frequenzen die Lautstärke 
beträchtlich nach.
#470230
Lesenswert?

Piezzos verhalten sich wie Kondensatoren der im Bild hat 20nF.
Er war in der Sirene einer Alarmanlage, über einen Transistor von +6V 
nach Masse geschaltet (110 dB laut)
Man kann Piezzos direkt an den PWM-Ausgang eines AVR hängen +an Piezzo.
damit er lauter wird braucht er einen Flaschenverschluss ;-)

Hier ein trauriger Versuch "Alle meine Entchen" zu spielen:
/*
;PWM Piezzo
;
; ================================================
;                   TINY26
; ================================================
;                 __   __
;            PB0 |1  |_| 28| PA0 (ADC0)
;   (Piezo)  PB1 |2   A  27| PA1 (ADC1)
;            PB2 |3   T  26| PA2 (ADC2)
;            PB3 |4   M  25| PA3 (AREF)
;            VCC |5   E  24| GND
;            GND |6   L  23| AVCC
;   (ADC7)   PB4 |7      22| PA4 (ADC3)
;   (ADC8)   PB5 |8   A  21| PA5 (ADC4)
;   (ADC9)   PB6 |9   T  20| PA6 (ADC5/AIN0)
;   RESET    PB7 |10  m  19| PA7 (ADC6/AIN1)
;                |_________|
*/


#include <avr/io.h>
#include <stdlib.h>

void Pause(uint8_t z)
{
  uint8_t i;
  uint8_t j;
  for(i=0;i<z;i++)
  {
    for(j=0;j<250;j++) {}
}}

void Piep(uint8_t t,uint8_t z)  //t bis 125
{
  OCR1C=t<<1;
  OCR1A=t;  // 50% Puls-Pausenverhältnis
  Pause(z);
}

int main()
{

DDRB  = 0xFF; // PORTB als Ausgang schalten

TCCR1A|=(1<<COM1A0)|(1<<PWM1A)|(1<<PWM1B);// enable TimerA
TCCR1B|=(1<<CTC1)|(1<<CS11)|(1<<CS10);     // Vorteiler Timer A
OCR1B=0x00;

for(;;) //töne
  {
   //alle meine Entchen
  Piep(68,100);  // d
  Piep(76,100);  // e
  Piep(80,100);  // f
  Piep(90,100);  // g
  Piep(102,200);  // a
  Piep(1,50);     //nix
  Piep(102,100);  // a
  Piep(2,250);  // nix
  }
}
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren