Как сделать светофор на ардуино
Эксперимент № 4. Светофор на Ардуино
Вступление
Становится уже интереснее. Давайте соберем модель светофора!
В этом эксперименте не будет новых знаний по Ардуино, зато мы изучим пару новых фишек программирования.
Давайте решим как должен работать наш светофор:
Необходимые компоненты
Схема
Соберем вот эту схему:
Схема сборки светофора на ардуино
Сборка аналогична опыту 2, но тут у нас уже 3 светодиода, и мы задействуем 3 цифровых порта. Каждый светодиод должен быть защищен своим резистором 220 Ом.
Обратите внимание на полярность светодиода: длинная ножка – это плюс, который подключается к цифрому порту, а короткая ножка соединяется с массой (GND).
Сопротивление ставится в разрыв цепи, все равно с какой стороны светодиода – плюса или земли. На схеме сопротивление поставлено со стороны земли (GND).
Вы можете использовать любые цифровые пины ардуино от 2 до 12. Сделайте это как вам удобней, но не забудьте скорректировать номера пинов в скетче.
Скетч
Наш первый скетч выглядит вот так:
Результат
Светофор горит как задумано:
Модель светофора на ардуино.
Объяснение
В скетче даны подробные комментария.
Обратите внимание, что, согласно лучших практик, все параметры приложения, сразу вынесены в глобальные константы в начале скетча. Всегда старайтесь выносить все параметры в глобальные константы в начале скетча. Это облегчит модернизацию и настройку и в дальнейшем.
Для простоты настройки и тестирования светофора, введен мультипликатор, коэффициент, с помощью которого можно изменять скорость работы светофора:
Цикл for
В скетче мы встретили новое ключевое слово языка C/С++ – for, с помощью которого нужная подпрограмма выполняется циклически заданное число раз. Рассмотрим ее пример:
i – это переменная, которая хранит номер текущего цикла. Назовем ее счетчиком. Счетчик может начинаться с любого числа. В данном случае он равен 0.
Добавить комментарий Отменить ответ
Для отправки комментария вам необходимо авторизоваться.
Ардуино светофор на digispark и ws2812b
Сегодня речи пойдет про светофор на на DigiSpark и адресных светодиодах WS2812 . Это вторая версия светофора. Про первую я рассказывал вот тут Светофорна Digispark и адресных светодиодах WS2812 —Ардуино светофор. Первая версия получилась достаточно удобная и состояла из меньшего количество деталей. Почему я решил сделать вторую версию? Дело в том, что бокс под батарейки которые, я использовал в первой версии светофора на Arduino, очень подорожал. Некоторые продавцы продают его за 5 долларов на Алиэкспресс. Дороже всей остальной электроники. Поэтому я решил поменять бокс на более дешевый. А раз пришлось переделывать корпус. Принял решение изменить и размер самого светофора и сделать его больше первой версии. Также в ножку светофора добавил металлический стержень для увеличения жесткости. Потому что с первой версией были инциденты. Дети падали на него и отламывали ножку. Поэтому решил усилить.
Если вы любите писать статьи, комментировать посты, ставить лайки и прочее, вам подойдет работа в интернете.
Вырезал заготовки для светофора на адресных светодиодах из МДФ.
В итоге получился вот такой светофор.
Теперь его нужно покрасить и подготовить для установки остальной электроники и бокса под батарейки.
Теперь можно устанавливать электронику:
Рассказывать для чего все строки кода не буду. Просто выложу рабочую программу светофора. Эффекты режимов выкладывать не буду. Добавляйте на свое усмотрение. Тем более они есть в пример с библиотекой NeoPixel.
Устанавливаем батарейки и включаем. Вот такой светофор получается.
У меня ребенок использует его как ночник. 4 батареек купленных в фикс прайс за 55 руб. за 4 шт., хватает на 7 ночей. Достаточно неплохо. Можно купить и аккумуляторные батарейки, возможно будет более экономичнее. Но я пока не проверял.
Светофор я собрал месяца 3 назад. До сих пор он работает исправно и радует ребенка.
Не забывайте подписываться на канал Youtube и вступайте в группы в Вконтакте и Facebook.
Всем Пока-Пока. И до встречи в следующем проекте.
Понравилась статья? Поделитесь ею с друзьями:
Светофор на Ардуино
В этой статье мы рассмотрим проект светофора с мигающими светодиодами на базе Arduino Uno и Nano. Светофор со светодиодами тремя цветов можно назвать проектом начального уровня. Но на его основе можно сделать интересные и полезные устройства, например, тренажеры для обучения детей правилам дорожного движения. Этот проект также позволит начинающим еще больше узнать о программировании в среде Ардуино, потренироваться в сборке схем и порадоваться новым интересным инженерным игрушкам.
Немного о светофорах
Светофор – лучший друга пешеходов и водителей, позволяющий организовать безопасное движение на дорогах. Первое такое устройство для городских дорог было установлено в 1868 году возле здания Британского парламента в Лондоне. Его внешний вид, конечно, сильно отличался от привычного нам сейчас устройств. Первый светофор представлял собой набор семафорных стрелок с подсветкой из газовых фонарей. Его создатель, инженер Джон Пик Найт, проектировал семафоры для железных дорог и первый додумался использовать идею для дорог, по которым в то время перемещались на лошадях.
Первые светофоры
Первый электрический светофор появился в 1912 году в США. Инженер Лестер Вайр придумал устройство с двумя цветами – красным и зеленым. В 1914 году на перекрестке в Кливленде впервые были установлены сразу четыре светофора. Управлялись устройства вручную – полицейские переключали лампочки.
Создатель первого светофора William L Potts
В 1920 году появились трехцветные светофоры – их поставили на улицах Нью-Йорка и Детройта. Первой же европейской страной с электрическими светофорами стала Франция. В Советском Союзе светофор появился в январе 1930 года в Ленинграде. Годом позже первые устройства поставили и в Москве.
Памятник светофору
Сама идея установить четкую последовательность цветов связана с желанием помочь людям, не отличающим оттенки цветов. Они могут ориентироваться не на цвет, а на местоположение светящегося объекта. Именно поэтому у большинства светофоров в мире цвета выглядят именно так – красный, желтый и зеленый. Но есть и исключения – например, в Ирландии в свое время были вынуждены поменять местами красный и зеленый. Все дело в том, что местные жители не хотели видеть национальный цвет Ирландии (зеленый) в самом низу.
В некоторых странах вместо зеленого используют синий сигнал светофора. Также сегодня часто можно встретить многосекционные светофоры со стрелками. В Берлине, например, есть светофор с 13 сигналами!
Если говорить об устройстве светофора, то за всю историю его существования менялись и сами источники света, и управляющие устройства. Сегодня светофоры используют светодиодные модули, которые гораздо экономичнее и надежнее используемых ранее ламповых. При выходе из строя одного светодиода конструкция в целом продолжает работать. Также на улицах сегодня легко встретить и целые светофорные комплексы, где на экранах отображается дополнительная информация: время до переключения, графические подсказки и другое.
Проект “Светофор на Ардуино”
Давайте и мы создадим свой почти настоящий светофор. В рамках этого проекта мы соберем схему и создадим скетч, с помощью которого светодиоды будут гореть и переключаться по правилам дорожного движения.
Если вы совсем новичок в Ардуино, крайне рекомендуем прочитать наши статьи для начинающих:
Сложность урока: для начинающих
Схема подключения
Давайте начнем проект со сборки электрической цепи. Схема достаточно проста – соединяем три светодиода. Плюс к цифровому пину, минус – к земле. Обратите внимание, что мы объединили три контакта в один с помощью общей шины макетной платы. Красный свет светофора мы соединим с пином 11, желтый – с 10, зеленый – с 9.
Схема светофора со светодиодами на Ардуино
На этом вопрос со схемой можно считать решенным. Не забывайте про полярность, проверяйте правильность монтажа.
Модуль светофора
Есть еще один способ собрать проект – использовать уже готовые устройства в виде светофора со светодиодами. Один из примеров – плата для Ардуино, продающаяся на Алиэкспрессе. На ней уже закреплены все резисторы, не нужно придумывать конструкцию – просто закрепляем похожий на светофор модуль на подставке и соединяем контакты с Ардуино.
Модуль светофора для Ардуино
Купить готовый модуль можно, например, по этим ссылкам:
А вот ссылка на еще один интересный и совсем недорогой модуль. Он не предназначен для Ардуино, но имеет готовые к использованию корпус и провода, которые можно подключить по приведенной схеме.
Программирование светофора
Прежде чем писать программу, нужно составить общий алгоритм действий, описать задачу на привычном языке. Попробуйте это сделать самостоятельно, заодно и проверьте, так ли уж точно вы знаете алгоритм работы светофора?
Алгоритм работы
Вот этот алгоритм трехсекционного светофора для водителей, принятый за стандарт в России:
Если вы разобрались с алгоритмом, то написать скетч для Ардуино будет совсем не сложно. Надо лишь заменить каждое слово “включить” на digitalWrite с атрибутом HIGH, “выключить” на digitalWrite с атрибутом LOW, а задержку сформировать с помощью delay. Вот, например, фрагмент программы, определяющий переход с красного на зеленый цвет.
Пример скетча
Для того, чтобы не привязываться в программе к конкретным номерам пинов можно и нужно создать константы, содержащие нужный номер пина. В коде мы будем использовать эти константы, а не номера. И если нам нужно будет поменять схему подключения, то менять номера в скетче нам придется только в одном месте. Не нужно будет делать глобальную замену по документу.
Вот так бы выглядел приведенный выше пример с использованием констант:
Вот так можно заставить мигать зеленый свет. Точь в точь как обычная мигалка:
Второй и более правильный вариант мигания – использовать цикл FOR. Более подробно о нем написано в нашей отдельной статье про циклы.
Вот, в принципе,и все особенности. Давайте теперь соберем код вместе и напишем итоговую программу:
Загрузите скетч в контроллер и убедитесь, что все работает правильно. Если что-то пойдет не так, обратитесь к статье, посвященной подключению светодиода к Ардуино – там описаны все типичные случаи неисправностей.
Улучшение проекта
После того, как вы написали скетч и помигали светодиодами на макетной плате можно подумать и о том, как сделать из проекта светофор нечто большее. Какие еще улучшения возможны:
Заключение
В этой статье мы узнали, как собрать вместе на одной макетной плате три светодиода и подключить их к ардуино уно или нано. Разобрались с алгоритмом работы настоящего светофора и смогли написать свой скетч на языке C++. Мы еще раз убедились, что писать программы со светодиодами – это просто, нужно понять лишь несколько базовых принципов. Будем надеяться, что статья оказалась вам полезной и вы продолжите знакомство с платформой Ардуино с одним из следующих наших проектов.
Уроки Ардуино: Два светофора для перекрестка дороги на базе Arduino. Часть 1.
Уроки Ардуино: Два светофора для перекрестка дороги на базе Arduino. Часть 1.
Итак, Вы являетесь счастливым обладателем одного из конструкторов Arduino серии «Дерзай» («Базовый», «Изучаем Arduino» и «Умный дом»), Вы уже подключали плату и запускали в Arduino IDE первый пример — «Hello, World» для Arduino (мигание встроенным светодиодом). Это хорошо, Вы сделали первый шаг разработчика-художника проектов на основе Arduino. Сейчас мы вместе рассмотрим более сложный и более полезный проект – создание на базе Arduino двух светофоров для перекрестка дороги, по которой смогут передвигаться созданные Вами роботы.
Для сборки светофора Ардуино Вам понадобятся следующие детали, которые имеются в каждом из наборов Arduino :
Светодиод — это полупроводниковый прибор, преобразующий электрический ток непосредственно в световое излучение. Цветовые характеристики светодиодов зависят от химического состава использованного в нем полупроводника. Светодиод излучает в узкой части спектра. В нашем проекте создания светофора Arduino мы будем использовать светодиоды трех цветов (зеленый, желтый, красный), соответствующие трем цветам светофора.
Светодиоды поляризованы, имеет значение в каком направлении подключать их. Положительный вывод светодиода (более длинный) называется анодом, отрицательный называется катодом. Как и все диоды, светодиоды позволяют току течь только в одном направлении – от анода к катоду. Поскольку ток протекает от положительного к отрицательному, анод светодиода должен быть подключен к цифровому сигналу 5В, а катод должен быть подключен к земле.
Мы будем подключать светодиоды первого светофора к цифровым выводам D7, D8, D9, а светодиоды второго светофора к цифровым выводам D10, D11, D12 платы Arduino. Светодиоды должны быть всегда соединены последовательно с резистором, который выступает в качестве ограничителя тока. Чем больше значение резистора, тем больше он ограничивает ток. В этом эксперименте мы используем резистор номиналом 220 Ом.
Собираем схему, представленную на рисунке 1.
Рисунок 1. Схема соединений светодиодов
Занесем в константы и выводы подключения светофора (в этом примере мы рассматриваем один светофор)
Создадим и переменную blinkyellow (типа boolean), которую будем использовать для организации мигания желтого светодиода (blinkyellow=true – светодиод «горит», blinkyellow=false – светодиод «погашен»). Как Вы уже знаете, цифровые выводы Arduino могут работать как входы и как выходы. Режим работы цифрового вывода устанавливается командой pinMode(). В процедуре setup() настроим все выводы Arduino, к которым подключены светодиоды, как выводы, и подадим на них значение LOW (т.е. светодиоды выключим).
Создадим в Arduino IDE новый скетч, занесем в него код из листинга 1 и загрузим скетч на на плату Arduino. Напоминаем, что в настройках Arduino IDE необходимо выбрать тип платы (Arduino UNO) и порт подключения платы.
Листинг 1
Рисунок 2,3. Работа двух светофора на макетной плате
Во второй части урока мы подключим второй светофор и оптимизируем программу, используя списки для хранения выводов светофора и их состояний, а также для компактности кода будем использовать подпрограммы.
Создаем систему светофоров на основе Arduino Uno
В этом уроке мы создадим своими руками систему светофоров, которая будет управляться микроконтроллером Arduino Uno.
Данный проект был создан пользователем JosiahP4 и назывался «Green Lights» для обучения студентов физическим вычислениям, что включало в себя настройку входов и выходов, изучение электричества, программирование с Arduino и немного знаний о системах управления движением. Перекресток изначально планировалось установить в классе, а студентов разделить на команды. Команды получат карточки для заметок с командами (например, lightOn(‘n’, «green») или sleep(2); ), которые будут объяснены в рамках урока. В целом, этот проект дает студентам возможность окунуться в мир электроники.
Шаг 1. Комплектующие
Детали:
Инструменты:
Шаг 2. Собираем проект
Пожалуйста, используйте вступительные фотографии в качестве руководства:
Соединения делаем таким образом:
eastLightG 2;
eastLightY 3;
eastLightR 4;
northLightG 5;
northLightY 6;
northLightR 7;
southLightG 8;
southLightY 9;
southLightR 10;
westLightG 11;
westLightY 12;
westLightR 13;
GND GND (для всех).