Piezosignalgeber (12V) per Transistor und PWM

OP #270815
Lesenswert?

Tach,
ich habe an einem Ausgang von meinem mega8 ein Transistorschaltung
(ganz ähnlich dieser hier
http://www.mikrocontroller.net/attachment.php/265210/LEDs.JPG - rechte
Schaltung) und anstatt der Glühlampe ein Pizeopiepser.
Der µC erzeugt ein PWM-Signal.
Wenn ich den Piepser direkt an den µC hänge, habe ich die Töne, die ich
möchte, nur leider zu leise :(
Wenn ich allerdings das ganze an die Transistorschaltung baue, kommt so
gut wie nix mehr raus.
Die Töne sind zwar noch erkennbar, aber so super leise, dass man fast
nix mehr hört.
Kann das sein, dass die Transistoren zu langsam sind, oder wo liegt der
Fehler?
Als Transistoren habe ich 547 und 327.
Gast #270816
Lesenswert?

Hallo Berton,

ein Piezo stellt eine kapazitive Last dar. Bei der von Dir verwendeten
Treiberstufe wird diese Kapazität zwar gegen +12V ge- aber nicht mehr
entladen. Wenn Du den Piezo direkt an den Portpin hängst, funktioniert
dat natürlich, da der µC sowohl gegen +5V als auch gegen Masse
schaltet.

ein einfacher Widerstand (z.B. 1k) paralell zum Piezo bringt Dir schon
ne Menge.
Gast #270821
Lesenswert?

Im Datenblatt zu meinen BJM-05 Schalwandler ist in der Beispielschaltung
auch ein Schutzdiode eingezeichnet.Naja und die Piezos können ja auch ne
menge Spannung abgeben, ich habe mal aus einen 80 Volt rausbekommen,man
muß nur Ordendlich draufhauen. :o)

Gruß
Alber
Gast #270822
Lesenswert?

@Alber:

Der BJM-05 ist ja auch kein Piezo, sondern ein magnetischer
Schallwandler, und somit also eine induktive Last. Ausserdem wage ich
zu bezweifeln, daß Christoph beabsichtigt, seinen Piezo zu verprügeln
;o)
Gast #270823
Lesenswert?

Hallo,

alternativ zu der externen Transistorschaltung lässt sich auch eine
höhere Lautstärke ohne zusätzliche Bauteile realisieren. Schalte den
Piezo einfach zwischen zwei Port-Pins und schalte sie dann abwechselnd
auf +5V bzw. GND. Damit nimmst Du die Differenzspannung, also 2*Vcc,
und der Piezo ist lauter.

Gruß
Mario
OP #270825
Lesenswert?

@Magnus Müller: ggggggg verprügeln wollte ich den tatsächlich nicht ;)

Danke für's in Schutz nehmen.

@Mario: hmmmmm... klingt gut! Muß ich heute Abend direkt mal testen.

@Nario: oben gibt es ja eine Transistorschaltung, mehr habe ich
eigentlich auch nicht. Ersetze die Glühlampe einfach durch das
Piezoelement.
Hier der Code.
1
DDRB = (1 << DDB3);
2
TCCR2 = (1<<WGM21)|(1<<COM20)|(1<<CS22);
3

4
void sound(void) 
5
{  
6
  uint8_t timeout = 120;      
7
  OCR2=20;        
8
  TCCR2 |= (1<<COM20);    //comparemode on  
9
  for (int i=0; i<=timeout;i++){}        
10
  OCR2=30;
11
  for (int i=0; i<=timeout;i++){}        
12
  TCCR2 &= ~(1<<COM20);    // comparemode off  
13
}

Könnte man sicherlich noch verbessern, aber das reicht mir so.
Portiert wurde das ganze auf nen mega8 mit 4MHz.

Grüße
Christoph

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