Форум ModelldepO  

Вернуться   Форум ModelldepO > Моделизм > Электрика и DCC > Arduino
Ответ
 
Опции темы Опции просмотра
Старый 09.12.2020, 20:47   #1
osmanpasha
Заглянувший
 
Регистрация: 16.07.2019
Адрес: -
Сообщений: 80
Сказал(а) 'не согласен(а)'!: 2
Сказали 'не согласен'! 0 раз(а) в 0 сообщениях
Сказал(а) спасибо: 50
Поблагодарили 125 раз(а) в 46 сообщениях
Все 'Спасибо' этого пользователя. :
0 за это сообщение
0 Всего
Репутация: скоро придёт к известности (125)
По умолчанию Командная станция и декодеры светодиодов и соленоидных стрелок для шины LocoNet

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

Хочу поделиться с сообществом двумя своими проектами - декодерами для протокола LocoNet:
  • LND-16L/8I - декодер для 16 светодиодов. Выходы управляются с помощью микросхемы MBI5026 - драйвера светодиодов с управлением через SPI. Ток через светодиоды ограничен 5-50 мА и регулируется с помощью потенциометра. Выводов ардуины хватило еще на 8 цифровых входов, которые в будущем будут использованы для датчиков занятости путей, и на 2 аналоговых входа.
  • LND-8CDU - декодер для 4 столеноидных стрелок (по 2 импульсных выхода на стрелку) с кондесаторным хранением энергии. Каждый канал управляется двумя выходами микросхемы ULN2803, поэтому ограничение тока - 1А на канал. Ток зарядки конденсатора ограничен резистором, разрядка проивзодится через диод Шоттки. В принципе, декодер можно использовать и в неимпульсном режиме для кручения моторов, например.

Платы декодеров разводил в easyEDA, первые версии сделаны ЛУТом, потом заказал изготовение в Китае. Выбор компонентной базы обусловлен принципом "что было в местном радиомагазине" и большую часть компонентов можно заменить на аналогичные.

Декодеры сделаны на основе Arduino Pro Mini, LocoNet-часть реализована с помощью традиционной схемы для самодельщиков и использует библиотеку LocoNet для Arduino IDE.
На текущий момент прошивки не обладают большой функциональностью, но, в целом, могут использоваться по назначению.
Из фишек прошивок - стрелочный декодер следит за напряжением на входе и отключает выход, если напряжение проседает ниже определенного уровня (чтобы не просадить напряжение на всей шине), выход включается только когда напряжение на конденсаторе поднимется до входного.
светодиодный декодер с помощью программного ШИМ позволяет плавно зажигать и гасить светодиоды. ШИМ сделан на основе алгоритма Брезенхэма.

Прошивки позволяют настроить адрес первого выхода (остальные идут по порядку), сбросить настройки, для стрелочного декодера - задать длительность импульса и количество импульсов (мои самодельные стрелки от первого импульса не всегда переключатся до конца. Возможно, конденсатор мал), для светодиодного декодера - включается или выключается плавность зажигания светодиодов. Настройка производится либо через System Variables из JMRI (не проверял), либо через op-switches (декодер переводится кнопкой в режим настройки, затем, подавая команды стрелкам с обычного пульта, выбирается настройка и ее новое значение).

Декодеры созданы для моего макета железной дороги, принципом создания которого является максимальная самодельность (и дешевизна). Из готового только рельсы (Mehano), подвижной состав (PIKO и Mehano) и локомотивные декодеры (aliexpress). Поэтому к декодерам еще прилагается самодельная командная станция с DCC, LocoNet и вайфаем на базе ESP32, о которой я тоже планирую сделать пост. В перспективе еще будет беспроводной пульт управления с Nrf24 (или не будет, пока рулю с телефона).

UPD 20/12/2020: Выложил описание командной станции на ESP32 с LocoNet и WiFi, почитать можно здесь:
http://forum.modelldepo.ru/showpost....1&postcount=11

Видео работы декодеров:



Файлы:
Схемы и платы:
LND-8CDU https://oshwlab.com/positron96/loconet-decoder
LND-16L/8I-3.5 https://oshwlab.com/positron96/locon...er-2_copy_copy

Прошивки: https://github.com/positron96/LocoNetDecoders
Миниатюры:
Нажмите на изображение для увеличения
Название: IMG_20201117_104637.jpg
Просмотров: 1066
Размер:	122.9 Кб
ID:	187470Нажмите на изображение для увеличения
Название: IMG_20201207_005522.jpg
Просмотров: 1087
Размер:	101.0 Кб
ID:	187471Нажмите на изображение для увеличения
Название: LND-16L_8I-3.5_1.jpg
Просмотров: 1035
Размер:	246.6 Кб
ID:	187473Нажмите на изображение для увеличения
Название: LND-8CDU_1.jpg
Просмотров: 1035
Размер:	210.0 Кб
ID:	187474

Последний раз редактировалось laba; 23.12.2020 в 18:56.
osmanpasha вне форума  
Вверх
23 пользователя(ей) сказали cпасибо:
Старый 11.12.2020, 16:00   #2
osmanpasha
Заглянувший
 
