2 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Светофор на Ардуино

Светофор на Ардуино

В этой статье мы рассмотрим проект светофора с мигающими светодиодами на базе Arduino Uno и Nano. Светофор со светодиодами тремя цветов можно назвать проектом начального уровня. Но на его основе можно сделать интересные и полезные устройства, например, тренажеры для обучения детей правилам дорожного движения. Этот проект также позволит начинающим еще больше узнать о программировании в среде Ардуино, потренироваться в сборке схем и порадоваться новым интересным инженерным игрушкам.

Цель урока: Светофор на Arduino UNO.

Познакомиться подробнее с алгоритмом работы устройства, которое мы видим практически ежедневно. А также разобрать несколько вариантов написания программы реализации светофора на Arduino.

Что такое светофор?

Светофор — оптическое устройство, подающее световые сигналы, регулирующие движение автомобильного, железнодорожного, водного и другого транспорта, а также пешеходов на пешеходных переходах.

Наиболее распространены светофоры с сигналами (обычно круглыми) трёх цветов: красного, жёлтого и зелёного. В некоторых странах, в том числе и в России, вместо жёлтого используется оранжевый цвет. Сигналы могут быть расположены как вертикально (при этом красный сигнал всегда располагается сверху, а зелёный — снизу), так и горизонтально (при этом красный сигнал всегда располагается слева, а зелёный — справа). При отсутствии других, специальных светофоров, они регулируют движение всех видов транспортных средств и пешеходов.

Читать еще:  Машинка на дистанционном управлении своими руками

В некоторых городах России, Украины и других стран устанавливаются светофоры с увеличенным красным сигналом (300/200/200 mm). Такие светофоры распространены в Санкт-Петербурге, Киеве, Риме и других городах.

Повсеместно распространены основные сигналы светофоров:

  • красный сигнал светофора запрещает проезд за стоп-линию (при её отсутствии за светофор),
  • жёлтый обязывает сбросить скорость и быть готовым к тому, что светофор через 0,5 — 1 сек переключится на красный,
  • зелёный — разрешает движение со скоростью, не превышающей максимальный уровень для данной автотрассы.

Алгоритм смены сигналов светофора на Arduino.

На просторах интернета нашел иллюстрацию отображающую алгоритм работы светофора.

Как видим, светофор должен работать вот по такому алгоритму:

  1. Светит только красный цвет светофора.
  2. Не выключая красный сигнал светофора, включаем желтый.
  3. Выключаем красный и желтый, включаем зеленый.
  4. Выключаем зеленый сигнал светофора, включаем желтый.

После чего цикл повторяем с красного сигнала светофора на Arduino.

На сайте Портал ПК делал данный урок года 2 назад. После чего мне написали достаточно много комментариев по поводу того, что нужно добавить мигание зеленым сигналом светофора. В данном уроке исправим недоработку и сделаем мигание зеленым сигналом светофора.

Как подключить светодиоды к Arduino UNO?

Схема подключения не очень сложная и для подключения нам понадобится макетная плата, 3 светодиода и 3 резистора наминало 220 Ом. А также Arduino UNO и соединительные провода.

Все соединяем по схеме.

Как собрать схему в Tinkercad смотрите в видео, которое располагается вверху статьи.

Умный светофор

В этом посте вы узнаете, как создать контроллер светофора, работающий на основе плотности потока автомобилей с использованием Arduino. Основная идея этого проекта заключается в том, что, если датчик не видит движения с какой-либо стороны, то и разрешающего сигнала с этой стороны не будет. Система пропустит этот сигнал и перейдет к следующему.

Читать еще:  Теплица из оконных рам своими руками

Arduino является основной частью этого проекта, и он будет использоваться для считывания сигнала с ультразвукового датчика HC-SR04 и расчета расстояния. Это расстояние скажет нам, находится ли какое-либо транспортное средство рядом с датчиком или нет, и в соответствии с этими данными будет регулироваться поток автомобилей.

Основная задача состояла в том, чтобы избежать использования задержки, потому что мы должны постоянно считывать данные с ультразвуковых датчиков, а также одновременно мы должны контролировать сигналы, которые требуют использования функции задержки.

Таким образом, мы использовали библиотеку timerone, которая используется для периодического измерения периода времени в микросекундах, и в конце каждого периода будет вызываться функция прерывания. В этой функции мы будем читать данные с датчиков, а в функции цикла мы будем контролировать сигналы трафика.

Работа контроллера светофора на основе плотности потока автомобилей с использованием Arduino

Работа контроллера делится на три этапа

  • Если на всех направлениях присутствует трафик, то система будет работать нормально, переключая сигналы один за другим.
  • Если с какой-то стороны нет трафика, система пропустит этот сигнал и перейдет к следующему. Например, если датчик 2, 3 не регистрирует наличие авто, система пропускает транспортные средства по сигналу 1. Затем после сигнала 1 система перейдет к сигналу 4, пропуская сигналы 2 и 3.
  • Если на всех 4 сигналах отсутствует трафик, система остановится на текущем сигнале и перейдет к следующему сигналу, только если на любом другом сигнале будет трафик.

Необходимые детали для умного светофора

Для данного проекта необходимы следующие компоненты:

  • Arduino Mega 2560
  • 4 х HC-SR04 — ультразвуковые датчики
  • 4 красных светодиода
  • 4 зеленых светодиода
  • 4 желтых светодиода
  • Резисторы 12 х 220 Ом
  • Соединительные кабели
  • макетная плата

Схема управления светофором

Четыре ультразвуковых датчика соединены с Arduino. Arduino считывает данные с этих датчиков и рассчитает расстояние. Этот датчик может измерять расстояние от 2 до 400 см.

Читать еще:  Как сделать очень крутую настольную игру «морской бой» из картона своими руками!

Ультразвуковой датчик излучает ультразвуковую волну и отраженное от объекта эхо принимается датчиком. Чтобы генерировать волну, нам нужно будет установить триггер на 10 мкс, который отправит звуковой импульс с 8 циклами на частоте 40 кГц, который посылается в сторону объекта, и после отражения сигнала возникает эхо. Затем эхо скажет нам время, когда волна пришла обратно к датчику (микросекунды). Затем мы преобразуем это время в пройденное расстояние, используя формулу S = V * T.

Светодиоды подключены к Arduino через резисторы 220 Ом. Необходимо использовать резистор со светодиодом. Резистор ограничивает ток, протекающий через светодиод. Если вы не будете использовать его, светодиод сгорит. Вы можете использовать резистор от 100 Ом до 10 кОм со светодиодом. Чем больше значение сопротивления, тем меньше будет проходить ток.

Описание кода

Прежде всего, мы включили библиотеку timerone. Эта библиотека используется для повторного измерения периода времени в микросекундах, и в конце каждого периода будет вызываться функция прерывания.
Мы использовали эту библиотеку, потому что мы хотим считывать сигналы с датчиков и управлять светодиодами одновременно. Библиотека позволит нам вызывать функцию, в которой мы будем непрерывно считывать данные с датчиков, а в функции цикла мы будем управлять сигналами светофора.

Ссылка на основную публикацию
Статьи c упоминанием слов:
Adblock
detector