11-01-2026, 15:32
Mam już programu co działa, ale buzer jest na max chodź głośno nie gra)
Chciałem sterować buzerem, Arduino.
1.pomysl tranzystor i potencjometr.
( Nie za bardzo się znam)Ale sam potencjometr jako dzielnik działa.
Buzer jest 3-24v czy jak podam 9v czy będzie głośniejszy, bo na razie używam pinu Arduino z funkcją tone();.
2.pomysl programowo
Na elektrodzie ktoś pisał że można tak
// ===== BUZER PASYWNY NA D10 (OC1B, TIMER1) =====
#define buzerPin 10 // D10 = OC1B (Timer1)
// przykładowe wartości
int tone_buz = 4000; // częstotliwość w Hz (barwa)
int vol_buz = 2000; // wypełnienie/głośność (0–ICR1/2)
void setup() {
pinMode(buzerPin, OUTPUT);
// Timer1 Fast PWM, TOP = ICR1
TCCR1A = (1 << COM1B1) | (1 << WGM11); // OC1B = PWM
TCCR1B = (1 << WGM13) | (1 << WGM12) | (1 << CS10); // preskaler = 1
ICR1 = tone_buz; // ustaw TOP = częstotliwość
OCR1B = vol_buz; // ustaw wypełnienie (głośność)
}
void loop() {
// przykładowa zmiana tonu i głośności w czasie
// 1) zmiana barwy
ICR1 = 4000; // 4 kHz
OCR1B = 2000; // głośność 50%
delay(500);
ICR1 = 6000; // 6 kHz
OCR1B = 3000; // głośność 50%
delay(500);
ICR1 = 3000; // 3 kHz
OCR1B = 1500; // głośność 50%
delay(500);
}
Ale to też sobie z głośnością słabo radzi...
Chciałem sterować buzerem, Arduino.
1.pomysl tranzystor i potencjometr.
( Nie za bardzo się znam)Ale sam potencjometr jako dzielnik działa.
Buzer jest 3-24v czy jak podam 9v czy będzie głośniejszy, bo na razie używam pinu Arduino z funkcją tone();.
2.pomysl programowo
Na elektrodzie ktoś pisał że można tak
// ===== BUZER PASYWNY NA D10 (OC1B, TIMER1) =====
#define buzerPin 10 // D10 = OC1B (Timer1)
// przykładowe wartości
int tone_buz = 4000; // częstotliwość w Hz (barwa)
int vol_buz = 2000; // wypełnienie/głośność (0–ICR1/2)
void setup() {
pinMode(buzerPin, OUTPUT);
// Timer1 Fast PWM, TOP = ICR1
TCCR1A = (1 << COM1B1) | (1 << WGM11); // OC1B = PWM
TCCR1B = (1 << WGM13) | (1 << WGM12) | (1 << CS10); // preskaler = 1
ICR1 = tone_buz; // ustaw TOP = częstotliwość
OCR1B = vol_buz; // ustaw wypełnienie (głośność)
}
void loop() {
// przykładowa zmiana tonu i głośności w czasie
// 1) zmiana barwy
ICR1 = 4000; // 4 kHz
OCR1B = 2000; // głośność 50%
delay(500);
ICR1 = 6000; // 6 kHz
OCR1B = 3000; // głośność 50%
delay(500);
ICR1 = 3000; // 3 kHz
OCR1B = 1500; // głośność 50%
delay(500);
}
Ale to też sobie z głośnością słabo radzi...