Регистрация: 16.07.2019
Адрес: -
Сообщений: 80
Сказал(а) 'не согласен(а)'!: 2
Сказали 'не согласен'! 0 раз(а) в 0 сообщениях
Сказал(а) спасибо: 50
Поблагодарили 125 раз(а) в 46 сообщениях
Все 'Спасибо' этого пользователя. :
0 за это сообщение
0 Всего
Репутация: скоро придёт к известности (125)
По умолчанию

Продолжу.

Текущие планы на будущее и проблемы:
  • Ардуина в стрелочном декодере питается напрямую от входного напряжения, поэтому максимальное напряжение на шине LocoNet (или на разъеме внешнего питания, в зависимости от чего питается декодер) - 12В. В следующей версии надо поставить отдельный регулятор, вроде 7805, чтобы поднять допустимое напряжение (7805 допускает до 35В). Это же касается и светодиодного декодера, но там уже есть регулятор, надо переразвести часть питания.
  • В светодиодном декодере стоит драйвер, который пускает одинаковый ток на все светодиоды, из-за этого светодиоды разного цвета (т.е. из разного материала) светятся с существенно разной яркостью (хорошо заметно на видео). Возможные решения:
    Программно: ШИМировать каждый канал отдельно. Реализовано, сейчас тестирую (в целом работает, но очень маленькие значения ШИМа приводят к заметному миганию светодиода).
    Аппаратно 1: Заменить драйвер на "умный" PCA9685. Минусы - он раза в 3 дороже, чем текущий.
    Аппаратно 2: Заменить драйвер либо на обычный сдвиговый регистр а-ля 74HC595 (тока хватит, но впритык), либо на ту же сборку Дарлингтона UNL2803, что и в стрелочном декодере. Ток регулировать резисторами вне декодера, как все всю жизнь делали. Минусы - больше компонентов на плате. Плюсы - декодер станет из светодиодного универсальным (правда, потребует полной переделки).
  • Заменить линейный регулятор 7805 на светодиодном декодере на импульсный. Сейчас этот регулятор питает все светодиоды, что неэффективно и может потребовать радиатор на регуляторе. Предварительные тесты показывают, что дешевые китайские Mini-360 (которыми можно заменить регулятор без переделки платы) не подходят, так как обладают отвратными характеристиками при низкой нагрузке.
  • Сейчас ток зарядки конденсатора в стрелочном декодере ограничен резистором, поэтому даже если блок питания может выдать достаточно тока, чтобы заряжать конденсатор за доли секунды (или вообще переключать стрелку без конденсатора), зарядка все равно будет занимать большее время. Думаю попробовать переделать контур зарядки конденсатора и вообще питания выходов декодера.

Последний раз редактировалось osmanpasha; 11.12.2020 в 20:00.
osmanpasha вне форума  
Вверх
Пользователь сказал cпасибо:
Старый 11.12.2020, 17:59   #3
Rebel
Местный
 
Аватар для Rebel
 
Регистрация: 22.11.2010
Адрес: Москва
Сообщений: 3,038
Сказал(а) 'не согласен(а)'!: 4
Сказали 'не согласен'! 29 раз(а) в 19 сообщениях
Сказал(а) спасибо: 1,707
Поблагодарили 1,646 раз(а) в 830 сообщениях
Все 'Спасибо' этого пользователя. :
0 за это сообщение
2 Всего
Репутация: обеспечил(а) себе прекрасное будущее (1681)
По умолчанию

Цитата:
Сообщение от osmanpasha Посмотреть сообщение
потом заказал изготовение в Китае
pcbway? или где? (тоже планирую заказывать когда-нибудь под свои поделки)
__________________
🎉 мой канал в телеграм @aleksandr_ru_blog
Rebel вне форума  
Вверх
Старый 11.12.2020, 18:08   #4
osmanpasha
Заглянувший
 
Регистрация: 16.07.2019
Адрес: -
Сообщений: 80
Сказал(а) 'не согласен(а)'!: 2
Сказали 'не согласен'! 0 раз(а) в 0 сообщениях
Сказал(а) спасибо: 50
Поблагодарили 125 раз(а) в 46 сообщениях
Все 'Спасибо' этого пользователя. :
0 за это сообщение
0 Всего
Репутация: скоро придёт к известности (125)
По умолчанию

Цитата:
Сообщение от Rebel Посмотреть сообщение
pcbway? или где? (тоже планирую заказывать когда-нибудь под свои поделки)
JLCPCB.
По части изготовления плат, по-моему, JLCPCB и PCBWay - близнецы-братья, но у них в разное время разные акции-купоны; я попал на купон на бесплатную доставку от JLCPCB, так что заказывал у них.

Последний раз редактировалось osmanpasha; 11.12.2020 в 19:57.
osmanpasha вне форума  
Вверх
2 пользователя(ей) сказали cпасибо:
Старый 16.12.2020, 11:03   #5
osmanpasha
Заглянувший
 
