Всем доброго времени суток.Решил сделать светофор в детский сад сына, который работал бы в автоматическом режиме.
Погуглив всемирную паутину нашёл схему подключения и скетч работающий так: подаём питание — моргает жёлтый, нажимаем кнопку — автоматическая работа светофора, снова кнопка — моргает жёлтый.
Я же хотел сделать так, чтобы кнопок было 4: 1 — переключение режимов; 2,3,4 — красный, жёлтый, зелёный. Загвоздка в том, что я не умею писать код, да и вообще по ардуино знаний практически нет.На данный момент имею следующее:
Питать и Arduino и светодиоды планирую с драйвера для светодиодных лент на 18Вт. На каждый цвет у меня по 36 5мм светодиодов.

Полный размер
Драйвер для светодиодных лент
Перед Arduino поставлю понижающий преобразователь на основе LM2596s настроенный на 9В. Переключать режимы хочу радио пультом на 315 МГц, плату приёмника хотелось бы разместить прям на Arduino для уменьшения количества проводов. Светодиоды будут питаться через реле.

Полный размер
Передняя часть

Полный размер
Паяльник держать в руках только учусь, сильно не пинайте. Подключал драйвер, вроде всё светится. Саморезы напильником уберу чуть позже.

Полный размер
Реле. Подключено правильно? На VCC подавать что то нужно? Джампик убирать или оставить?

Полный размер
Подключил реле так. Правильно?

Полный размер
Приёмник. Разъёмы. Так можно подключать? Задействованы разъёмы А2, А3, А4, А5.

