Imam ovaj kineski modul na kojem je buzzer i oznaka je 2305PX i sa stranice: BUZZER dobijam podatke o buzzeru. Na pcb se nalazi BJT i smd otpornik. Kada dodam sa pina 6 Arduino Leonardo 470R otpornik i onda na ulaz tog buzzer modula koristim sljedeci kod:
Dobijam vrlo kratki trrrrr sa buzzera i dalje tisina. Dakle cilj mi je dobiti u 1 sekundi tri iste frekvencije zvuka (a frekvencija treba da bude 2637Hz) i da svaki od ta tri zvuka traju 333ms u 1sec.
Dakle ovako uzorak je 1sekunda:
1st BUZZ 2637Hz
Quiet 333ms
2st BUZZ 2637Hz
Quite 333ms
3st BUZZ 2637Hz
Quite 333ms
i tako u loop, a kasnije na pritisak tipke timera START/STOP samo disable TIMER0 Compare A Interrupt i to bude to.
Citam na netu i nije mi jasno kako se odredjuje frekvencija na buzzeru, jer ja trebam frekvenciju od 2637Hz da generiram na BUZZER (da se dobije visoki zvuk note E7).
Timer0 se pokrece u gornjem primjeru svakih cca 244uS i na izlaz daje kvadratni signal.
Code:
const byte BUZZERpin = 6;
void setup() {
//We don't need anything here
pinMode(6, OUTPUT);
cli();
// initialize TIMER0 for a 244uS interrupt BUZZER
TCCR0A = (1 << WGM01); // turn on CTC mode
TCCR0B = (1 << CS00)|(1 << CS02); // start TIMER0 and set prescaler to 1024
OCR0A = 3812; // set compare match register to desired timer count 244uS
TIMSK0 = (1 << OCIE0A); // enable timer0 output compare match A interrupt
sei();
}
void loop() {
}
volatile byte i = 0;
// timer0 overflow interrupt for BUZZER
ISR(TIMER0_COMPA_vect) {
if (i<14) {
digitalWrite(BUZZERpin, !digitalRead(BUZZERpin));
i++;
} else {
digitalWrite(BUZZERpin, HIGH); // turn BUZZER OFF
}
}
Dobijam vrlo kratki trrrrr sa buzzera i dalje tisina. Dakle cilj mi je dobiti u 1 sekundi tri iste frekvencije zvuka (a frekvencija treba da bude 2637Hz) i da svaki od ta tri zvuka traju 333ms u 1sec.
Dakle ovako uzorak je 1sekunda:
1st BUZZ 2637Hz
Quiet 333ms
2st BUZZ 2637Hz
Quite 333ms
3st BUZZ 2637Hz
Quite 333ms
i tako u loop, a kasnije na pritisak tipke timera START/STOP samo disable TIMER0 Compare A Interrupt i to bude to.
Citam na netu i nije mi jasno kako se odredjuje frekvencija na buzzeru, jer ja trebam frekvenciju od 2637Hz da generiram na BUZZER (da se dobije visoki zvuk note E7).
Timer0 se pokrece u gornjem primjeru svakih cca 244uS i na izlaz daje kvadratni signal.