Регистрация: 16.07.2019
Адрес: -
Сообщений: 80
Сказал(а) 'не согласен(а)'!: 2
Сказали 'не согласен'! 0 раз(а) в 0 сообщениях
Сказал(а) спасибо: 50
Поблагодарили 125 раз(а) в 46 сообщениях
Все 'Спасибо' этого пользователя. :
0 за это сообщение
0 Всего
Репутация: скоро придёт к известности (125)
По умолчанию Эксперименты с управлением зарядкой конденсатора

Провел эксперименты с "интеллектуальной" зарядкой конденсатора в стрелочном декодере с помощью микроконтроллера.

В текущей версии платы зарядка происходит через резистор 50 Ом, что занимает около секунды. Однако, если блок питания может выдать большой ток, то заряжать можно было бы и быстрее, а следовательно, щелкать стрелками чаще. Поставив вместо резистора мосфет, управляемый микроконтроллером, и измеряя входное напряжение, можно добиться того, что ток зарядки (с помощью шимирования транзистора) будет тем больше, чем больший ток может отдать блок питания.

Алгоритм такой:
В ардуине постоянно включены прерывания АЦП (Free-rolling режим).
АЦП измеряет входное напряжение. Если оно меньше максимального за последние 20с входного напряжения на определнное значение (выбрал 500мВ), то мосфет выключается. Если больше - включается. То есть если напряжение на входе просело на 500 мВ, выходы и конденсатор отключаются от входного напряжения.

На рисунке график зарядки со слабым блоком питания (50мА) после переключения стрелки(синяя линия - текущее входное напряжение, красная - максимальное входное напряжение, зеленая - напряжение на конденсаторе, оранжевая - управляющий пин транзистора)


На следующем рисунке зарядка от мощного источника (1А). Видно, что конденсатор особо и не отключается от входа (но заряжается не мгновенно, потому что резистор я пока оставил) и заряжается раза в 4 быстрее.


Схема, собранная на макетке, примерно такая:


Код для эксперимента тут: https://github.com/positron96/LocoNe...U/LND-8CDU.ino. Использовать его можно будет со следующей версией платы, в которую будут добавлены нужные компоненты.
osmanpasha вне форума  
Вверх
Старый 16.12.2020, 11:33   #6
shalex
Местный
 
Регистрация: 08.07.2015
Адрес: МО
Сообщений: 2,858
Сказал(а) 'не согласен(а)'!: 0
Сказали 'не согласен'! 3 раз(а) в 2 сообщениях
Сказал(а) спасибо: 4,650
Поблагодарили 3,274 раз(а) в 1,172 сообщениях
Все 'Спасибо' этого пользователя. :
0 за это сообщение
1 Всего
Репутация: репутация неоспорима (3285)
По умолчанию

А зачем такие сложности?

Почему то в голове сразу мелькают мысли
"как понять, почему именно соленоид вырубило"?
"не будет ли самовозбуждения при пограничной мощности БП"?
shalex вне форума  
Вверх
Старый 17.12.2020, 15:46   #7
osmanpasha
Заглянувший
 
Регистрация: 16.07.2019
Адрес: -
Сообщений: 80
Сказал(а) 'не согласен(а)'!: 2
Сказали 'не согласен'! 0 раз(а) в 0 сообщениях
Сказал(а) спасибо: 50
Поблагодарили 125 раз(а) в 46 сообщениях
Все 'Спасибо' этого пользователя. :
0 за это сообщение
0 Всего
Репутация: скоро придёт к известности (125)
По умолчанию

Цитата:
Сообщение от shalex Посмотреть сообщение
А зачем такие сложности?
Это очень разумный вопрос, на который у меня нет убедительного ответа) Мои самодельные стрелки не всегда до конца переключаются с одного импульса, так что актуальной проблемой для меня является сокращение времени зарядки конденсаторов, чтобы посылать два импульса подряд. Я мог бы поставить просто поменьше токоограничивающий резистор, но в случае питания от LocoNet так можно случайно все декодеры на шине перезагрузить, если БП не вытянет. Хочется иметь какую-нибудь защиту от таких случаев.
Ну и это схема в плате будет отключаемой джампером, так как она действительно не выглядит такой уж необходимой.

Самовозбуждения быть вроде не должно, потому что после зарядки конденсатора потребление тока прекращается и открытие транзистора больше не приводит к просадкам напряжения. А что вы имеете в виду под "почему соленоид вырубило?"
osmanpasha вне форума  
Вверх
Старый 17.12.2020, 21:40   #8
shalex
Местный
 
Регистрация: 08.07.2015
Адрес: МО
Сообщений: 2,858
Сказал(а) 'не согласен(а)'!: 0
Сказали 'не согласен'! 3 раз(а) в 2 сообщениях
Сказал(а) спасибо: 4,650
Поблагодарили 3,274 раз(а) в 1,172 сообщениях
Все 'Спасибо' этого пользователя. :
0 за это сообщение
1 Всего
Репутация: репутация неоспорима (3285)
По умолчанию

