Светофор на трёх светодиодах

Состояния светофора живут в массиве: добавить фазу — дописать строку.

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

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

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

ОткудаКуда
Arduino UnoD7→Резистор 11
Резистор 12→Светодиод 1A
Светодиод 1C→Arduino UnoGND
Arduino UnoD8→Резистор 21
Резистор 22→Светодиод 2A
Светодиод 2C→Arduino UnoGND
Arduino UnoD9→Резистор 31
Резистор 32→Светодиод 3A
Светодиод 3C→Arduino UnoGND

Скетч

// Светофор: красный D7, жёлтый D8, зелёный D9.
// Каждая фаза — строка таблицы: какие светодиоды горят и сколько это длится.
const int PINS[3] = { 7, 8, 9 };

// красный, жёлтый, зелёный, длительность (мс)
const int PHASES[4][4] = {
  { 1, 0, 0, 3000 },
  { 1, 1, 0, 700 },
  { 0, 0, 1, 3000 },
  { 0, 1, 0, 700 },
};

void setup() {
  for (int i = 0; i < 3; i++) pinMode(PINS[i], OUTPUT);
  Serial.begin(9600);
}

void loop() {
  for (int p = 0; p < 4; p++) {
    for (int i = 0; i < 3; i++) digitalWrite(PINS[i], PHASES[p][i] ? HIGH : LOW);
    Serial.print("Фаза ");
    Serial.println(p);
    delay(PHASES[p][3]);
  }
}

Коротко о детали: Светодиод

Светодиод пропускает ток только в одну сторону и светится тем ярче, чем больше ток. Последовательно с ним обязателен резистор — обычно 220–330 Ом при питании 5 В. При токе больше 60 мА светодиод перегорает, в симуляторе тоже.

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

Ещё примеры с деталью «Светодиод»

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

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

Открыть «Светофор на трёх светодиодах» в симуляторе