Полный размер
Питание к приёмнику.
Подскажите, пожалуйста, есть ли какие-то ошибки в подключении компонентов и как их исправить. Ну и самое главное: помогите переделать код так, чтобы работало с 4мя кнопками.
Не знаю можно ли выкладывать сюда код поэтому дам ссылку на файл который нашёл в интернете на гуглодиске — ССЫЛКА.Заранее спасибо тем кто откликнется. Уверен мир не без добрых людей.P.s.
Плиз не ругайте сильно, реально ардуину в первый раз в руки взял.
P.p.s. Если кто переделает скетч просьба скинуть на почту [email protected]
Источник: https://www.drive2.ru/c/465599744727581258/
Светофор на Ардуино
В этой статье мы рассмотрим проект светофора с мигающими светодиодами на базе Arduino Uno и Nano. Светофор со светодиодами тремя цветов можно назвать проектом начального уровня.
Но на его основе можно сделать интересные и полезные устройства, например, тренажеры для обучения детей правилам дорожного движения.
Этот проект также позволит начинающим еще больше узнать о программировании в среде Ардуино, потренироваться в сборке схем и порадоваться новым интересным инженерным игрушкам.
Немного о светофорах
Светофор – лучший друга пешеходов и водителей, позволяющий организовать безопасное движение на дорогах. Первое такое устройство для городских дорог было установлено в 1868 году возле здания Британского парламента в Лондоне.
Его внешний вид, конечно, сильно отличался от привычного нам сейчас устройств. Первый светофор представлял собой набор семафорных стрелок с подсветкой из газовых фонарей.
Его создатель, инженер Джон Пик Найт, проектировал семафоры для железных дорог и первый додумался использовать идею для дорог, по которым в то время перемещались на лошадях.
Первые светофоры
Первый электрический светофор появился в 1912 году в США. Инженер Лестер Вайр придумал устройство с двумя цветами – красным и зеленым. В 1914 году на перекрестке в Кливленде впервые были установлены сразу четыре светофора. Управлялись устройства вручную – полицейские переключали лампочки.
Создатель первого светофора William L Potts
В 1920 году появились трехцветные светофоры – их поставили на улицах Нью-Йорка и Детройта. Первой же европейской страной с электрическими светофорами стала Франция. В Советском Союзе светофор появился в январе 1930 года в Ленинграде. Годом позже первые устройства поставили и в Москве.
Памятник светофору
Сама идея установить четкую последовательность цветов связана с желанием помочь людям, не отличающим оттенки цветов. Они могут ориентироваться не на цвет, а на местоположение светящегося объекта.
Именно поэтому у большинства светофоров в мире цвета выглядят именно так – красный, желтый и зеленый. Но есть и исключения – например, в Ирландии в свое время были вынуждены поменять местами красный и зеленый.
Все дело в том, что местные жители не хотели видеть национальный цвет Ирландии (зеленый) в самом низу.
В некоторых странах вместо зеленого используют синий сигнал светофора. Также сегодня часто можно встретить многосекционные светофоры со стрелками. В Берлине, например, есть светофор с 13 сигналами!
Если говорить об устройстве светофора, то за всю историю его существования менялись и сами источники света, и управляющие устройства. Сегодня светофоры используют светодиодные модули, которые гораздо экономичнее и надежнее используемых ранее ламповых.
При выходе из строя одного светодиода конструкция в целом продолжает работать.
Также на улицах сегодня легко встретить и целые светофорные комплексы, где на экранах отображается дополнительная информация: время до переключения, графические подсказки и другое.
Проект “Светофор на Ардуино”
Давайте и мы создадим свой почти настоящий светофор. В рамках этого проекта мы соберем схему и создадим скетч, с помощью которого светодиоды будут гореть и переключаться по правилам дорожного движения.
- Если вы совсем новичок в Ардуино, крайне рекомендуем прочитать наши статьи для начинающих:
- Сложность урока: для начинающих
- Вам понадобится:
Схема подключения
Давайте начнем проект со сборки электрической цепи. Схема достаточно проста – соединяем три светодиода. Плюс к цифровому пину, минус – к земле. Обратите внимание, что мы объединили три контакта в один с помощью общей шины макетной платы. Красный свет светофора мы соединим с пином 11, желтый – с 10, зеленый – с 9.
Схема светофора со светодиодами на Ардуино
На этом вопрос со схемой можно считать решенным. Не забывайте про полярность, проверяйте правильность монтажа.
Модуль светофора
Есть еще один способ собрать проект – использовать уже готовые устройства в виде светофора со светодиодами. Один из примеров – плата для Ардуино, продающаяся на Алиэкспрессе. На ней уже закреплены все резисторы, не нужно придумывать конструкцию – просто закрепляем похожий на светофор модуль на подставке и соединяем контакты с Ардуино.
Модуль светофора для Ардуино
Купить готовый модуль можно, например, по этим ссылкам:
А вот ссылка на еще один интересный и совсем недорогой модуль. Он не предназначен для Ардуино, но имеет готовые к использованию корпус и провода, которые можно подключить по приведенной схеме.
Программирование светофора
Прежде чем писать программу, нужно составить общий алгоритм действий, описать задачу на привычном языке. Попробуйте это сделать самостоятельно, заодно и проверьте, так ли уж точно вы знаете алгоритм работы светофора?
Алгоритм работы
Вот этот алгоритм трехсекционного светофора для водителей, принятый за стандарт в России:
- Начинается все с зеленого света. Включаем его.
- Спустя определенное количество времени зеленый начинает мигать. Водители и пешеходы завершают движение (или, как это часто бывает, ускоряются).
- Зеленый выключается и включается желтый.
- Спустя какое-то время выключается и желтый – загорается красный.
- Эпоха красного цвета заканчивается не миганием, как у зеленого, а параллельным включением красного и желтого.
- Спустя какое-то время красный и желтый выключаются, включается зеленый и все начинается сначала.
Согласно ГОСТу Р52282-2004 с правилами применения дорожных знаков и светофоров, длительность сигнала “красный с желтым” не должна превышать 2 секунд, длительность желтого строго равна 3 секундам. Мигание зеленого цвета происходит с частотой 1миг/секунду В течение 3х секунд.
Если вы разобрались с алгоритмом, то написать скетч для Ардуино будет совсем не сложно.
Надо лишь заменить каждое слово “включить” на digitalWrite с атрибутом HIGH, “выключить” на digitalWrite с атрибутом LOW, а задержку сформировать с помощью delay. Вот, например, фрагмент программы, определяющий переход с красного на зеленый цвет.
// Отключаем желтый и красный
digitalWrite(11, LOW); // Красный
digitalWrite(10, LOW); // Желтый
// Включаем зеленый
digitalWrite(9, HIGH);
// Ставим задержку 3 секунды
delay(3000);
Пример скетча
Для того, чтобы не привязываться в программе к конкретным номерам пинов можно и нужно создать константы, содержащие нужный номер пина. В коде мы будем использовать эти константы, а не номера. И если нам нужно будет поменять схему подключения, то менять номера в скетче нам придется только в одном месте. Не нужно будет делать глобальную замену по документу.
Вот так бы выглядел приведенный выше пример с использованием констант:
const int LED_RED = 11; // Порт 11, красный светодиод
const int LED_YELLOW = 10; // Порт 10, желтый светодиод
const int LED_GREEN = 9; // Порт 9, зеленый светодиод
const int TIMEOUT_GREEN = 3000;
// Отключаем желтый и красный светодиоды.
digitalWrite(LED_YELLOW, LOW);
digitalWrite(LED_RED, LOW);
// Включаем зеленый светодиод на GrnTime
digitalWrite(LED_GREEN, HIGH);
delay(TIMEOUT_GREEN);
Вот так можно заставить мигать зеленый свет. Точь в точь как обычная мигалка:
// Мигаем зеленым светодиодом
// Первый раз
digitalWrite(LED_GREEN, LOW);
delay(TIMEOUT_FLASH_GREEN);
digitalWrite(LED_GREEN, HIGH);
delay(TIMEOUT_FLASH_GREEN);
// Второй раз
digitalWrite(LED_GREEN, LOW);
delay(TIMEOUT_FLASH_GREEN);
digitalWrite(LED_GREEN, HIGH);
delay(TIMEOUT_FLASH_GREEN);
// Третий раз
digitalWrite(LED_GREEN, LOW);
delay(TIMEOUT_FLASH_GREEN);
digitalWrite(LED_GREEN, HIGH);
delay(TIMEOUT_FLASH_GREEN);
Второй и более правильный вариант мигания – использовать цикл FOR. Более подробно о нем написано в нашей отдельной статье про циклы.
for (int i=0; i
Источник: https://ArduinoMaster.ru/projects/proekty-svetodiodami-svetofor/
Урок 7 — Светофор на Arduino своими руками. Пишем скетч используя функции
В данном уроке сделаем самый простой светофор из трех светодиодов . Работать он должен вот по такой схеме.

1. Светит только красный цвет нашего будущего светофора.
2. Не выключая красный сигнал светофора включаем желтый .
3. Выключаем красный и желтый включаем зеленый.
4. Выключаем зеленый сигнал светофора включаем желтый.
После чего цикл повторяем с красного сигнала светофора.
Для урока нам понадобится:
Подключим три LED к плате Arduino UNO . У нас получиться вот такая схема.

Принципиальная схема.

Скетч выглядит так
int led_red = 2; // пин подключения 2
int led_yellow = 3; // пин подключения 3
int led_green = 4; // пин подключения 4
void setup() {
pinMode(led_red, OUTPUT);
pinMode(led_yellow, OUTPUT);
pinMode(led_green, OUTPUT);
}
void loop() {
digitalWrite(led_red, HIGH);
delay(10000); // Ждем
digitalWrite(led_yellow, HIGH);
delay(2000);// Ждем
digitalWrite(led_green, HIGH);
digitalWrite(led_red, LOW);
digitalWrite(led_yellow, LOW);
delay(10000);// Ждем
digitalWrite(led_yellow, HIGH);
digitalWrite(led_green, LOW);
delay(2000);// Ждем
digitalWrite(led_yellow, LOW);
}
Для управления светодиодами используем функции digitalWrite().
Давайте заменим стандартную функции digitalWrite() на свою функцию Led().
void Led (uint8_t pin, byte status)
{
digitalWrite(pin, status);
}
Функция принимает две переменные pin — пин светодиода и status — состояние светодиода HIGH или LOW.
В итоге получим вот такой скетч
int led_red = 2; // пин подключения 2
int led_yellow = 3; // пин подключения 3
int led_green = 4; // пин подключения 4
void setup() {
pinMode(led_red, OUTPUT);
pinMode(led_yellow, OUTPUT);
pinMode(led_green, OUTPUT);
}
void loop() {
Led (led_red, HIGH);
delay(10000); // Ждем
Led (led_yellow, HIGH);
delay(2000);// Ждем
Led (led_green, HIGH);
Led (led_red, LOW);
Led (led_yellow, LOW);
delay(10000);// Ждем
Led (led_yellow, HIGH);
Led (led_green, LOW);
delay(2000);// Ждем
Led (led_yellow, LOW);
}
void Led (uint8_t pin, byte status)
{
digitalWrite(pin, status);
}
Как видно по скетчу код стал больше, а функции используют для уменьшения объема кода и упрощения логики. Но мы на этом простом примере посмотрели что такое функция и как передавать переменные в функции в среде разработки arduino IDE.
Понятие что такое функции и как их объявлять пригодиться нам в следующем уроке.
Ест вопросы смотрите видео там подробно описываю программу светофора на Arduino.
Следующий урок: Светофор из 3 светодиодов для машин и 2 для пешеходов на Arduino
Если у вас чего то нет для выполнения данного урока, Вы можете посмотреть в каталоге. Там собранные комплектующими от проверенных продавцов по самым низким ценам.
Источник: https://portal-pk.ru/news/68-urok-7—-svetofor-na-arduino—svoimi-rukami-pishem-sketch.html
Создаем светофор на базе Ардуино Уно
Урок по созданию светофора на основе контроллера Ардуино, который научит понимать временные последовательности и будет работать как реальный светофор.

Последовательность работы светодиодов, выполненная на основе Arduino Uno, имитирует четырехстороннее пересечение, т.е.
классический перекресток, где пересекаются две улицы одна из которых с менее интенсивным трафиком чем вторая.
Этот урок по созданию светофора также поможет детям изучить последовательность сигналов дорожного трафика, чтобы они могли научиться пересекать перекрестки и понимать их поведение в реальной жизни.
Комплектующие
Начинаем с деталей для нашего проекта светофора:
- 1x — Ардуино Уно (большинство плат Arduino должны подойти)
- 2x — красные светодиоды
- 2x — желтые (янтарные) светодиоды
- 2x — зеленые светодиоды
- 6x — резисторы 330 Ом
Дополнительно нам нужны провода-перемычки для соединения всех деталей схемы проекта.
Схема соединений

Для того, чтобы собрать наш Ардуино светофор нам нужно соединить плату Уно и светодиоды согласно схеме выше.
Как работает Ардуино светофор?
Это действительно простая концепция светофора, и приведенная ниже таблица помогает её объяснить. В коде используются инструкции loop и delay для того, чтобы реализовать время включения для каждого из светодиодов.

В примере светофора Ардуино, условно, две улицы. Каждая из них имеет разный объемы трафика (количество проезжающих машин), поэтому есть более длинный зеленый свет (с более коротким красным светом).
Трафик по одной из улиц (второй столбец) очень активный. Зеленый свет для этой улицы продолжается 12 секунд. На второй улице (третий столбец) гораздо меньше машин, поэтому нашему гипотетическому городу нужен зеленый свет на менее активной улице короче по времени. Зеленый свет составит 1/3 от времени зеленого сигнала светофора на основной улице, т.е. получается 4-секундный зеленый свет.
Поскольку главный светофор переключается с зеленого на желтый и потом на красный, второй светофор ненадолго сохраняет свой красный свет в случае, если есть зазевавшиеся водители, которые пытаются проехать через перекресток. Не забывайте об этом интервале «перекрытия» красного света, если вы когда-либо будете создавать систему светофоров для какого-либо перекрестка вашего города.
Когда проходят 4 секунды зеленого света на второй улице мы делаем еще один период «перекрытия» красным светом, после чего цикл сигналов светофора Ардуино возобновляется.
Скетч (код) для Ардуино
Ниже приводим код нашего светофора, который необходимо загрузить в ардуину. Вы можете либо скачать .ino файл, либо скопировать код целиком и вставить в редактор Arduino IDE.
Скачать скетч светофора .ino
//===============================================================================
// Постоянные
//===============================================================================
const int TRAFFIC_LIGHT_STYLE = 1; // Используется для выбора стиля светофора
const int GREEN_LIGHT = 12; // Время зеленого света в секундах
const int AMBER_LIGHT = 3; // Время янтарного (желтого) света в секундах
const int DEAD_LIGHT = 2; // Время «перекрытия» в секундах
const int RED_AMBER_LIGHT = 1; // Красный/Янтарный свет в секундах
// Выходы:
int greenBusyBunnyLane = 30;
int amberBusyBunnyLane = 32;
int redBusyBunnyLane = 34;
int greenBusyBunnyLaneGnd = 31;
int amberBusyBunnyLaneGnd = 33;
int redBusyBunnyLaneGnd = 35;
int greenLazyTortoiseAve = 48;
int amberLazyTortoiseAve = 50;
int redLazyTortoiseAve = 52;
int greenLazyTortoiseAveGnd = 49;
int amberLazyTortoiseAveGnd = 51;
int redLazyTortoiseAveGnd = 53;
//===============================================================================
// Инициализация
//===============================================================================
void setup()
{
// Установка соответствующих выходов светодиодов для первой улицы
pinMode(greenBusyBunnyLane, OUTPUT);
pinMode(amberBusyBunnyLane, OUTPUT);
pinMode(redBusyBunnyLane, OUTPUT);
pinMode(greenBusyBunnyLaneGnd, OUTPUT);
pinMode(amberBusyBunnyLaneGnd, OUTPUT);
pinMode(redBusyBunnyLaneGnd, OUTPUT);
// Установка соответствующих выходов светодиодов для второй улицы
pinMode(greenLazyTortoiseAve, OUTPUT);
pinMode(amberLazyTortoiseAve, OUTPUT);
pinMode(redLazyTortoiseAve, OUTPUT);
pinMode(greenLazyTortoiseAveGnd, OUTPUT);
pinMode(amberLazyTortoiseAveGnd, OUTPUT);
pinMode(redLazyTortoiseAveGnd, OUTPUT);
digitalWrite(greenBusyBunnyLane,LOW);
digitalWrite(amberBusyBunnyLane,LOW);
digitalWrite(redBusyBunnyLane,LOW);
digitalWrite(greenBusyBunnyLaneGnd,LOW);
digitalWrite(amberBusyBunnyLaneGnd,LOW);
digitalWrite(redBusyBunnyLaneGnd,LOW);
digitalWrite(greenLazyTortoiseAve,LOW);
digitalWrite(amberLazyTortoiseAve,LOW);
digitalWrite(redLazyTortoiseAve,LOW);
digitalWrite(greenLazyTortoiseAveGnd,LOW);
digitalWrite(amberLazyTortoiseAveGnd,LOW);
digitalWrite(redLazyTortoiseAveGnd,LOW);
}
//===============================================================================
// Главный блок
//===============================================================================
void loop()
{
switch (TRAFFIC_LIGHT_STYLE)
{
case 0:
usaTrafficLight();
break;
case 1:
ukTrafficLight();
break;
default:
break;
}
}
void usaTrafficLight()
{
for (int seconds = 0; seconds Честно скажем, что у нас получился довольно простой и устаревший Ардуино светофор. Современные светофоры сегодня достаточно «умны» — они могут обнаруживать транспортные средства, корректировать свое время и даже делать перерывы для пешеходных переходов. Всегда есть возможность для улучшения!
Источник: https://ArduinoPlus.ru/arduino-svetofor/
Светофоры на Arduino
Подробности Категория: Arduino
Представляю вашему вниманию проект светофоров на плате Arduino. В нем мы управляем 3-мя светодиодами — зеленым, желтым и красным.Данная системы состоит из 2-х световоров. Когда один светофор разрешает движение другой запрещает.
Когда движение запрещено — горит красный цвет, то в этот момент времени начинает моргать индикатор ожидания — маленький красный светодиод.
Проект в целях демонстрации собран на монтажной плате. Питание осуществляется через саму плату.
Внешний вид системы из 2-х светофоров

Каждый светодиод подключен через сопротивление в 470 Ом. Выдержка времени осуществленна через заданные временные интервалы в массиве duration.
Подключение светофоров осуществляеться к следующим выводам:
- первый к выводам 2,3,4,5;
- второй к выводам 6,7,8,9.
Программа светофора для Arduino
Код не такой уж и сложный, ели немного посмотреть и подумать то можно понять как он работает.
// Source: http://www.electroschematics.com/10178/arduino-traffic-light-system/
int trafficLights1[] = {2,3,4,5}; // red, yellow, green, pedestrians led pins
int trafficLights2[] = {6,7,8,9}; // red, yellow, green, pedestrians led pins
int situations = 4;
int duration[] = {8000,3000,10000,3000}; // duration of each situation
long previousCars = 0;
long previousPeds = 0;
long interval = 300; //blink interval for pedestrians
int ledState = LOW;
int state;
int i = 0;
void setup()
{
for(int i = 0; i = situations) {
i = 0;
} else {
i++;
}
}
}
void activateTrafficLight1(String lights, int pedestrians)
{
for(int x = 0; x