Цитата:
Сообщение от osmanpasha Посмотреть сообщение
А что вы имеете в виду под "почему соленоид вырубило?"
Прошу прощения, перечитал неск раз, но так и не нашел. Вроде бы читал про то, что соленоид не будет срабатывать, если напряжение питания просело в данный момент.
shalex вне форума  
Вверх
Старый 17.12.2020, 22:25   #9
Rebel
Местный
 
Аватар для Rebel
 
Регистрация: 22.11.2010
Адрес: Москва
Сообщений: 3,038
Сказал(а) 'не согласен(а)'!: 4
Сказали 'не согласен'! 29 раз(а) в 19 сообщениях
Сказал(а) спасибо: 1,707
Поблагодарили 1,646 раз(а) в 830 сообщениях
Все 'Спасибо' этого пользователя. :
0 за это сообщение
2 Всего
Репутация: обеспечил(а) себе прекрасное будущее (1681)
По умолчанию

Цитата:
Сообщение от osmanpasha Посмотреть сообщение
времени зарядки конденсаторов, чтобы посылать два импульса подряд.
не проще ли использовать два конденсатора?
__________________
🎉 мой канал в телеграм @aleksandr_ru_blog
Rebel вне форума  
Вверх
Старый 19.12.2020, 14:31   #10
osmanpasha
Заглянувший
 
Регистрация: 16.07.2019
Адрес: -
Сообщений: 80
Сказал(а) 'не согласен(а)'!: 2
Сказали 'не согласен'! 0 раз(а) в 0 сообщениях
Сказал(а) спасибо: 50
Поблагодарили 125 раз(а) в 46 сообщениях
Все 'Спасибо' этого пользователя. :
0 за это сообщение
0 Всего
Репутация: скоро придёт к известности (125)
По умолчанию

Цитата:
Сообщение от shalex Посмотреть сообщение
Вроде бы читал про то, что соленоид не будет срабатывать, если напряжение питания просело в данный момент.
Нет, включение выходов зависит от напряжения на конденсаторе, но не от входного напряжения.

Цитата:
Сообщение от Rebel Посмотреть сообщение
не проще ли использовать два конденсатора?
Проще, на плате как раз место под второй конденсатор есть, но мне почему-то не помогло. Возможно, это из-за ограничения в 1А, которые может пропустить через себя ULN2803, или еще от чего-то.
osmanpasha вне форума  
Вверх
Старый 20.12.2020, 14:20   #11
osmanpasha
Заглянувший
 
Регистрация: 16.07.2019
Адрес: -
Сообщений: 80
Сказал(а) 'не согласен(а)'!: 2
Сказали 'не согласен'! 0 раз(а) в 0 сообщениях
Сказал(а) спасибо: 50
Поблагодарили 125 раз(а) в 46 сообщениях
Все 'Спасибо' этого пользователя. :
0 за это сообщение
0 Всего
Репутация: скоро придёт к известности (125)
По умолчанию Командная станция

Следующий проект, продолжающий тематику - командная станция на основе ESP32, с LocoNet и WiFi.

Возможности станции:
  • DCC (2 выхода, основной и для программирования)
  • LocoNet. 3 разъема (2 LocoNet-T, подключенные к питанию, и 1 LocoNet-B, подключенный к DCC сигналу)
  • WiFi:
    • протокол WiThrottle для управления с телефона (приложения WiThrottle, EngineDriver).
    • протокол LbServer (LocoNet over TCP) для управления через JMRI.

DCC-часть сделана на драйвере L298 (2А на канал).
На основном канале DCC прошивка мониторит потребление тока, отключение примерно на 2А.
На канале программирования мониторинг потребления тока обеспечивает чтение/запись CV у DCC-декодеров.
Часть прошивки, отвечающая за DCC, основана на коде проекта DCC++ (только код существенно перепилен, как для работы на ESP32, так и в плане API)

ПО поддерживает 10 слотов под локомотивы (ограничение искусственное, ресурсов хватит и на сотню) и 15 сохраненных стрелок (отображаются в EngineDriver, их состояние хранится в КС). Список стрелок пока не сохраняется между перезагрузками.

LocoNet
Прошивка комутирует несколько источников/потребителей LocoNet-сообщений: физическая шина, протокол WiThrottle, протокол LbServer, внутренние источники сообщений (управление локомотивами, программирование декодеров). Код, реализующий физическую шину, корнями уходит в библиотеку LocoNet2.

WiFi
При первом старте прошивка входит в режим точки доступа, в котором пользователю предлагается подключиться к устройству с помощью телефона и ввести ESSID+пароль от точки доступа, к которой должна подключаться КС в обычном режиме. В дальнейшем КС будет подключаться к указанной сети. Приложение EngineDriver на Android, подключенном к той же сети, находит КС и подключается к ней (на видео показано).

JMRI может подключиться к КС либо по IP-адресу (смотреть его пока надо в роутере или при прямом подключении к КС по COM-порту), либо по mDNS-имени "ESP32Server.local". Я указываю модель станции DCS-240, но ничего специфичного в прошивке нет, должны работать и другие варианты.

Прошивка собирается с помощью PlatformIO, можно собрать через Arduino IDE, только придется поперемещать файлы библиотек.

