|
Электрика и DCC Обсуждение цифрового и аналогового управления |
|
Опции темы | Опции просмотра |
08.08.2017, 21:40 | #101 |
Местный
Регистрация: 08.07.2015
Адрес: МО
Сообщений: 2,865
Сказал(а) 'не согласен(а)'!: 0
Сказали 'не согласен'! 3 раз(а) в 2 сообщениях
Сказал(а) спасибо: 4,667
Поблагодарили 3,281 раз(а) в 1,177 сообщениях
Репутация: репутация неоспорима (3292)
|
|
08.08.2017, 22:55 | #102 |
Местный
Регистрация: 06.03.2014
Адрес: Москва
Сообщений: 1,741
Сказал(а) 'не согласен(а)'!: 5
Сказали 'не согласен'! 9 раз(а) в 7 сообщениях
Сказал(а) спасибо: 553
Поблагодарили 2,794 раз(а) в 755 сообщениях
Репутация: репутация неоспорима (2791)
|
|
09.08.2017, 23:11 | #103 | ||
Заглянувший
Регистрация: 07.09.2015
Адрес: SPb
Сообщений: 76
Сказал(а) 'не согласен(а)'!: 0
Сказали 'не согласен'! 0 раз(а) в 0 сообщениях
Сказал(а) спасибо: 8
Поблагодарили 6 раз(а) в 6 сообщениях
Репутация: пока неопределено (6)
|
Цитата:
по информации я скорее разберусь как под свои нужды серво-декодер на арудино переделать и управлять по дсс )) Цитата:
суть задачи - передать значения 2х потенциометров ( скорость ) и нескольких кнопок и переключателей ( пусть буду 2 - направления и кнопки выбора назначения для потенциометров.Это хотелось бы передавать с пульта на а про мини на любой ( важный момент ) из модулей,кроме перегонов,хотя можно и их на них,но это лишний моторшилд ставить.Обратная связь не нужна.Добавить LCD и отражать выбранный режим и значение потенциометра было бы неплохо.Написать скетч для прямого управления в таком режиме я в состоянии,проблема передаче данных с пульта на ардуино на модулях.Вопросы со стрелками / сигналами решаются на модулях локально. |
||
09.08.2017, 23:33 | #104 | ||
Местный
Регистрация: 06.03.2014
Адрес: Москва
Сообщений: 1,741
Сказал(а) 'не согласен(а)'!: 5
Сказали 'не согласен'! 9 раз(а) в 7 сообщениях
Сказал(а) спасибо: 553
Поблагодарили 2,794 раз(а) в 755 сообщениях
Репутация: репутация неоспорима (2791)
|
в чем проблема то? я вам пример привел. пульт пишет в сериал порт текстовую строку в которой указан адрес модуля, для которого предназначена команда.
модули считывают данные и если они предназначены им, то чтото выполняют. стыкуйте по RS485 http://forum.amperka.ru/threads/rs-4...ni.7577/page-2 |
||
09.08.2017, 23:47 | #105 | |
Заглянувший
Регистрация: 07.09.2015
Адрес: SPb
Сообщений: 76
Сказал(а) 'не согласен(а)'!: 0
Сказали 'не согласен'! 0 раз(а) в 0 сообщениях
Сказал(а) спасибо: 8
Поблагодарили 6 раз(а) в 6 сообщениях
Репутация: пока неопределено (6)
|
Цитата:
по примеру передачи по RS485 - картина понятна,нвроде попроще чем i2c даже ) но: как зашифровать данные каждой манипуляции с потенциометром и кнопками ? ( в моих экспериментах значение потенциометра 0-255 передавались как команда и на нее срабатывали светодиоды, запрограмировнные зажигаться при =1, =2 и т.д. ) |
|
10.08.2017, 00:14 | #106 |
Местный
Регистрация: 29.06.2010
Адрес: Москва
Сообщений: 2,842
Сказал(а) 'не согласен(а)'!: 6
Сказали 'не согласен'! 2 раз(а) в 2 сообщениях
Сказал(а) спасибо: 974
Поблагодарили 2,656 раз(а) в 1,572 сообщениях
Репутация: репутация неоспорима (2702)
|
|
10.08.2017, 00:41 | #107 | |
Местный
Регистрация: 06.03.2014
Адрес: Москва
Сообщений: 1,741
Сказал(а) 'не согласен(а)'!: 5
Сказали 'не согласен'! 9 раз(а) в 7 сообщениях
Сказал(а) спасибо: 553
Поблагодарили 2,794 раз(а) в 755 сообщениях
Репутация: репутация неоспорима (2791)
|
Цитата:
зачем вам шивровать? в пульте опрашиваете состояние входа потенциометра, если он изменился отправляете в серийный порт строку типа <r 128> - где 128 - это считанное значение кнопку нажали - отправляйте <b 1> отпустили <b 0> в DCC++ отправляется одна стока, в которой содержится информация о том какому декодеру отправлена команда, какая скорость и направление, а также ячейка памяти в которой нужно это сохранить. это не мой способ это протокол обмена для DCC++ ссылка на пульт для которой и была да что душе угодно можно придумать, было бы желание ДУМАТЬ и ЧИТАТЬ то что пишут другие, а не ждать готового скетча со схемой |
|
10.08.2017, 00:54 | #108 |
Местный
Регистрация: 29.06.2010
Адрес: Москва
Сообщений: 2,842
Сказал(а) 'не согласен(а)'!: 6
Сказали 'не согласен'! 2 раз(а) в 2 сообщениях
Сказал(а) спасибо: 974
Поблагодарили 2,656 раз(а) в 1,572 сообщениях
Репутация: репутация неоспорима (2702)
|
|
10.08.2017, 01:01 | #109 |
Местный
Регистрация: 06.03.2014
Адрес: Москва
Сообщений: 1,741
Сказал(а) 'не согласен(а)'!: 5
Сказали 'не согласен'! 9 раз(а) в 7 сообщениях
Сказал(а) спасибо: 553
Поблагодарили 2,794 раз(а) в 755 сообщениях
Репутация: репутация неоспорима (2791)
|
|
10.08.2017, 09:55 | #110 | ||
Заглянувший
Регистрация: 26.01.2013
Адрес: Минск
Сообщений: 204
Сказал(а) 'не согласен(а)'!: 0
Сказали 'не согласен'! 1 раз в 1 сообщении
Сказал(а) спасибо: 458
Поблагодарили 454 раз(а) в 135 сообщениях
Репутация: - луч света в тёмном царстве (454)
|
Цитата:
Цитата:
Скрытый текст
|
||
10.08.2017, 11:07 | #111 |
Местный
Регистрация: 06.03.2014
Адрес: Москва
Сообщений: 1,741
Сказал(а) 'не согласен(а)'!: 5
Сказали 'не согласен'! 9 раз(а) в 7 сообщениях
Сказал(а) спасибо: 553
Поблагодарили 2,794 раз(а) в 755 сообщениях
Репутация: репутация неоспорима (2791)
|
зачем? коллеге была приведена ссылка на готовый пульт с готовым же протоколом.
поясню, почему я настаиваю именно на этом варианте. а вдруг, захочется оцифроваться, а тут раз-и пульт то уже готов... КС DCC++ собрать из того, что на макете установлено... UNO+MotorShield и вперед.... в файле https://github.com/DccPlusPlus/BaseS...ialCommand.cpp описаны все "пакеты" данного протокола, в функции SerialCommand:arse КМК, коллега не совсем верно понимает значение слова "протокол", отсюда и непонимание, что делать. На сколько я понимаю, коллегу интересует три момента: 1. управление локомотивом Код:
/***** SET ENGINE THROTTLES USING 128-STEP SPEED CONTROL ****/ case 't': // <t REGISTER CAB SPEED DIRECTION> /* * sets the throttle for a given register/cab combination * * REGISTER: an internal register number, from 1 through MAX_MAIN_REGISTERS (inclusive), to store the DCC packet used to control this throttle setting * CAB: the short (1-127) or long (128-10293) address of the engine decoder * SPEED: throttle speed from 0-126, or -1 for emergency stop (resets SPEED to 0) * DIRECTION: 1=forward, 0=reverse. Setting direction when speed=0 or speed=-1 only effects directionality of cab lighting for a stopped train * * returns: <T REGISTER SPEED DIRECTION> * */ Код:
/***** OPERATE STATIONARY ACCESSORY DECODERS ****/ case 'a': // <a ADDRESS SUBADDRESS ACTIVATE> /* * turns an accessory (stationary) decoder on or off * * ADDRESS: the primary address of the decoder (0-511) * SUBADDRESS: the subaddress of the decoder (0-3) * ACTIVATE: 1=on (set), 0=off (clear) * * Note that many decoders and controllers combine the ADDRESS and SUBADDRESS into a single number, N, * from 1 through a max of 2044, where * * N = (ADDRESS - 1) * 4 + SUBADDRESS + 1, for all ADDRESS>0 * * OR * * ADDRESS = INT((N - 1) / 4) + 1 * SUBADDRESS = (N - 1) % 4 * * returns: NONE Код:
/***** CREATE/EDIT/REMOVE/SHOW & OPERATE AN OUTPUT PIN ****/ case 'Z': // <Z ID ACTIVATE> /* * <Z ID ACTIVATE>: sets output ID to either the "active" or "inactive" state * * ID: the numeric ID (0-32767) of the output to control * ACTIVATE: 0 (active) or 1 (inactive) * * returns: <Y ID ACTIVATE> or <X> if output ID does not exist * * *** SEE OUTPUTS.CPP FOR COMPLETE INFO ON THE DIFFERENT VARIATIONS OF THE "O" COMMAND * USED TO CREATE/EDIT/REMOVE/SHOW TURNOUT DEFINITIONS */ Код:
/***** TURN ON POWER FROM MOTOR SHIELD TO TRACKS ****/ case '1': // <1> /* * enables power from the motor shield to the main operations and programming tracks * * returns: <p1> */ /***** TURN OFF POWER FROM MOTOR SHIELD TO TRACKS ****/ case '0': // <0> /* * disables power from the motor shield to the main operations and programming tracks * * returns: <p0> */ |
10.08.2017, 11:50 | #112 |
Местный
Регистрация: 08.07.2015
Адрес: МО
Сообщений: 2,865
Сказал(а) 'не согласен(а)'!: 0
Сказали 'не согласен'! 3 раз(а) в 2 сообщениях
Сказал(а) спасибо: 4,667
Поблагодарили 3,281 раз(а) в 1,177 сообщениях
Репутация: репутация неоспорима (3292)
|
Еще добавить в протокол программирование CV, если еще нет, и будет совсем красота
|
10.08.2017, 16:47 | #113 | |
Местный
Регистрация: 29.06.2010
Адрес: Москва
Сообщений: 2,842
Сказал(а) 'не согласен(а)'!: 6
Сказали 'не согласен'! 2 раз(а) в 2 сообщениях
Сказал(а) спасибо: 974
Поблагодарили 2,656 раз(а) в 1,572 сообщениях
Репутация: репутация неоспорима (2702)
|
Цитата:
---------- Сообщение добавлено в 16:47 ---------- Предыдущие сообщение было в 16:44 ---------- В RASCII почти то же самое. Вот спор и возник какой протокол лучше. |
|
Пользователь сказал cпасибо: |
11.08.2017, 10:48 | #114 | |
Местный
Регистрация: 29.06.2010
Адрес: Москва
Сообщений: 2,842
Сказал(а) 'не согласен(а)'!: 6
Сказали 'не согласен'! 2 раз(а) в 2 сообщениях
Сказал(а) спасибо: 974
Поблагодарили 2,656 раз(а) в 1,572 сообщениях
Репутация: репутация неоспорима (2702)
|
По моему в тему.
Цитата:
|
|
11.08.2017, 11:18 | #115 |
Местный
Регистрация: 06.03.2014
Адрес: Москва
Сообщений: 1,741
Сказал(а) 'не согласен(а)'!: 5
Сказали 'не согласен'! 9 раз(а) в 7 сообщениях
Сказал(а) спасибо: 553
Поблагодарили 2,794 раз(а) в 755 сообщениях
Репутация: репутация неоспорима (2791)
|
да ни какой не лучше... хоть свой изобретите...
хоть WiThrottle реализуйте http://jmri.sourceforge.net/help/en/...Protocol.shtml и тогда у вас нужды пульт собирать не будет Можно будет с планшета или смартфона управлять ---------- Сообщение добавлено в 11:18 ---------- Предыдущие сообщение было в 11:16 ---------- программирование CV в аналоге? вы о чем? я привел кусок кода относительно того, что можно использовать в аналоге. а так, ну почитайте хоть соответствующую тему чтоли http://forum.modelldepo.ru/showthread.php?t=18095 |
11.08.2017, 11:30 | #116 | |
Заглянувший
Регистрация: 07.09.2015
Адрес: SPb
Сообщений: 76
Сказал(а) 'не согласен(а)'!: 0
Сказали 'не согласен'! 0 раз(а) в 0 сообщениях
Сказал(а) спасибо: 8
Поблагодарили 6 раз(а) в 6 сообщениях
Репутация: пока неопределено (6)
|
Цитата:
строчный вариант упомянутый в имхо понятней чем |
|
11.08.2017, 11:48 | #117 |
Местный
Регистрация: 06.03.2014
Адрес: Москва
Сообщений: 1,741
Сказал(а) 'не согласен(а)'!: 5
Сказали 'не согласен'! 9 раз(а) в 7 сообщениях
Сказал(а) спасибо: 553
Поблагодарили 2,794 раз(а) в 755 сообщениях
Репутация: репутация неоспорима (2791)
|
не путайте физический уровень с уровнем приложений....
RS485 в вашем случае - это просто среда передачи электрических сигналов. Вы делаете вывод в серийный порт Serial.print('<t 1 1 128 1>'); на этом ваша головная боль заканчивается, и начинается головная боль микросхемы max485 установленной на плате конвертора UART2RS485 |
11.08.2017, 12:20 | #118 | |
Местный
Регистрация: 29.06.2010
Адрес: Москва
Сообщений: 2,842
Сказал(а) 'не согласен(а)'!: 6
Сказали 'не согласен'! 2 раз(а) в 2 сообщениях
Сказал(а) спасибо: 974
Поблагодарили 2,656 раз(а) в 1,572 сообщениях
Репутация: репутация неоспорима (2702)
|
Цитата:
Сначала включаем MAX485 на передачу: delayMicroseconds(2); digitalWrite (MAX485_CONTROL, HIGH); delayMicroseconds(2); Потом передаём сообщение Serial1.write(type); Потом ждём когда всё передастся: WAIT_FOR_XMIT_COMPLETE; После переходим в режим приёма: delayMicroseconds(2); digitalWrite (MAX485_CONTROL, LOW); delayMicroseconds(2); Строчка для ожидания, должна быть в начале скетча: #define WAIT_FOR_XMIT_COMPLETE {while (!(UCSR1A & (1<<TXC1))); UCSR1A = (1<<TXC1); UCSR1A = 0;} ---------- Сообщение добавлено в 12:20 ---------- Предыдущие сообщение было в 12:14 ---------- Это ваш выбор, писать то скетчи для декодеров вам. |
|
11.08.2017, 12:21 | #119 | |
Местный
Регистрация: 08.07.2015
Адрес: МО
Сообщений: 2,865
Сказал(а) 'не согласен(а)'!: 0
Сказали 'не согласен'! 3 раз(а) в 2 сообщениях
Сказал(а) спасибо: 4,667
Поблагодарили 3,281 раз(а) в 1,177 сообщениях
Репутация: репутация неоспорима (3292)
|
Цитата:
|
|
11.08.2017, 12:24 | #120 |
Местный
Регистрация: 29.06.2010
Адрес: Москва
Сообщений: 2,842
Сказал(а) 'не согласен(а)'!: 6
Сказали 'не согласен'! 2 раз(а) в 2 сообщениях
Сказал(а) спасибо: 974
Поблагодарили 2,656 раз(а) в 1,572 сообщениях
Репутация: репутация неоспорима (2702)
|
|
11.08.2017, 12:33 | #121 | |
Заглянувший
Регистрация: 07.09.2015
Адрес: SPb
Сообщений: 76
Сказал(а) 'не согласен(а)'!: 0
Сказали 'не согласен'! 0 раз(а) в 0 сообщениях
Сказал(а) спасибо: 8
Поблагодарили 6 раз(а) в 6 сообщениях
Репутация: пока неопределено (6)
|
Цитата:
к истории с msg[x] и иже с ним - приведенного примера достаточно для пристройства в скетч-пример передачи данных каким-либо типом ? или там какие-то еще заклинания требуются ? |
|
11.08.2017, 12:45 | #122 | |
Местный
Регистрация: 29.06.2010
Адрес: Москва
Сообщений: 2,842
Сказал(а) 'не согласен(а)'!: 6
Сказали 'не согласен'! 2 раз(а) в 2 сообщениях
Сказал(а) спасибо: 974
Поблагодарили 2,656 раз(а) в 1,572 сообщениях
Репутация: репутация неоспорима (2702)
|
Все ссылки уже были даны. А вот найти там нужный кусочек кода, это ваша задача.
Цитата:
Опять же, ссылки уже были. |
|
11.08.2017, 13:52 | #123 |
Заглянувший
Регистрация: 07.09.2015
Адрес: SPb
Сообщений: 76
Сказал(а) 'не согласен(а)'!: 0
Сказали 'не согласен'! 0 раз(а) в 0 сообщениях
Сказал(а) спасибо: 8
Поблагодарили 6 раз(а) в 6 сообщениях
Репутация: пока неопределено (6)
|
Скрытый текст
вопрос к Qvan22 - не поделитесь более детально вашим вариантом? скетч для декодера на арудино имется в виду этот - http://forum.modelldepo.ru/showthread.php?t=17437 ? |
11.08.2017, 13:58 | #124 |
Заглянувший
Регистрация: 18.04.2013
Адрес: Москва
Сообщений: 22
Сказал(а) 'не согласен(а)'!: 0
Сказали 'не согласен'! 0 раз(а) в 0 сообщениях
Сказал(а) спасибо: 7
Поблагодарили 4 раз(а) в 3 сообщениях
Репутация: пока неопределено (4)
|
Всем доброго дня!
Давно не заходил на форум и поэтому прозевал начало темы. У меня похожая идея по цифровому управлению аналоговым макетом. Только макет планировался не модульный, а 150х65 в масштабе N. За основу решил взять схему от Фляйшмана и творчески ее переделать. Он состоял из 3 частей: кольца с теневым вокзалом и 3х путной узловой станцией, грузовым двориком на 4-5 путей и горная ветка с конечной станцией из 2х путей. Так вот, когда я прорабатывал схему управления (в оригинале было 3 пульта и панель управления стрелками, семафорами и расцепителями), то решил сделать для каждого локомотива свой ШИМ генератор, всю схему поделить на 9 блок участков, каждый участок разбить на 3 части оснащенных своим токовым датчиком, а начало и конец каждого блок участка еще и ИК датчиками положения. А дальше для каждого лока выстраиваю маршрут, а система уже по данным с датчиков и состояния стрелок и светофоров определяет когда лок должен двигаться, а когда стоять. Предполагалось, что приоритет будет у кольца, а дальше - кто первый встал, того и тапки. Я планировал гонять на данном макете 5 локомотивов. 2 поезда по кольцу, 1 маневровый - дворик-узловая, 1 вагон - узловая-гора, 1 - дворик-узловая-гора. Вот только уже год, как некогда вернуться с начатому проекту |
11.08.2017, 14:14 | #125 | |
Местный
Регистрация: 08.07.2015
Адрес: МО
Сообщений: 2,865
Сказал(а) 'не согласен(а)'!: 0
Сказали 'не согласен'! 3 раз(а) в 2 сообщениях
Сказал(а) спасибо: 4,667
Поблагодарили 3,281 раз(а) в 1,177 сообщениях
Репутация: репутация неоспорима (3292)
|
Цитата:
Думаю, что тратить на это часы/дни/недели, чтобы сделать именно Вам готовый продукт, вряд ли кто-то возьмется бесплатно В теме уже масса полезной информации, осталось ее грамотно копи-пастнуть в будущий проект |
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
цифровое управление садовой дорогой | Залызныця | Садовые жд (Уличные макеты) | 76 | 01.12.2022 08:55 |
кран едк-2000 цифровое управление | manfred | Электрика и DCC | 1 | 21.08.2011 20:37 |
Цифровое управление Marklin | Stepanov | Электрика и DCC | 4 | 03.02.2010 20:57 |
помогите разобраться, управление цифровое... | Leonar | Электрика и DCC | 12 | 20.01.2010 18:02 |
Цифровое управление | Илья | Электрика и DCC | 26 | 15.07.2008 19:52 |