555 задаёт такт плате

Выход таймера идёт на вход платы: скетч считает импульсы и печатает частоту.

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

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

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

ОткудаКуда
Arduino Uno5V→Таймер 555VCC
Arduino Uno5V→Таймер 555RESET
Таймер 555GND→Arduino UnoGND
Arduino Uno5V→Резистор 11
Резистор 12→Таймер 555DISCH
Таймер 555DISCH→Резистор 21
Резистор 22→Таймер 555THRES
Таймер 555THRES→Таймер 555TRIG
Таймер 555THRES→Конденсатор1
Конденсатор2→Arduino UnoGND
Таймер 555OUT→Arduino UnoD2

Скетч

// Таймер 555 генерирует импульсы сам, а плата их только считает —
// так делают, когда нужен стабильный такт, не зависящий от загруженности
// микроконтроллера.
//
// ВАЖНО: цифровой вход в симуляторе читает то, что подано на него схемой,
// поэтому считаем фронты в цикле, без прерываний.
const int CLK = 2;

int pulses = 0;
bool last = LOW;
unsigned long windowStart = 0;

void setup() {
  pinMode(CLK, INPUT);
  Serial.begin(9600);
  windowStart = millis();
}

void loop() {
  bool now = digitalRead(CLK);
  if (last == LOW && now == HIGH) pulses++;
  last = now;

  if (millis() - windowStart >= 5000) {
    Serial.print("импульсов за 5 с: ");
    Serial.print(pulses);
    Serial.print("  →  ");
    Serial.print(pulses / 5.0);
    Serial.println(" Гц");
    pulses = 0;
    windowStart = millis();
  }
  delay(5);
}

Ещё примеры с деталью «Таймер 555»

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

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

Открыть «555 задаёт такт плате» в симуляторе