Метроном с настройкой темпа

Потенциометр задаёт темп в ударах в минуту, щелчки идут по millis().

Продвинутый уровень Arduino Uno C++
Схема подключения: Метроном с настройкой темпа
Схема в симуляторе. Нажмите «Открыть в симуляторе», чтобы запустить её и поменять.

Что понадобится

Как подключить

ОткудаКуда
Arduino UnoD8→Зуммер1
Зуммер2→Arduino UnoGND
Arduino Uno5V→ПотенциометрVCC
Arduino UnoGND→ПотенциометрGND
Arduino UnoA0→ПотенциометрSIG

Скетч

// Метроном: ручка на A0 задаёт темп 40…208 ударов в минуту.
// Щёлкаем по millis(), поэтому темп меняется прямо на ходу.
const int BUZZER = 8;

unsigned long lastBeat = 0;
int beat = 0;

void setup() {
  pinMode(BUZZER, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  int bpm = map(analogRead(A0), 0, 1023, 40, 208);
  unsigned long period = 60000UL / bpm;

  if (millis() - lastBeat >= period) {
    lastBeat = millis();
    beat = (beat + 1) % 4;
    tone(BUZZER, beat == 0 ? 1200 : 800, 40);   // первая доля выше
    Serial.print(bpm);
    Serial.print(" уд/мин, доля ");
    Serial.println(beat + 1);
  }
}

Коротко о детали: Зуммер

Пьезоизлучатель звучит на той частоте, которую задаёт tone(). Громкость у него не регулируется — только частота и длительность. Звук в симуляторе выводится через звуковую подсистему браузера.

Распиновка и все примеры →

Ещё примеры с деталью «Зуммер»

Попробуйте сами

Симулятор работает прямо в браузере: схему можно менять, код — править, а результат видно сразу. Бесплатно, без установки и регистрации.

Открыть «Метроном с настройкой темпа» в симуляторе