Плата нарисована в easyEDA, заказывал у китайцев. Размеры платы 100х50 мм, что укладывается в "эконом" вариант за 2-4$. До заказа проект тестировалсяя на беспаечной макетке с красным модулем L298, так что возможно и такая реализация. Используется модуль Lolin32 Lite как самый дешевый модуль с ESP32 (сейчас без доставки около 210р).

Потенциал для развития, как без него:
Изменения в железе:
  • Заменить Lolin32 Lite на более распространенный 30-пиновый модуль ESP32. Можно будет отказаться от регулятора 3.3В на плате (на Lolin32 Lite не выведен пин 5В)
  • Оба канала L298 можно отдать под основной путь (увеличив максимальный ток до 4А), а для программирования использовать еще один маломощный H-мост.
  • Добавить место под радиатор для L298 (сейчас можно приделать только кастомный радиатор, нижняя часть чипа закрыта разъемами).
Изменения в софте:
  • Сохранение стрелок в EEPROM
  • Отправка в LocoNet информации о потреблении тока
  • Улучшение механизма роутинга пакетов LocoNet. Сейчас всё в паре мест костыльно.
Разработка софта пока стоит на месте, потому что плата ESP32 сгорела при экспериментах с мониторингом силы тока

Видео:


Исходный код прошивки: https://github.com/positron96/LocoNetControlStation

Схема платы: https://oshwlab.com/positron96/loconet-command-station
Миниатюры:
Нажмите на изображение для увеличения
Название: IMG_20201207_005138.jpg
Просмотров: 237
Размер:	123.5 Кб
ID:	187684Нажмите на изображение для увеличения
Название: LNS-W_1.jpg
Просмотров: 209
Размер:	123.7 Кб
ID:	187685Нажмите на изображение для увеличения
Название: LNS-W_2.jpg
Просмотров: 190
Размер:	90.3 Кб
ID:	187686
osmanpasha вне форума  
Вверх
7 пользователя(ей) сказали cпасибо:
Старый 20.12.2020, 14:25   #12
osmanpasha
оффтопик
osmanpasha вне форума   Ответить с цитированием Вверх
Старый 20.12.2020, 19:47   #13
MW
оффтопик
MW вне форума   Ответить с цитированием Вверх
Пользователь сказал cпасибо:
Старый 16.01.2021, 11:58   #14
osmanpasha
Заглянувший
 
Регистрация: 16.07.2019
Адрес: -
Сообщений: 80
Сказал(а) 'не согласен(а)'!: 2
Сказали 'не согласен'! 0 раз(а) в 0 сообщениях
Сказал(а) спасибо: 50
Поблагодарили 125 раз(а) в 46 сообщениях
Все 'Спасибо' этого пользователя. :
0 за это сообщение
0 Всего
Репутация: скоро придёт к известности (125)
По умолчанию Оптический сенсор

Следующим компонентом макета моей мечты является оптический датчик занятости пути.

Изначально я хотел взять готовый датчик для самоделок на ардуине, типа такого: ,
но, как известно, такие датчики на основе простого компаратора чувствительны к изменениям окружающего освещения (т.е. включения/выключения света в помещении, закатов и рассветов) и требуют подстройки под конкретный уровень освещения.

Для эксперимента было решено проверить идею, которая витает в моей голове уже давно - сделать такой датчик на основе дешевого микроконтроллера, который будет интеллектуально отсекать фоновое освещение любого уровня. Идея такая:

Имеется такая же оптопара, как и в упомянутом датчике. Ее светодиод управляется ногой микроконтроллера (МК). Фотодиод оптопары подключен к АЦП-ноге МК.
Алгоритм работы:
  1. Зажигается светодиод, измеряется показания фотодиода.
  2. Выключается светодиод, измеряется показание светодиода.
  3. Если разница небольшая, значит свет светодиода ушел “в молоко” и перед датчиком ничего нет. Если разница существенная, значит препятствие есть.

Идея была сначала проверена на макете с Arduino Nano, а затем воплощена в виде платы, сделанной ЛУТом, с МК ATtiny13 (стоимость на али примерно 20р за штуку, компараторы в розницу стоят примерно столько же). Дополнительной обвязки МК не требует, используется встроенный кварц. Обвязка для светодиода и фотодиода стандартная (токоограничивающие резисторы и резисторный делитель). Ног МК хватило даже на две оптопары и подстроечный резистор для установки порога разницы показаний АЦП. Соответственно, одна плата МК может выполнять функцию двух датчиков.

Демонстрация работы:
Миниатюры:
Нажмите на изображение для увеличения
Название: Schematic_occpy-detector_2021-01-16.png
Просмотров: 116
Размер:	79.0 Кб
ID:	188840Нажмите на изображение для увеличения
Название: Untitled.png
Просмотров: 112
Размер:	57.4 Кб
ID:	188841
Вложения:
Тип файла: txt occpy.ino.txt (1.9 Кб, 104 просмотров)
osmanpasha вне форума  
Вверх
6 пользователя(ей) сказали cпасибо:
Старый 16.01.2021, 12:46   #15
Rebel
Местный
 
Аватар для Rebel
 
Регистрация: 22.11.2010
Адрес: Москва
Сообщений: 3,038
Сказал(а) 'не согласен(а)'!: 4
Сказали 'не согласен'! 29 раз(а) в 19 сообщениях
Сказал(а) спасибо: 1,707
Поблагодарили 1,646 раз(а) в 830 сообщениях
Все 'Спасибо' этого пользователя. :
0 за это сообщение
2 Всего
Репутация: обеспечил(а) себе прекрасное будущее (1681)
По умолчанию

Цитата:
Сообщение от osmanpasha Посмотреть сообщение
оптический датчик занятости пути
а почему бы просто не использовать токовые датчики?
__________________
🎉 мой канал в телеграм @aleksandr_ru_blog
Rebel вне форума  
Вверх
Старый 16.01.2021, 13:39   #16
osmanpasha
Заглянувший
 
Регистрация: 16.07.2019
Адрес: -
Сообщений: 80
Сказал(а) 'не согласен(а)'!: 2
Сказали 'не согласен'! 0 раз(а) в 0 сообщениях
Сказал(а) спасибо: 50
Поблагодарили 125 раз(а) в 46 сообщениях
Все 'Спасибо' этого пользователя. :
0 за это сообщение
0 Всего
Репутация: скоро придёт к известности (125)
По умолчанию

Цитата:
Сообщение от Rebel Посмотреть сообщение
а почему бы просто не использовать токовые датчики?
Во-первых, насколько я понимаю, для этого надо "пилить" рельсы на участки, вести независимые провода к каждому участку, модифицировать подвижной состав с колпарами, т.е. выглядит как сложнее и более времязатратно, чем прикрепить под рельсы оптодатчики.

Во-вторых, если бы я имел целью иметь макет, я бы точно взял готовые компоненты с токовыми датчиками, но поскольку у меня цель именно сделать макет (причем в стиле DIY), то оптодатчики показались мне попроще, что ли. Возможно, это потому, что в жд моделизме я не имел дела ни с теми, ни с другими, а с оптодатчиками работал в робототехнике.
osmanpasha вне форума  
Вверх
Старый 16.01.2021, 14:37   #17
Saddam
Местный
 
Аватар для Saddam
 
Регистрация: 06.09.2013
Адрес: Багдад
Сообщений: 7,453
Сказал(а) 'не согласен(а)'!: 41
Сказали 'не согласен'! 75 раз(а) в 60 сообщениях
Сказал(а) спасибо: 4,790
Поблагодарили 6,654 раз(а) в 2,922 сообщениях
Все 'Спасибо' этого пользователя. :
0 за это сообщение
0 Всего
Репутация: репутация неоспорима (6651)
По умолчанию

Цитата:
Сообщение от osmanpasha Посмотреть сообщение
Во-первых, насколько я понимаю, для этого надо "пилить" рельсы на участки, вести независимые провода к каждому участку, модифицировать подвижной состав с колпарами, т.е. выглядит как сложнее и более времязатратно, чем прикрепить под рельсы оптодатчики.
Нет подход неверный, оптические датчики не надежны и могут дать ложный ответ, токовые этого недостатка лишены. Пилить нужно флексы, если вы используете рельсовые секции то достаточно изолирующих вставок, модифицировать нужно только грузовые вагоны и то, только в том случаи если вы хотите отслеживать их занятость, при это достаточно только последний и первый вагон в составе. Вся модификация это припайка/приклейка резистора.
Saddam вне форума  
Вверх
Пользователь сказал cпасибо:
Старый 16.01.2021, 17:16   #18
Qvan22
Заглянувший
 
Регистрация: 26.01.2013
Адрес: Минск
Сообщений: 204
Сказал(а) 'не согласен(а)'!: 0
Сказали 'не согласен'! 1 раз в 1 сообщении
Сказал(а) спасибо: 458
Поблагодарили 454 раз(а) в 135 сообщениях
Все 'Спасибо' этого пользователя. :
0 за это сообщение
0 Всего
Репутация: - луч света в тёмном царстве (454)
По умолчанию

Цитата:
Сообщение от osmanpasha Посмотреть сообщение
Во-вторых, если бы я имел целью иметь макет, я бы точно взял готовые компоненты с токовыми датчиками, но поскольку у меня цель именно сделать макет (причем в стиле DIY), то оптодатчики показались мне попроще, что ли. Возможно, это потому, что в жд моделизме я не имел дела ни с теми, ни с другими, а с оптодатчиками работал в робототехнике.
"Токовый датчик" делается из очень простых элементов, думаю они у вас даже дома с запасом имеются. Как вариант соберите 1-2 на макетной плате и потестируйте их вместе с вашим вариантом...
P.S. Тут наверное почти у всех, кто делает сам электронику для железной дороги, обратная связь сделана на датчиках тока.
Qvan22 вне форума  
Вверх
2 пользователя(ей) сказали cпасибо:
Старый 16.01.2021, 18:13   #19
osmanpasha
Заглянувший
 
