On Monday, March 17, 2014 9:11:53 PM UTC-6, Ramon Mendes wrote: > > I want play 'beeps' connecting a piezo buzzer to my Beaglebone Black. I am > very new to eletronics, so I need some help here, don't know how to operate > these sound devices. > > -Eletrical circuit: as for the circuit, I am referring to this > book/chapter<http://books.google.com.br/books?id=k6FMtlXOQ50C&lpg=PA101&ots=XwRSMXrq8e&dq=beaglebone%20black%20buzzer&hl=pt-BR&pg=PA101#v=onepage&q=beaglebone%20black%20buzzer&f=false>which > shows it very well how I should proceed: using a transistor.. > > -What I don't know is, how do I control the buzzer (say from a C program) > to emit sound? > -I guess I should configure and use PWM feature of the processor, am I > right? > -And how do I pragmatically control PWM output? > -How could I make it play an given sound file, like a .midi file? >
Hi Ramon, The piezo buzzer you are using is a digital device. It is either on or off. When it is on it beeps at a fixed frequency. When it is off it is silent. The circuit you have shown uses a transistor to control current through the buzzer. When the line "from processor" is high, or 3.3 V, the transistor turns on and draws current through the buzzer. The line "from processor" would normally be a GPIO (general purpose input/output) pin rather than a PWM output. You can use one of the Python or Bonescript libraries to turn a GPIO pin on or off to control the buzzer. This simple buzzer will not play a sound file or midi file. For that you would need a PWM output running at a high frequency with its duty cycle adjusted at the sample rate of your audio signal to produce an average analog voltage proportional to the audio signal. This would then need to be low pass filtered to remove the high frequency PWM carrier and amplified to drive a speaker. This will require much more learning, hardware, and software on your part. HTH Dennis Cote -- For more options, visit http://beagleboard.org/discuss --- You received this message because you are subscribed to the Google Groups "BeagleBoard" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
