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: 27 Guest(s)