Difference between revisions of "Buzzer"

From ElectroDragon
Jump to navigation Jump to search
(Redirected page to Category:Buzzer)
(Tag: New redirect)
 
Line 1: Line 1:
== Specification ==
+
#redirect [[category: Buzzer]]
<gallery>
 
File:Mini_Buzzer_9042_02.jpg | 9042 specification
 
File:Mini_Buzzer_9042_04.jpg | 9042 pins
 
</gallery>
 
== Passive buzzer ==
 
 
 
Passive buzzers don’t do anything themselves – the software needs to generate a waveform for any sound it wants to make. This example code uses PWM timings to play different notes – your buzzer should be connected to pin 9. Alternatively, take a look at the tone() function.
 
 
 
<syntaxhighlight lang="arduino">
 
 
 
/* Play Melody
 
* -----------
 
*
 
* Program to play melodies stored in an array, it requires to know
 
* about timing issues and about how to play tones.
 
*
 
* The calculation of the tones is made following the mathematical
 
* operation:
 
*
 
*      timeHigh = 1/(2 * toneFrequency) = period / 2
 
*
 
* where the different tones are described as in the table:
 
*
 
* note        frequency      period  PW (timeHigh) 
 
* c            261 Hz          3830    1915   
 
* d            294 Hz          3400    1700   
 
* e            329 Hz          3038    1519   
 
* f            349 Hz          2864    1432   
 
* g            392 Hz          2550    1275   
 
* a            440 Hz          2272    1136   
 
* b            493 Hz          2028    1014   
 
* C            523 Hz          1912    956
 
*
 
* (cleft) 2005 D. Cuartielles for K3
 
*/
 
 
 
int ledPin = 13;
 
int speakerOut = 9;             
 
byte names[] = {'c', 'd', 'e', 'f', 'g', 'a', 'b', 'C'}; 
 
int tones[] = {1915, 1700, 1519, 1432, 1275, 1136, 1014, 956};
 
byte melody[] = "2d2a1f2c2d2a2d2c2f2d2a2c2d2a1f2c2d2a2a2g2p8p8p8p";
 
// count length: 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
 
//                                10                  20                  30
 
int count = 0;
 
int count2 = 0;
 
int count3 = 0;
 
int MAX_COUNT = 24;
 
int statePin = LOW;
 
 
 
void setup() {
 
pinMode(ledPin, OUTPUT);
 
}
 
 
 
void loop() {
 
analogWrite(speakerOut, 0);   
 
for (count = 0; count < MAX_COUNT; count++) {
 
statePin = !statePin;
 
digitalWrite(ledPin, statePin);
 
for (count3 = 0; count3 <= (melody[count*2] - 48) * 30; count3++) {
 
for (count2=0;count2<8;count2++) {
 
if (names[count2] == melody[count*2 + 1]) {     
 
analogWrite(speakerOut,500);
 
delayMicroseconds(tones[count2]);
 
analogWrite(speakerOut, 0);
 
delayMicroseconds(tones[count2]);
 
}
 
if (melody[count*2 + 1] == 'p') {
 
// make a pause of a certain size
 
analogWrite(speakerOut, 0);
 
delayMicroseconds(500);
 
}
 
}
 
}
 
}
 
}
 
</syntaxhighlight>
 
[[category:Sound, light, etc]]
 

Latest revision as of 01:10, 2 April 2020

Redirect to: