#define NOTE_C4 262
#define NOTE_E4 330
#define NOTE_G4 392
#define NOTE_D5 622
const int speakerPin = 8; // Пин для подключения пьезодинамика
const int potPin = A0; // Пин для подключения потенциометра
int potValue = 0; // Переменная для хранения значения с потенциометра
int melody[] = {NOTE_C4, NOTE_E4, NOTE_G4}; // Мелодия (до, ми, соль)
void setup() {
pinMode(speakerPin, OUTPUT);
}
void loop() {
// Считываем значение с потенциометра (0-1023)
potValue = analogRead(potPin);
// Преобразуем значение потенциометра в диапазон громкости (0-255)
int volume = map(potValue, 0, 1023, 0, 255);
// Устанавливаем громкость пьезодинамика
analogWrite(speakerPin, volume);
// Воспроизводим мелодию
playMelody();
}
void playMelody() {
for (int i = 0; i < sizeof(melody) / sizeof(melody[0]); i++) {
// Если нота не равна 0 (пауза)
if (melody[i] != 0) {
tone(speakerPin, melody[i]); // Воспроизводим ноту
delay(500); // Пауза между нотами (в данном случае, полсекунды)
noTone(speakerPin); // Останавливаем воспроизведение ноты
} else {
delay(500); // Пауза для паузы (в данном случае, полсекунды)
}
}
}