As far as I understand it, the current buzzer code simply changes the buzzer pin from low to high and it's up to the buzzer hardware to actually convert this into an audible signal. Wouldn't it also be possible to have the flight controller generate a PWM signal on that pin that could be used to drive a small piezo speaker? It probably requires a dedicated amplifier circuit (a transistor or something like TI's
LM4960 driver chip), but it would have some benefits:
- No magnetic interference
- Much lower power consumption than traditional beepers
- Multiple beep frequencies possible
Thoughts? Considering the relatively low frequency, I think the PWM generation could be done in software without adding too much additional cycles (there actually is a Tone() function in Arduino, but that would probably interfere with our other PWM generating routines)
References:
http://hades.mech.northwestern.edu/inde ... with_a_PIChttp://tronixstuff.wordpress.com/2010/0 ... -thirteen/http://www.picbasic.co.uk/forum/showthread.php?t=3076http://www.electronicspoint.com/driving ... 39264.html