Piezosignalgeber (12V) per Transistor und PWM

OP #270815
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
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 #270819
Hallo

Noch ne Frage dazu :

Schaltet man nicht parallel zu den Piezo eine Schutzdiode in
Sperrichtung, oder übernimmt das im oben genanten Fall der Widerstand?

gruß
Alber
Gast #270821
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
@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
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
@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

Eine eigene Frage? Dieser Thread ist über 20 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.