Светофор на RGB-светодиодной ленте, управляемый ARDUINO UNO
В некоторых случаях требуется «светофор местного значения», например, чтобы регулировать проезд автомобилей на автостоянку или на территорию гаражного кооператива, если въезд по различным причинам слишком узок для одновременного проезда двух машин.
Здесь предлагается описание простого варианта такого светофора, имеющего всего два фонаря, -по одному для каждого из направлений движения.
Фонари сделаны наиболее доступным сейчас способом, - из трехцветной светодиодной ленты. Конструкция каждого фонаря состоит из корпуса от прямоугольного уличного прожектора, в который установлен светящийся блок, сделанный из четырех отрезков RGB-светодиодной ленты.
Отрезки расположены друг над другом, так чтобы образовать некий четырехстрочный прямоугольник. А затем, отрезки соединены монтажными проводниками, как это показано здесь на схеме.
Конечно же, число «строк» (отрезков ленты) может быть и другим, все зависит от размеров фонаря. Фонари одинаковые, их два.
Светофор показывает цвета - зеленый, желтый и красный. Желтый цвет образуется путем одновременного включения зеленого и красного. Для управления используется всего две точки, - всего два ключевых полевых транзистора VT1 и VT2. Каждый из них управляет обоими фонарями, только в одном фонаре цепью зеленого цвета, а в другом цепью красного цвета.
Таким образом, для переключения зеленого и красного открывается один либо другой транзистор, а для включения желтого цвета транзисторы открываются оба одновременно.
Принципиальная схема
Светофор управляется автоматически при помощи блока управления на основе микроконтроллерной платы ARDUINO UNO. Это, как мне показалось, наиболее удобный в данном случае вариант. Схема предназначена для управления двумя нагрузками, которыми служат выше указанные фонари.
Рис. 1. Принципиальная схема светофора на RGB-светодиодной ленте, управляемый ARDUINO UNO.
Для управления выбраны порты D10, D11. Логические уровни с которых поступают на затворы полевых транзисторов VT1 и VT2, управляющих фонарями.
Алгоритм работы светофора такой:
1. 1-й фонарь зеленый, 2-й красный, горят 15 секунд.
2. Оба фонаря желтые, горят 3 секунды.
3. 1-й фонарь красный, 2-й зеленый, горят 15 секунд.
4. Оба фонаря желтые, горят 3 секунды. Далее повторение по кольцу.
Программа
Программа очень простая. И при наличии персонального компьютера и программного обеспечения для ARDUINO UNO можно создавать любые, какие угодно порядки управления фонарями. Ниже приводится простая программа, которая была использована мною. Вы же можете сделать любой другой вариант, например, можно изменять временные параметры работы светофора.
Например, вместо 15 секунд взять 35 секунд, заменив в программе параметры времени с «15000» на «35000». Суть в том, что нужно брать каждый шаг программы и указывать в нем на каких портах должны быть единицы (транзистор открыт), а на каких - нули (транзистор закрыт). Затем указывается время продолжительности этого шага.
Всего шагов может быть от четырех, до десятков и сотен, - все зависит от необходимости и усидчивости при написании программы. Таким образом, в каждый шаг записываем состояния транзисторов (Low -закрыт, HIGH - открыт).
Затем указываем длительность (время) шага (1000 = 1 сек). Затем следующий шаг. Как уже сказано, шагов может быть сколько угодно.
Программа (на C++):
/*
Svetofor
*/
// задание выходов
void setup() {
pinMode(11, OUTPUT);
pinMode(10, OUTPUT);
}
// рабочий цикл
void loop() {
digitalWrite(11, HIGH); // VT1 открыт
digitalWrite(10, LOW); // VT2 закрыт
delay(15000); И время шага 15 сек
digitalWrite(11, HIGH); // VT1 открыт
digitalWrite(10, HIGH); // VT2 открыт
delay(3000); // время шага 3 сек
digitalWrite(11, LOW); //VT1 закрыт
digitalWrite(10, HIGH); // VT2 открыт
delay (15000); //время шага 15 сек
digitalWrite(11, HIGH); //VT1 открыт
digitalWrite(10, HIGH); // VT2 открыт
delay(3000); //время шага 3 сек
}
Плата ARDUINO UNO питается от того же источника, что и светодиодные ленты, -это источник постоянного тока напряжением 12V. Используется специальный источник питания для светодиодных лент.
При желании можно задействовать и синий цвет, но смысла особого в этом я не вижу. Однако, если нужно, то просто потребуется еще один или два транзистора, соответственно, нужно будет использовать еще один или два порта платы ARDUINO UNO.
Каравкин В. РК-07-19.
- Управление четырьмя лампами на 220В пультом от телевизора (Arduino UNO)
- Часы-будильник на микроконтроллере АТ89С2051 и DS1307
- Цифровая шкала для КВ приемника (Arduino UNO, 1602А)
- Модельный ряд микроконтроллеров AVR фирмы Atmel
