Управление стрелками на аналоговом макете.

Вопросы и ответы связанные с цифровым управлением, аналоговой автоматикой и их элементами
vladzdsim
Сообщения: 14
Зарегистрирован: Вс янв 25, 2015 3:40 am
Имя: влад
Благодарил (а): 1 раз

Управление стрелками на аналоговом макете.

Непрочитанное сообщение vladzdsim »

Добрый день, знатокам жд моделизма! Строю макет , на котором 21 стрелка, макет аналоговый, для себя-детей-внуков поиграть, на цифру пока не замахиваюсь, т.к. накладно да и с электроникой слабо знаком. Как можно проще осуществить управление стрелками на макете ( типа кнопку нажал-перевёл), читал тему viewtopic.php?f=30&t=14196 но автор её, к сожалению, уже отошёл в мир иной, поэтому более подробно узнать не у кого. Планирую использовать сервоприводы для стрелок, как предельно проще сделать управление ими. Я так понял, сервы без ардуино работать сами не будут? Кто в теме, может реально осуществил такую затею на макете ( именно на аналоге) прошу помогите новичку во всех подробностях.

Аватара пользователя
BackFi
Сообщения: 141
Зарегистрирован: Чт дек 25, 2008 11:23 pm
Имя: Валерий
Откуда: Мск.
Благодарил (а): 9 раз
Поблагодарили: 9 раз

Re: Управление стрелками на аналоговом макете.

Непрочитанное сообщение BackFi »

Когда 3 года тому столкнулся с использованием серв для перевода десятка стрелок, помогла тема на соседнем форуме:
http://forum.modelldepo.ru/showthread.php?t=18630
Пока разбирался с сутью работы скетчей для ардуины, дождался заказанных с известного китайского магазина серв, Меги, кнопок, светодиодов и шлейфов.
Скажу прямо - времени на изучение потрачено много, но... Оно того стоит!!!
Спаял, залил, проверил работу, загнал в пульт с индикацией светодиодами полож. каждой стрелки (красн-зелён.).
В итоге: 14 стрелок НО, пульт размером А4, куча цв. проводов в каналах.
Со временем пришлось добавить фильтры для каждой из серв (паял сам ради экономии), т.к. длина некоторых управляющих проводов превышала 5м.
Жду время, что б добавить рядом с каждой стрелком ещё и маневровый светофор (красн-зелён.) от той же Меги.

Я Вам накидаю ссылок, что сохранились в компе с того времени, а вы уж решайте если в них толк:
https://www.youtube.com/watch?v=m73Xh0zILnw
https://www.youtube.com/watch?v=m73Xh0zILnw
http://techi-news.com/Arduino/%D0%9F%D0 ... BA_Arduino
http://arduino.ru/Reference/Library/Servo
https://pastebin.com/YLhHurzu
https://github.com/rogerclarkmelbourne/ ... xxx_v2.pdf
http://forum.modelldepo.ru/showthread.p ... post327141
https://aliexpress.ru/item/400030031415 ... 1240386937
https://aliexpress.ru/item/100500202913 ... hweb201603_

Удачи!
Последний раз редактировалось BackFi Ср апр 07, 2021 12:09 pm, всего редактировалось 1 раз.

vladzdsim
Сообщения: 14
Зарегистрирован: Вс янв 25, 2015 3:40 am
Имя: влад
Благодарил (а): 1 раз

Re: Управление стрелками на аналоговом макете.

Непрочитанное сообщение vladzdsim »

Благодарю за помощь и ссылки. Начну изучение с нуля. Ещё такой вопрос. У меня макет разборный из 2-х половин ( каждая 1,40м х 1,50м) , на одной половине 12 стрелок, на другой 9 стрелок. пути и освещение у меня автоматически соединяется при сборе макета при помощи 4х металлических пальцев и пружин, а вот как лучше поступить со стрелками? Делать один пульт или лучше сразу два, на каждую половину отдельно, чтобы избежать лишних соединений и длины проводов?