Регистрация: 16.07.2019
Адрес: -
Сообщений: 80
Сказал(а) 'не согласен(а)'!: 2
Сказали 'не согласен'! 0 раз(а) в 0 сообщениях
Сказал(а) спасибо: 50
Поблагодарили 125 раз(а) в 46 сообщениях
Все 'Спасибо' этого пользователя. :
0 за это сообщение
0 Всего
Репутация: скоро придёт к известности (125)
По умолчанию

Цитата:
Сообщение от Saddam Посмотреть сообщение
оптические датчики не надежны и могут дать ложный ответ, токовые этого недостатка лишены
Можно подробнее, в чем природа ложных ошибок оптического датчика? Если вы про изменяющуюся внешнюю освещенность, то я как раз попытался исправить этот недостаток оптических датчиков. И я, кстати, наоборот, читал про токовые датчики, что они не очень чувствительны к малым токам, требуют калибровки, то есть довольно деликатные устройства.

Цитата:
Сообщение от Qvan22 Посмотреть сообщение
"Токовый датчик" делается из очень простых элементов
Вы имеете в виду схемы на трансформаторе или на чипе с датчиком холла? У меня нет ни того, ни другого) И мне вообще даже не приходило в голову тестировать этот подход, потому что, ну, кажется что мороки много, и да и недостатки оптических датчков неочевидны. Надо попробовать.

Кстати, в случае с токовыми датчиками, к какому блоку из трех должна относиться стрелка? В каком месте там надо изоляторы ставить?
osmanpasha вне форума  
Вверх
Старый 16.01.2021, 18:50   #20
Qvan22
Заглянувший
 
Регистрация: 26.01.2013
Адрес: Минск
Сообщений: 204
Сказал(а) 'не согласен(а)'!: 0
Сказали 'не согласен'! 1 раз в 1 сообщении
Сказал(а) спасибо: 458
Поблагодарили 454 раз(а) в 135 сообщениях
Все 'Спасибо' этого пользователя. :
0 за это сообщение
0 Всего
Репутация: - луч света в тёмном царстве (454)
По умолчанию

Цитата:
Сообщение от osmanpasha Посмотреть сообщение
Вы имеете в виду схемы на трансформаторе или на чипе с датчиком холла?
Тут наверное само название "токовый датчик" может вводить в заблуждение. Имеется ввиду простенькая схема состоящая из оптопары, диодного моста и резистора.
Qvan22 вне форума  
Вверх
Старый 16.01.2021, 18:52   #21
Alexmit
Местный
 
Регистрация: 29.06.2010
Адрес: Москва
Сообщений: 2,837
Сказал(а) 'не согласен(а)'!: 6
Сказали 'не согласен'! 2 раз(а) в 2 сообщениях
Сказал(а) спасибо: 972
Поблагодарили 2,652 раз(а) в 1,569 сообщениях
Все 'Спасибо' этого пользователя. :
0 за это сообщение
1 Всего
Репутация: репутация неоспорима (2678)
По умолчанию

Цитата:
Сообщение от osmanpasha Посмотреть сообщение
Кстати, в случае с токовыми датчиками, к какому блоку из трех должна относиться стрелка? В каком месте там надо изоляторы ставить?
Вот здесь недавно разбирали:
http://forum.modelldepo.ru/showthread.php?t=20333
Alexmit вне форума  
Вверх
Старый 16.01.2021, 20:19   #22
Saddam
Местный
 
Аватар для Saddam
 
Регистрация: 06.09.2013
Адрес: Багдад
Сообщений: 7,453
Сказал(а) 'не согласен(а)'!: 41
Сказали 'не согласен'! 75 раз(а) в 60 сообщениях
Сказал(а) спасибо: 4,790
Поблагодарили 6,654 раз(а) в 2,922 сообщениях
Все 'Спасибо' этого пользователя. :
0 за это сообщение
0 Всего
Репутация: репутация неоспорима (6651)
По умолчанию

Цитата:
Сообщение от osmanpasha Посмотреть сообщение
Можно подробнее, в чем природа ложных ошибок оптического датчика?
Нет прямой связи, только косвенная, засвет возможен, причем как внешними источниками так и например датчик может оказаться в промежутке вагонов.
Saddam вне форума  
Вверх
Старый 16.01.2021, 21:28   #23
Rebel
Местный
 
Аватар для Rebel
 
Регистрация: 22.11.2010
Адрес: Москва
Сообщений: 3,038
Сказал(а) 'не согласен(а)'!: 4
Сказали 'не согласен'! 29 раз(а) в 19 сообщениях
Сказал(а) спасибо: 1,707
Поблагодарили 1,646 раз(а) в 830 сообщениях
Все 'Спасибо' этого пользователя. :
0 за это сообщение
2 Всего
Репутация: обеспечил(а) себе прекрасное будущее (1681)
По умолчанию

Цитата:
Сообщение от osmanpasha Посмотреть сообщение
к какому блоку из трех должна относиться стрелка?
вот моя выжимка из длинного обсуждения по ссылке выше
__________________
🎉 мой канал в телеграм @aleksandr_ru_blog
Rebel вне форума  
Вверх
Старый 20.01.2021, 11:39   #24
osmanpasha
Заглянувший
 
