Buzzer mit Python ansteuern

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Senseo3
User
Beiträge: 24
Registriert: Donnerstag 2. April 2015, 08:37

Hallo,

ich habe in mehreren Beiträgen die Möglichkeit gefunden, einen Buzzer anzusteuern.

Code: Alles auswählen

import time
import RPi.GPIO as IO
IO.setmode (IO.BCM)
PinG=18
IO.setup(PinG, IO.OUT)
Z=0
try:
    while True:
        time.sleep(0.0001)
        Z=Z+1
        if Z==1:
          IO.output(PinG,IO.HIGH)
        else:
          IO.output(PinG,IO.LOW)
          Z=0
except KeyboardInterrupt:
    IO.cleanup()
    print "Ende"
Wenn ich nun so ein Teil an PIN 18 gegen Masse anschließe, kommen ein Paar mehr als klägliche Töne aus dem Teil. alles andere als angenehm.
In den Youtube-videos zu dem Thema klingt das Ganze aber astrein.
Hat dazu jemand einen Tipp?

Danke schon mal im Vorraus
BlackJack

@Senseo3: Kann es sein dass Du da tatsächlich einen Buzzer hast und den mit (unsauberen) 10 kHz an- und ausschaltest? Lass das doch mal bleiben und schalte ihn einfach mal nur *an*. Und wenn Du den Ton nicht mehr hören magst, dann erst wieder aus.
Senseo3
User
Beiträge: 24
Registriert: Donnerstag 2. April 2015, 08:37

Hi,

danke für die Antwort. Ein Buzzer (Summer) ist ein piezzoelektrisches Bauelement (Piezoschallwandler). Du kannst es Dir wie ein Quarz, und von der Last her, wie ein Kondensator (ca. 100nF) vorstellen. Ein Piezzo benötigt immer eine Wechselspannung. Wobei der Wirkungsgrad meist bei ca. 1-2 KOhm am höchsten ist.
Was sollte da ein Ein- und Auschalten bringen?

Normalerweise brauchen die 10-XXX Volt. Bei mir hängt der an 3,3 Volt. Ich vermute, dass das das (cooler Satz) Problem ist. Mich wundert nur, dass es in den Samples funzt.

Gruß S3
BlackJack

@Senseo3: Also ich kenne Buzzer und Piezos und bei Buzzern muss man nur den Strom einmal anschalten und dann summen die bis man ihn wieder abschalten. Was Strom anschalten also bringen soll? Na dass es summt. :-)

Während man bei Piezos den Strom in der entsprechender Frequenz an- und abschalten muss damit die Töne von sich geben. Wenn Du also tatsächlich so ein Ding hast, dann versuchs mal mit einer anderen Frequenz — ich würde bei 1 Khz anfangen und dann in 1 Khz-Schritten höher gehen bis es vernünftig klingt. Und die Frequenz könnte man auch das GPIO-Modul mit einem `PWM`-Objekt generieren lassen, was sauberer werden dürfte als das in Python-Code zu machen.
Senseo3
User
Beiträge: 24
Registriert: Donnerstag 2. April 2015, 08:37

Ach BlJa,

natürlich werde ich sofort veranlassen, das sämtliche Artikel, auch der hier:

http://de.wikipedia.org/wiki/Summer_(Elektronik)

geändert werden.
Du verwechselst Strom und Spannung - schon das zeigt mir ein gefährliches Halbwissen. Man sollte nur Antworten posten, wenn man sich der Thematik sicher ist. Aber ich sehe, Du schreibst auf Krampf zu jedem Artikel etwas.
Nichts ist schlimmer als ein Oberlehrer in einem Forum.

Ciao
DerSuchende
User
Beiträge: 29
Registriert: Montag 21. Februar 2011, 07:37

Hi User,

so ist das eben, der Ton macht die Musik. Und das trifft nicht nur auf Deinen Buzzer zu, sondern auch auf Dein Auftreten hier im Forum.
Das wirkt nämlich leider recht überheblich. Wenn sich die Jungs hier Mühe geben, jedem zu helfen, muss man sie nicht als
"Oberlehrer" beschimpfen. Und solche Krümelkackereien wegen Strom und Spannung beweisen keineswegs Dein hohes Fachwissen.
Übrigens, und das sage ich Dir als Dipl-Ing für Nachrichtentechnik, wird der Begriff Buzzer, zwar in der Wikipedia als Universalsammelbegriff aufgefasst,
aber in der Elektronikbastelpraxis tatsächlich oft bevorzugt für Summer verwendet.