Аватара пользователя
BackFi
Сообщения: 141
Зарегистрирован: Чт дек 25, 2008 11:23 pm
Имя: Валерий
Откуда: Мск.
Благодарил (а): 9 раз
Поблагодарили: 9 раз

Re: Управление стрелками на аналоговом макете.

Непрочитанное сообщение BackFi »

vladzdsim писал(а):
Вт апр 06, 2021 8:21 pm
Делать один пульт или лучше сразу два, на каждую половину отдельно, чтобы избежать лишних соединений и длины проводов?
Тут нужно решить самому исходя из того, как удобно будет пользоваться.
Огромный недостаток пульта на ардуино - это множество выходящих из него проводов.
Это шлейф из +5V, -5V, управляющий сигнал на каждую стрелку, плюс провод в розетку для блока питания 5v.
Хорошо решается с помощью гребёнки, типа такого:
Изображение

вот, в компе обнаружил скетч для управления 14-тью сервоприводами стрелок и 28-мью светодиодами положения для Arduino Mega (но не уверен, что это последний, закаченный в мою Мегу :cry: , бывалые поправят):
____________________________________________________________________________
//подключаемые библиотеки
#include <EEPROM.h>
#include <Bounce2.h>
#include <Servo.h>

//переменные конфигурации
int servoAngles[][2]={{0,90},{0,90},{0,90},{0,90},{0,90},{0,90},{0,90},{0,90},{0,90},{0,90},{0,90},{0,90},{0,90},{0,90}}; // углы отклонения сервоприводов {"прямо", "в бок"}
byte servoReverce[]={0,0,0,0,0,0,0,0,0,0,0,0,0,0}; //реверс углов сервоприводов (если в положении "прямо" угол задан во втором элементе предыдущего массива, то поставить 1.)
int servoSpeed[]={6,6,6,6,6,6,6,6,6,6,6,6,6,6}; //скорость вращения сервопривода. указано количество миллисекунд поворота на 1 градус

//переменные определяюще ножки подключения
int normalLed[]={A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13}; //ножки подключения светодиода показывающего прямое положение стрелки
int routeLed[]={38,39,40,41,42,43,45,46,47,48,50,51,52,53}; //ножки подключения светодиода показывающего положение стрелки "в бок"
int servoPins[]={2,3,4,5,6,7,8,9,10,11,12,13,44,49}; //ножки подключения провода управления сервопривода
int buttonPins[]={22,23,24,25,26,27,28,29,30,31,32,33,34,35}; //ножки подключения кнопок переключения

//переменные используемые при повороте сервопривода
byte CurrentPosition[]={0,0,0,0,0,0,0,0,0,0,0,0,0,0}; //текущее положение сервопривода. 0=прямо, 1=в бок.
int currentAngle[]={0,0,0,0,0,0,0,0,0,0,0,0,0,0};//текущий угол поворота сервопривода
unsigned long nextTime[]={0,0,0,0,0,0,0,0,0,0,0,0,0,0};// время следующего поворота на 1 градус
unsigned long currentTime; //текущее время
byte dir;// направление поворота сервопривода
____________________________________________________________________________________

vladzdsim
Сообщения: 14
Зарегистрирован: Вс янв 25, 2015 3:40 am
Имя: влад
Благодарил (а): 1 раз

Re: Управление стрелками на аналоговом макете.

Непрочитанное сообщение vladzdsim »

Прошу прощения, ещё вопрос. Если на каждую половину делать свой пульт управления стрелками какую модель брать ( 2 шт разумеется ) мегу, уно, нано, про-мини, так чтобы хватило на 12 стрелок. Или можно с одним пультом одну ардуину и два PCA9685 для подключения серв в 2х частях макета поставить и соединить кабелем? ( всего на макете 21 стрелка 12+9 ) Просто хочу заказывать детали и пока не понимаю сколько чего нужно.