Регистрация: 16.07.2019
Адрес: -
Сообщений: 80
Сказал(а) 'не согласен(а)'!: 2
Сказали 'не согласен'! 0 раз(а) в 0 сообщениях
Сказал(а) спасибо: 50
Поблагодарили 125 раз(а) в 46 сообщениях
Все 'Спасибо' этого пользователя. :
0 за это сообщение
0 Всего
Репутация: скоро придёт к известности (125)
По умолчанию

Цитата:
Сообщение от Rebel Посмотреть сообщение
вот моя выжимка из длинного обсуждения по ссылке выше
Спасибо! Очень информативно!

Цитата:
Сообщение от Saddam Посмотреть сообщение
например датчик может оказаться в промежутке вагонов.
Ну это, казалось бы, можно решить защелкиванием показаний датчика на секунду-другую. Так-то и токовые датчики надо защелкивать, чтобы датчик не шумел из-за плохого контакта, например.

Цитата:
Сообщение от Qvan22 Посмотреть сообщение
"Токовый датчик" делается из очень простых элементов, думаю они у вас даже дома с запасом имеются.
Цитата:
Сообщение от Qvan22 Посмотреть сообщение
Имеется ввиду простенькая схема состоящая из оптопары, диодного моста и резистора.
Понятно, спасибо! Оптопары дома почему-то не нашлось, проверю на макетке, как раздобуду... Оптические датчики я еще не производил и платы не заказывал, возможно, что и сменю принцип на токовые датчики.
osmanpasha вне форума  
Вверх
Старый 26.04.2021, 12:12   #25
osmanpasha
Заглянувший
 
Регистрация: 16.07.2019
Адрес: -
Сообщений: 80
Сказал(а) 'не согласен(а)'!: 2
Сказали 'не согласен'! 0 раз(а) в 0 сообщениях
Сказал(а) спасибо: 50
Поблагодарили 125 раз(а) в 46 сообщениях
Все 'Спасибо' этого пользователя. :
0 за это сообщение
0 Всего
Репутация: скоро придёт к известности (125)
По умолчанию Светодиодный декодер на PCA9685

Обновление проекта светового декодера.

Испытания декодера для светофоров на чипе MBI5026 показали следующие недостатки:
Чип позволяет задать общий ток для всех светодиодов сразу с помощью резистора. Однако, светодиоды разного цвета от одного и того же тока светят совершенно по-разному. Например, зеленый 3мм светодиод от 5 мА уже выжигает глаза, а желтый и красный - нормально светятся, можно смотреть.
Попытка управлять яркостью отдельных светодиодов программно с помощью софтварного ШИМа себя не оправдала - для зеленого светодиода нужна была слишком малая скважность, и это приводило к заметному мерцанию (особенно при плавном розжиге). При повышении частоты таймера под ШИМ, он начинал конфликтовать с таймером LocoNet, и происходила потеря сообщений.

Таким образом, необходимо сделать новую версию светодиодного декодера на другом драйвере. Было решено не изобретать еще один велосипед, а взять широко распространенный ШИМ-драйвер pca9685, управляемый по I2C. Он позволяет управлять яркостью каждого из 16-ти каналов независимо, и ресурсы микроконтроллера на это не тратятся. Из-за особенности драйвера при работе со светодиодами, подключенными напрямую без усилительного транзистора, необходимо поставить управляющий транзистор, чтобы держать светодиоды выключенными на старте.

Бонусом еще есть возможность управлять сервами, но их на макете пока нет.

Еще одним бонусом идет возможность управлять несколькими драйверами с одного декодера, небольшой макет можно вообще освещать одним декодером.

Посмотрев на цены, решено было использовать готовую платку c pca9685 (у китайцев стоит 150р, тогда как отдельный чип - под 100р).

Под новый декодер разрабатывается новая плата. Плата в этот раз состоит из двух половинок. Одна половина - LocoNet-обвязка с питанием, эта часть одинакова для всех LocoNet-декодеров, и ее можно будет использовать в других проектах. Другая половина -- собственно ардуина, транзистор, разъем для подключения платы pca9685, кнопка, светодиод и гребенка с выведенными свободными пинами микроконтроллера.
Миниатюры:
Нажмите на изображение для увеличения
Название: Untitled.jpg
Просмотров: 85
Размер:	73.3 Кб
ID:	192036
osmanpasha вне форума  
Вверх
Пользователь сказал cпасибо:
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Loconet-I2C модуль BR95009 Arduino 68 17.12.2023 21:25
Проект Loconet серво- и свето- декодера shalex Arduino 106 20.03.2020 09:59
Loconet детектор занятости с бустером и автореверсером shalex Arduino 460 10.09.2019 15:01
Табло с расписанием под управлением Arduino + Loconet shalex Arduino 59 10.02.2019 22:34
XpressNet и LocoNet AleksSF Arduino 134 11.02.2018 10:34


Текущее время: 23:18. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc. Перевод: zCarot
Copyright © ModelldepO.ru 2006 -