P.S. Solange Du hier höflich auftritts, bist Du immer willkommen.
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Senseo3 hat geschrieben:Nichts ist schlimmer als ein Oberlehrer in einem Forum.
Also mindestens einer fällt mir da ein. Und wo wir gerade schon bei dir sind: Du schaffst es nicht alleine einen Buzzer anzusteuern und hast Probleme beim Installieren einer Datenbank. Gleichzeitig wirst du beleidigend und glaubst es besser zu wissen als Leute die tatsächlich Ahnung haben. Ganz dünnes Eis. Hiermit noch einen freundlichen Gruß an Herrn Dunning und Herrn Kruger :-) Wie wäre es also, wenn du mal einen Gang runterschaltest und dich über die Hilfe freust?
Das Leben ist wie ein Tennisball.
Senseo3
User
Beiträge: 24
Registriert: Donnerstag 2. April 2015, 08:37

Hi, mit dem Ton habt ihr natürlich Recht. - Sorry. Hat mich halt etwas aufgeregt. Mit dem Dipl-Ing Kommunikationselektronik kann ich seit 30 Jahren aufwarten. Deshalb mein Kommentar. Mir kommt es in dem Forum nur leider so vor, als ob ich wie ein kleiner Junge behandelt würde.
Beide Male waren meine Fragen ausführlich und eindeutig. Wenn ich z.B. bei Ebay Butzzer / Summer eingebe, kommt genau nur dieser Signalgeber, und kein aktives Bauelement.

Wenn ich einen Buzzer an einen Atmel anschließe und das Gleiche mache, nämlich den Port einfach an und abzuschalten, wie an den GPIOs, bekomme ich einen sauberen Ton.

Wer " Herrn Dunning und Herrn Kruger" sind, weiß ich nicht.

Meine Frage war ja auch mehr oder weniger simpel. Der Code ist nicht von mir. Den gibt es in x Threads. Mich interessierte, warum es bei mir nicht funktioniert - aber egal.
BlackJack

@Senseo3: Dass das mit einem Mikrokontroller mit an-/abschalten funktioniert konnte man ja nicht wissen, dann hätte ich natürlich nicht mein Halbwissen über Buzzer sondern nur den Hinweis auf `PWM` abgegeben.

Die Frage ist bei dem gezeigten Code wie sauber der die 10 kHz hinbekommt und wie sauber der Piezo das braucht. Falls es nicht tatsächlich an zu wenig Spannung liegt. Kam die Schaltung mit dem Mikrokontroller da mit 3,3 V aus?
Senseo3
User
Beiträge: 24
Registriert: Donnerstag 2. April 2015, 08:37

Hi,

nein, meine verwendeten MCs benötigen immer 5V. Wobei ich sie auch schon über Transistor an mehr betrieben habe. Sicher tut der MC zur Zeit nichts anderes, als den Ton zu generieren. Der Raspi arbeitet noch andere Dinge im Hintergrund ab. Deshalb auch sicher die Verzerrungen. Ich habe bewußt keine PWM verwendet. Die Frage war ja auch: Warum funktioniert es bei so vielen anderen? Youtube-Videos zeigen den passiven Buzzer an beliebigen GPIOs. Bei Ebay gibt es zu Hauf "Buzzer für RaspBerrys". Auch in so Grund-Sets, welche es angro gibt, sind die dabei. Das hat bei mir die Frage aufgeworfen: Wieso tut es das bei mir nicht? Es wäre halt ein guter Nebeneffekt, hätte man die Dinger, ob nun mit oder ohne Transistor, gleich an einem GPIO betreiben können.
Ich hatte gehofft, jemanden im Forum zu treffen, der mir schreibt: "Hallo, das und das hast Du falsch gemacht und das hast Du übersehen. Ich wollte keine Erklärung, was ein Buzzer überhaupt ist.

Auch weiß ich, dass es auch aktive zu kaufen gibt, aber das war eben nicht die Frage.
BlackJack

@Senseo3: So grundsätzlich bleiben ja noch zwei Unterschiede zum MC: Die Regelmässigkeit der Schaltvorgänge und die Spannung. Zumindest mit `PWM` kann man das erste verbessern. Wenn sich dadurch etwas am Ton bzw. dessen Qualität zum besseren ändert, weiss man zumindest dass es daran lag.

Die Umschaltfrequenz bei der funktionierenden MC-Schaltung ist auch 10 kHz nehme ich an?
Senseo3
User
Beiträge: 24
Registriert: Donnerstag 2. April 2015, 08:37

Hi,

Am MC steuere ich die BUZZER mit Frequenzen von 600Hz - 10KHz an. Der höchste Wirkungsgrad der Piezos liegt bei typischen 1-2KHz. Wobei sich das nur auf die Lautstärke auswirkt.
Mein Irrglaube war, ich steuere diese Dinger genauso an, wie am MC. Dabei wollte ich, ohne das Ganze mit einem Transistor zu verstärken, erst Mal das Ergebnis hören. Da das am Pi nicht so einfach möglich erscheint, werde ich einfach einen ATTiny15 mit davor schalten und dann vorbelegte Tonfolgen mit I2C ansprechen. Ich weiß - das ist mit Kanonen auf Spatzen schießen, aber ein SMD verbraucht kaum Platz und von den Dingern habe ich bis Lebensende genug.

Gruß
Antworten