Аватара пользователя
railmodel
Сообщения: 995
Зарегистрирован: Вс авг 23, 2009 9:12 am
Откуда: Киев
Благодарил (а): 115 раз
Поблагодарили: 80 раз
Контактная информация:

Re: Управление стрелками на аналоговом макете.

Непрочитанное сообщение railmodel »

[Оффтопик]
BackFi писал(а):
Ср апр 07, 2021 12:07 pm
вот, в компе обнаружил скетч
Программный код удобнее оформлять тегом [code]:

Код: Выделить всё

//подключаемые библиотеки
#include <EEPROM.h>
#include <Bounce2.h>
#include <Servo.h>

//переменные конфигурации
int servoAngles[][2]={{0,90},{0,90},{0,90},{0,90},{0,90},{0,90},{0,90},{0,90},{0,90},{0,90},{0,90},{0,90},{0,90},{0,90}}; // углы отклонения сервоприводов {"прямо", "в бок"}
byte servoReverce[]={0,0,0,0,0,0,0,0,0,0,0,0,0,0}; //реверс углов сервоприводов (если в положении "прямо" угол задан во втором элементе предыдущего массива, то поставить 1.)
int servoSpeed[]={6,6,6,6,6,6,6,6,6,6,6,6,6,6}; //скорость вращения сервопривода. указано количество миллисекунд поворота на 1 градус

//переменные определяюще ножки подключения
int normalLed[]={A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13}; //ножки подключения светодиода показывающего прямое положение стрелки
int routeLed[]={38,39,40,41,42,43,45,46,47,48,50,51,52,53}; //ножки подключения светодиода показывающего положение стрелки "в бок"
int servoPins[]={2,3,4,5,6,7,8,9,10,11,12,13,44,49}; //ножки подключения провода управления сервопривода
int buttonPins[]={22,23,24,25,26,27,28,29,30,31,32,33,34,35}; //ножки подключения кнопок переключения

//переменные используемые при повороте сервопривода
byte CurrentPosition[]={0,0,0,0,0,0,0,0,0,0,0,0,0,0}; //текущее положение сервопривода. 0=прямо, 1=в бок.
int currentAngle[]={0,0,0,0,0,0,0,0,0,0,0,0,0,0};//текущий угол поворота сервопривода
unsigned long nextTime[]={0,0,0,0,0,0,0,0,0,0,0,0,0,0};// время следующего поворота на 1 градус
unsigned long currentTime; //текущее время
byte dir;// направление поворота сервопривода

Аватара пользователя
Василий
Модератор
Сообщения: 9441
Зарегистрирован: Чт мар 06, 2008 9:03 am
Имя: Василий Васильчиков
Откуда: Северо-западное Болото
Благодарил (а): 344 раза
Поблагодарили: 458 раз
Контактная информация:

Re: Управление стрелками на аналоговом макете.

Непрочитанное сообщение Василий »

vladzdsim писал(а):
Ср апр 07, 2021 12:45 pm
Прошу прощения, ещё вопрос. Если на каждую половину делать свой пульт управления стрелками какую модель брать ( 2 шт разумеется ) мегу, уно, нано, про-мини, так чтобы хватило на 12 стрелок. Или можно с одним пультом одну ардуину и два PCA9685 для подключения серв в 2х частях макета поставить и соединить кабелем? ( всего на макете 21 стрелка 12+9 ) Просто хочу заказывать детали и пока не понимаю сколько чего нужно.
Учитывая цену PCA9685, я бы взял их. Возни меньше чем с реализацией управления сервами на самой ардуине. i2c прекрасно работает на любой ардуине.
In der Grosse Familie nicht der клювом клац-клац!
--------------------------------------------------------------------------
Не натягивайте сову на глобус!

Ответить

Вернуться в «Цифровое управление, Аналоговая автоматика и их элементы»