Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Arduino - tutorijali, pitanja, primjeri i projekti
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:

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.
Reply


Messages In This Thread
RE: Arduino - tutorijali, pitanja, primjeri i projekti - by ronovar - 02-22-2022, 01:39 PM

Forum Jump:


Users browsing this thread: 2 Guest(s)