Имеется ввиду следующее. Обе сервы через тяги (или напрямую) управляют каждая своим шлагбаумом и подстройку открытого и закрытого положения можно регулировать ардуиной (вместо того, чтобы это делать механически). В принципе, если этим не заморачиваться, сервами можно управлять от одного пина. (и еще, простите мое занудство , на 30-ю ногу ардуины подается рекомендуемое 7-12 В (предельное 6-20 В, но это уже экстрим), или 5 В на 27-ю ногу)
13 апр 2016, 23:57
Спонсор
DmitryD
Зарегистрирован: 10 ноя 2014, 14:24 Сообщения: 203 Откуда: Москва
Re: DCC своими руками
Цитата:
на 30-ю ногу ардуины подается рекомендуемое 7-12 В (предельное 6-20 В, но это уже экстрим), или 5 В на 27-ю ногу
Паленым запахнет (для мелких плат, UNO, MEGA и т.д. имеют нормальный стабилизатор - там прокатит). Рабочее напряжение 5 вольт. А так 30 и 27 ножки используются как Вы и сказали, но в теории. Так что лучше через внешний стабилизатор и через 30 ножку. Особенно китайские платы. P.S. У меня сегодня одна полыхнула от 12 вольт. Хотя в инструкции было сказано 12 вольт.
14 апр 2016, 00:51
morshamenn1
Зарегистрирован: 16 ноя 2014, 20:09 Сообщения: 79
Re: DCC своими руками
Вашему вниманию предлагается простой блок управления освещением аналогового макета на базе Ардуино Нано.
Блок - двадцатиканальный. Включение каналов в ручном режиме осуществляется путем замыкания соответствующего тумблера на "минус". В автоматическом - тумблером S21. Питание каналов показано условно, нагрузка любого канала может быть подключена к плюсу любого блока питания из допустимого диапазона. В автоматическом режиме каналами управляет Ардуино Нано через самодельный шилд, состоящий из макетной платы 5х7 см, разъемов, и 20-ти транзисторов IRLML2502 (4,2 А, 20 В), что позволяет с запасом управлять нагрузкой 2 А, 12 В (надо мощнее - можно взять более мощный транзистор, затем поставить его на радиатор и т.д., также для надежности надо поставить защитные диоды на транзисторы, но это уже в следующей версии шилда). (из 20-ти ключей на схеме шилда изображен один) Хотя Нано позиционируется, как имеющая 14 цифровых входов/выходов и 8 аналоговых входов, 6 из последних можно перепрограммировать в цифровые выходы, итого получаем 20 цифровых выходов без использования плат расширения (6 выходов могут использоваться как выходы ШИМ).
Программа, написанная в среде Arduino, носит название скетч. Составим для него ТЗ: 1. Кто посещал Гранд Макет в Питере, знает, что там происходит смена дня и ночи. Определим продолжительность игровых суток - 15 минут реального времени (900 с) и попробуем сделать рассветы и закаты. 2. Хотелось бы включать и выключать в зданиях свет (по нескольку раз в сутки), фонари на улицах и т.п. 3. Хотелось бы автомобильный светофор (с пешеходным). 4. И еще чего-нибудь. Поехали. Минимальную продолжительность события возьмем 0,5 с, тогда количество шагов в цикле 900/0,5=1800 , т.е. переменная t изменяется от 0 до 1799 с шагом 1. Когда она достигает определенных значений, будем подавать команды на подачу нуля или единицы на соответствующий выход Ардуино. Начало цикла (t=0) будем считать, что это 8.00 утра, тогда 9.00 - t=75, 10.00 - t=150, 24.00 - t=1200, 1.00 - t=1275, 7.00- t=1725 (почему 8.00 - ну вот вы привели кого-либо к своему макету, включили его, и у вас есть несколько минут для пояснений до наступления заката). Собственно сам скетч с комментариями:
} void loop() { digitalWrite(0, LOW); for (int t=0;t<1800;t++){ // Отсчет начался в 8.00, 9.00 - t=75, 10.00 - t=150, 24.00 - t=1200, 1.00 - t=1275, 7.00- t=1725;
if (t/2*2==t & t<50){digitalWrite(0, HIGH);} else {digitalWrite(0, LOW);} // Звуковой сигнал начала цикла (для отладки); if (t>=900 & t<1500){digitalWrite(1, HIGH);} else {digitalWrite(1, LOW);} // В 20.00 свет зажгли, в 4.00 свет погасили; if (t>=975 & t<1125 | t>=1500 & t<1575){digitalWrite(2, HIGH);} else {digitalWrite(2, LOW);} //В 21.00 зажгли, в 23.00 погасили, в 4.00 зажгли, в 5.00 погасили;
int ss= 750; int sr= 1650; int sso= ss+64-t; int sro= sr-64-t; int ssb= ss+128-t; int srb= sr-128-t; analogWrite(3, constrain(255-2*abs(ssb), 0, 255)+ constrain(255-2*abs(srb), 0, 255) ); // синий свет сумерки ; analogWrite(5, constrain(255-2*abs(sso), 0, 255)+ constrain(255-2*abs(sro), 0, 255) ); // оранжевый свет заря ; analogWrite(6, constrain(2*(ss-t), 0, 255)+ constrain(2*(t-sr), 0, 255) ); // белый дневной свет ;
int sv= t % 50; // переменная sv (светофор) меняется от 0 до 49 ; if (sv>=0 & sv<25){digitalWrite(14, HIGH);} else {digitalWrite(14, LOW);} // красный авт. ; if (sv>=20 & sv<25 | sv>=45 & sv<50){digitalWrite(15, HIGH);} else {digitalWrite(15, LOW);} // желтый авт. ; if (sv>=25 & sv<39 | sv==40 | sv==42 | sv==44 ){digitalWrite(16, HIGH);} else {digitalWrite(16, LOW);} // зеленый авт. ; if (sv>=0 & sv<2 | sv>=19 & sv<50){digitalWrite(17, HIGH);} else {digitalWrite(17, LOW);} // красный пеш. ; if (sv>=2 & sv<13 | sv==14 | sv==16 | sv==18 ){digitalWrite(18, HIGH);} else {digitalWrite(18, LOW);} // зеленый пеш. ;
if (t/2*2==t){digitalWrite(19, HIGH);} else {digitalWrite(19, LOW);} // аварийка сломанного автомобиля ; delay(500); // весь цикл 1800*500=15 минут - игровые сутки ; ; } }
Дополнительные комментарии: Параллельно нагрузке первого канала подключен динамик, в начале каждого цикла раздается треск для синхронизации на слух при отладке. Второй, третий канал - свет в зданиях. Цветность и яркость естественного света в течении суток примерно изображена на графике.
Используя выходы Ардуино с ШИМ, можно реализовать плавное трехканальное управление освещением. График изменения яркости каналов от времени - на рисунке. (Задача была проиллюстрировать принцип, поэтому с точностью реализации заката и восхода сильно не заморачивался) Переменные ss и sr - время заката и восхода соответственно.(заря и сумерки к ним привязаны, поэтому при сдвиге, скажем времени заката сдвигаются и соответствующая заря с сумерками)
Далее идет управление светофором. Цикл светофора - 25 секунд. 5 каналов - красный, желтый, зеленый для автомобилей, красный и зеленый для пешеходов. И в качестве вишенки на торте - аварийка сломанного автомобиля. Поскольку макета у меня пока нет, в качестве нагрузки к блоку управления освещением были подключены 20 маломощных автомобильных ламп (на видео первый канал справа, двадцатый слева) . Вот видео первых 50-ти секунд (чтобы можно посмотреть работу светофора) https://youtu.be/Y60vavIZR6M Если задержку в конце цикла сделать 20 мс вместо 500 мс, то время пойдет в 25 раз быстрее и полный цикл будет вместо 15 мин - 36 сек. На следующем видео слева "молотит" светофор, справа видно плавное изменение освещения и включение/выключение света в зданиях. https://youtu.be/pBCoZ-8H0XQ В принципе, данных для повторения и модификации достаточно. Ежели чего - задавайте вопросы.
25 апр 2016, 01:33
DmitriyMir
Зарегистрирован: 24 сен 2014, 21:52 Сообщения: 2079 Откуда: Тверь
Re: DCC своими руками
Вопросов нет, осталось верхний свет в комнате подключить и синхронизировать с макетом....
П.С. Это к ДЦЦ не имеет отношения, для освещения и сигнализации - отдельная тема.
25 апр 2016, 01:54
morshamenn1
Зарегистрирован: 16 ноя 2014, 20:09 Сообщения: 79
Re: DCC своими руками
А как же DmitryD со своим переездом? можно эту тему переименовать в "электроника своими руками" и постить в ней собственноручно сделанное (или повторенное)(будучи готовым ответить на вопросы и дать консультации) Впрочем, пусть Лео перенесет, если посчитает нужным...
25 апр 2016, 02:08
DmitryD
Зарегистрирован: 10 ноя 2014, 14:24 Сообщения: 203 Откуда: Москва
Re: DCC своими руками
morshamenn1 писал(а):
А как же DmitryD со своим переездом? можно эту тему переименовать в "электроника своими руками" и постить в ней собственноручно сделанное
Я не против.
25 апр 2016, 10:58
Wunderbaum
Зарегистрирован: 03 фев 2015, 01:54 Сообщения: 1919 Откуда: Бобруйск, Беларусь
Re: DCC своими руками
morshamenn1 писал(а):
*** можно эту тему переименовать в "электроника своими руками" и постить в ней собственноручно сделанное (или повторенное) (будучи готовым ответить на вопросы и дать консультации) Впрочем, пусть Лео перенесет, если посчитает нужным...
И я согласен: поскольку содержимое моего проекта без закоса под DCC будет являться обычной электроникой!
25 апр 2016, 14:50
DmitryD
Зарегистрирован: 10 ноя 2014, 14:24 Сообщения: 203 Откуда: Москва
Re: DCC своими руками
Сегодня попробовал связку: DigiTrains Android App (Wifi) ~ Wifi Router ~ Raspberry Pi 3 (Wifi) ~ JMRI (serial) ~ Arduino Uno ~ H-Bridge (IBT-2) BTS7960B ~ Рельсы. Если к ардуино подключить два H-Bridge или использовать L298P Motor Shield на два канала, то есть основной и программный трек.
Все работает на ура. Можно управлять и с Android и с Raspberry. По цене ~ 3000-4000 руб (Raspberry можно любую). С нуля делается где-то за час.
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять Фото