Форум ModelldepO  

Вернуться   Форум ModelldepO > Моделизм > Электрика и DCC > Arduino
Ответ
 
Опции темы Опции просмотра
Старый 14.10.2015, 22:12   #1
BR95009
Mit Volldampf durch Harz!
 
Аватар для BR95009
 
Регистрация: 27.04.2012
Адрес: Msk
Сообщений: 5,626
Сказал(а) 'не согласен(а)'!: 20
Сказали 'не согласен'! 51 раз(а) в 42 сообщениях
Сказал(а) спасибо: 4,665
Поблагодарили 6,047 раз(а) в 2,036 сообщениях
Репутация: репутация неоспорима (6096)
По умолчанию Декодер DCC на ардуино для немецкого выходного сигнала

По просьбе Геннадича выкладываю проект прототипа декодера с применением Ардуино для вот такой хрени:



Макетка:
Нажмите на изображение для увеличения
Название: Снимок экрана 2015-10-14 в 22.06.48.png
Просмотров: 573
Размер:	188.2 Кб
ID:	117022
__________________
H0 - DR/DB, Ep.III + G и H0m - HSB
Московский Модуль H0-присоединяйтесь!
BR95009 вне форума   Вверх
5 пользователя(ей) сказали cпасибо:
Старый 14.10.2015, 22:22   #2
BR95009
Mit Volldampf durch Harz!
 
Аватар для BR95009
 
Регистрация: 27.04.2012
Адрес: Msk
Сообщений: 5,626
Сказал(а) 'не согласен(а)'!: 20
Сказали 'не согласен'! 51 раз(а) в 42 сообщениях
Сказал(а) спасибо: 4,665
Поблагодарили 6,047 раз(а) в 2,036 сообщениях
Репутация: репутация неоспорима (6096)
По умолчанию

Схема аналогична той, что приводится тут, но для вывода используются пины: D4, D5, D6, D7, D8. Они переводятся в состояния LOW, если нужно зажечь LED, и в HIGH, если нужно его погасить.
__________________
H0 - DR/DB, Ep.III + G и H0m - HSB
Московский Модуль H0-присоединяйтесь!

Последний раз редактировалось BR95009; 15.10.2015 в 00:07.
BR95009 вне форума   Вверх
Пользователь сказал cпасибо:
Старый 14.10.2015, 22:36   #3
pandrey
Местный
 
Аватар для pandrey
 
Регистрация: 12.01.2010
Адрес: Геленджик
Сообщений: 2,242
Сказал(а) 'не согласен(а)'!: 13
Сказали 'не согласен'! 4 раз(а) в 4 сообщениях
Сказал(а) спасибо: 5,435
Поблагодарили 4,162 раз(а) в 1,041 сообщениях
Репутация: репутация неоспорима (4194)
По умолчанию

Цитата:
Сообщение от BR95009 Посмотреть сообщение
Скетч будет позже.
А плавное, как на взрослых светофорах, вкл/выкл будет?
pandrey вне форума   Вверх
Старый 14.10.2015, 22:56   #4
genadich
Местный
 
Аватар для genadich
 
Регистрация: 27.05.2010
Адрес: Москва
Сообщений: 1,054
Сказал(а) 'не согласен(а)'!: 7
Сказали 'не согласен'! 2 раз(а) в 2 сообщениях
Сказал(а) спасибо: 2,038
Поблагодарили 1,737 раз(а) в 439 сообщениях
Репутация: обеспечил(а) себе прекрасное будущее (1766)
По умолчанию

Я был бы счастлив если бы оно просто работало. Честно говоря,плавность мне не очень интересна...
genadich вне форума   Вверх
Старый 14.10.2015, 23:07   #5
BR95009
Mit Volldampf durch Harz!
 
Аватар для BR95009
 
Регистрация: 27.04.2012
Адрес: Msk
Сообщений: 5,626
Сказал(а) 'не согласен(а)'!: 20
Сказали 'не согласен'! 51 раз(а) в 42 сообщениях
Сказал(а) спасибо: 4,665
Поблагодарили 6,047 раз(а) в 2,036 сообщениях
Репутация: репутация неоспорима (6096)
По умолчанию

А там еще и плавность должна быть?

---------- Сообщение добавлено в 01:07 ---------- Предыдущие сообщение было в 01:05 ----------

Цитата:
Сообщение от genadich Посмотреть сообщение
Используются вот какие комбинации:
1.два красных
2.один красный и белые
3.один зеленый
4.зеленый и желтый

А какие 0 и 1 стрелок отвечают за каждую комбинацию?
__________________
H0 - DR/DB, Ep.III + G и H0m - HSB
Московский Модуль H0-присоединяйтесь!
BR95009 вне форума   Вверх
Старый 14.10.2015, 23:28   #6
genadich
Местный
 
Аватар для genadich
 
Регистрация: 27.05.2010
Адрес: Москва
Сообщений: 1,054
Сказал(а) 'не согласен(а)'!: 7
Сказали 'не согласен'! 2 раз(а) в 2 сообщениях
Сказал(а) спасибо: 2,038
Поблагодарили 1,737 раз(а) в 439 сообщениях
Репутация: обеспечил(а) себе прекрасное будущее (1766)
По умолчанию

Адреса стрелок было бы здорово программировать каким-либо образом.
Для каждого адреса есть 2 положения: "прямо" и "криво".
Т.е. 4 варианта задаются 2 адресам стрелок.
genadich вне форума   Вверх
Старый 14.10.2015, 23:59   #7
BR95009
Mit Volldampf durch Harz!
 
Аватар для BR95009
 
Регистрация: 27.04.2012
Адрес: Msk
Сообщений: 5,626
Сказал(а) 'не согласен(а)'!: 20
Сказали 'не согласен'! 51 раз(а) в 42 сообщениях
Сказал(а) спасибо: 4,665
Поблагодарили 6,047 раз(а) в 2,036 сообщениях
Репутация: репутация неоспорима (6096)
По умолчанию

Геннадич, я не о том.

Какая комбинация переключенныхс стрелок = какой световой схеме?

Например:
1.два красных == 0-0
2.один красный и белые == 0-1
3.один зеленый == 1-0
4.зеленый и желтый ==1-1

Цитата:
Сообщение от genadich Посмотреть сообщение
Для каждого адреса есть 2 положения: "прямо" и "криво".
Там тупо 0 и 1. Прямо и криво - это уже от контроллера щависит и от подключеняи стрелки.

---------- Сообщение добавлено в 01:59 ---------- Предыдущие сообщение было в 01:52 ----------

Лови скетч, Геннадич.

Должно работать. Нету светофора, что бы проверить.

PHP код:
// DCC декодер для немецкого выходного сигнала Viessmann H0 Licht-Ausfahrsignal Art.Nr  4013:
// by BR95009. V01
// Лицензия GPL. Бесплатно для не коммерческого использования. Ссылка на автора обязательна.
// DCC reading PIN = 2 (from opto coupler)

// Подключаем библиотеку DCC Decoder
#include <DCC_Decoder.h>

// Параметры декодера для настройки:
#define DECODER_ADDRESS_1  1     // Адрес декодера для первой стрелки
#define DECODER_ADDRESS_2  2     // Адрес декодера для второй стрелки

// Управляющие пины, где wire номер = номеру провода на схеме светофора Viessmann H0 Licht-Ausfahrsignal Art.Nr  4013:
#define WIRE1_PIN  8
#define WIRE2_PIN  7
#define WIRE3_PIN  6
#define WIRE4_PIN  5
#define WIRE5_PIN  4

//Прерывание для DCC библиотеки
#define kDCC_INTERRUPT   0

bool on_already1 false// флаг, что бы отсечь остальные аналогичные пакеты для первой стрелки
bool on_already2 false// флаг, что бы отсечь остальные аналогичные пакеты для второй стрелки

// Флаги  состояний декодера:
bool flag1 false// флаг комманды первой стрелки (ВКЛ/ВЫКЛ)
bool flag2 false// флаг комманды второй стрелки (ВКЛ/ВЫКЛ)

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void setup()//обязательная функция для любого сетча: настраивает программу, запускается 1 раз при старте.
//Выставляем управляющие пины на вывод:
  
pinMode(WIRE1_PINOUTPUT); pinMode(WIRE2_PINOUTPUT); pinMode(WIRE3_PINOUTPUT); pinMode(WIRE4_PINOUTPUT); pinMode(WIRE5_PINOUTPUT);

  
//Выставляем их в "НIGН", что бы при запуске светофор не горел. Так как они подключены к общему плюсу и минусом к выводам, то управляющая логика будет обратной:
  // HIGH = OFF, LOW = ON:
  
digitalWrite(WIRE1_PINHIGH); digitalWrite(WIRE2_PINHIGH); digitalWrite(WIRE3_PINHIGH); digitalWrite(WIRE4_PINHIGH); digitalWrite(WIRE5_PINHIGH);

  
// Инициализируем декодер:
  
DCC.SetBasicAccessoryDecoderPacketHandler(BasicAccDecoderPacket_Handlertrue);
  
DCC.SetupDecoder0x000x00kDCC_INTERRUPT );
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void loop() // Оновная функция, повторяющаяся бесконечно.
{
  
DCC.loop(); // постонно крутим DCC библиотеку, что бы не пропускать пакеты.
}// end of loop   ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////

// Обработчик стрелочных пакетов. Эта функция запускается, когда библиотека ловит пакет:
void BasicAccDecoderPacket_Handler(int addressboolean activatebyte data)
{
  
// Конвертируем адрес стрелки в формат Мультимауса и Рокрейла:
  
address -= 1address *= 4address += 1address += (data 0x06) >> 1address += 4;

  
boolean enable = (data 0x01) ? 0//получаем команду декодеру

  
if ( address == DECODER_ADDRESS_1) {// Если адрес в пакете == адресу декодера #1, то обрабатываем флаг1
    
if ( enable && !on_already1) { // Флаг1 в 1
      
flag1 true;
      
on_already1 true//больше не ловим остальные 5 пакетов ВКЛ
      
set_lights(); // меняем схему при переключении
    
}
    if ( !
enable && on_already1) { // Флаг1 в 0
      
flag1 false;
      
on_already1 false//больше не ловим остальные 5 пакетов ВЫКЛ
      
set_lights(); // меняем схему при переключении
    
}
  }
  if ( 
address == DECODER_ADDRESS_2) { // Если адрес в пакете == адресу декодера #2, то обрабатываем флаг2
    
if ( enable && !on_already2) { // Флаг2 в 1
      
flag2 true;
      
on_already2 true//больше не ловим остальные 5 пакетов ВКЛ
      
set_lights(); // меняем схему при переключении
    
}
    if ( !
enable && on_already2) { // Флаг2 в 0
      
flag2 false;
      
on_already2 false//больше не ловим остальные 5 пакетов ВЫКЛ
      
set_lights(); // меняем схему диодов при переключении
    
}
  }
}
// end of handler

// Функция установки диодов во ВКЛ/ВЫКЛ
void set_lights() {
  
// Логика кобработки флагов:
  
if ((flag1 == false) && (flag2 == false)) { //Логика состояния 0&0
    // Меняем HIGH на LOW по вкусу! HIGH = диод не горит, LOW = диод горит
    
digitalWrite(WIRE1_PINHIGH); digitalWrite(WIRE2_PINHIGH); digitalWrite(WIRE3_PINHIGH); digitalWrite(WIRE4_PINHIGH); digitalWrite(WIRE5_PINHIGH);
  }
  if ((
flag1 == false) && (flag2 == true)) { //Логика состояния 0&1
    
digitalWrite(WIRE1_PINHIGH); digitalWrite(WIRE2_PINHIGH); digitalWrite(WIRE3_PINHIGH); digitalWrite(WIRE4_PINHIGH); digitalWrite(WIRE5_PINHIGH);
  }
  if ((
flag1 == true) && (flag2 == false)) { //Логика состояния 1&0
    
digitalWrite(WIRE1_PINHIGH); digitalWrite(WIRE2_PINHIGH); digitalWrite(WIRE3_PINHIGH); digitalWrite(WIRE4_PINHIGH); digitalWrite(WIRE5_PINHIGH);
  }
  if ((
flag1 == true) && (flag2 == true)) { //Логика состояния 1&1
    
digitalWrite(WIRE1_PINHIGH); digitalWrite(WIRE2_PINHIGH); digitalWrite(WIRE3_PINHIGH); digitalWrite(WIRE4_PINHIGH); digitalWrite(WIRE5_PINHIGH);
  }

}
//End of sketch 
__________________
H0 - DR/DB, Ep.III + G и H0m - HSB
Московский Модуль H0-присоединяйтесь!

Последний раз редактировалось BR95009; 15.10.2015 в 09:52.
BR95009 вне форума   Вверх
3 пользователя(ей) сказали cпасибо:
Старый 15.10.2015, 00:00   #8
Alexmit
Местный
 
Регистрация: 29.06.2010
Адрес: Москва
Сообщений: 1,458
Сказал(а) 'не согласен(а)'!: 3
Сказали 'не согласен'! 1 раз в 1 сообщении
Сказал(а) спасибо: 374
Поблагодарили 1,407 раз(а) в 806 сообщениях
Репутация: этим человеком можно гордиться (1407)
По умолчанию

genadich, в TC есть какой-нибудь лог типа такого?

23:55:15 output 10 2 1 on
23:55:15 output 10 1 0 on

23:55:10 output 10 2 0 on
23:55:10 output 10 1 1 on

23:55:04 output 10 2 0 on
23:55:04 output 10 1 0 on

23:55:00 output 10 2 1 on
23:55:00 output 10 1 1 on
Alexmit вне форума   Вверх
Старый 15.10.2015, 00:09   #9
BR95009
Mit Volldampf durch Harz!
 
Аватар для BR95009
 
Регистрация: 27.04.2012
Адрес: Msk
Сообщений: 5,626
Сказал(а) 'не согласен(а)'!: 20
Сказали 'не согласен'! 51 раз(а) в 42 сообщениях
Сказал(а) спасибо: 4,665
Поблагодарили 6,047 раз(а) в 2,036 сообщениях
Репутация: репутация неоспорима (6096)
По умолчанию

Цитата:
Сообщение от pandrey Посмотреть сообщение
как на взрослых светофорах, вкл/выкл будет?
Да, вот такой:
оффтопик

---------- Сообщение добавлено в 02:09 ---------- Предыдущие сообщение было в 02:04 ----------

Цитата:
Сообщение от BR95009 Посмотреть сообщение
Меняем*HIGH*на*LOW*по*вкусу!
Короче, можно настроить самому, какие огоньки загорятся при каком состоянии.
__________________
H0 - DR/DB, Ep.III + G и H0m - HSB
Московский Модуль H0-присоединяйтесь!
BR95009 вне форума   Вверх
Пользователь сказал cпасибо:
Старый 15.10.2015, 04:21   #10
Garri
Местный
 
Аватар для Garri
 
Регистрация: 22.07.2014
Адрес: Санкт Петербург
Сообщений: 1,282
Сказал(а) 'не согласен(а)'!: 11
Сказали 'не согласен'! 6 раз(а) в 5 сообщениях
Сказал(а) спасибо: 2,195
Поблагодарили 1,375 раз(а) в 647 сообщениях
Репутация: этим человеком можно гордиться (1387)
По умолчанию

BR95009, здесь сигналы немецких светофоров DB. Отклонение по стрелки или прямо, это отдельная секция и на данном светофоре её нет. См вложения.
С уважением!
Garri
Вложения:
Тип файла: pdf Сигналы DB.pdf (536.5 Кб, 288 просмотров)
Garri вне форума   Вверх
Старый 15.10.2015, 06:39   #11
genadich
Местный
 
Аватар для genadich
 
Регистрация: 27.05.2010
Адрес: Москва
Сообщений: 1,054
Сказал(а) 'не согласен(а)'!: 7
Сказали 'не согласен'! 2 раз(а) в 2 сообщениях
Сказал(а) спасибо: 2,038
Поблагодарили 1,737 раз(а) в 439 сообщениях
Репутация: обеспечил(а) себе прекрасное будущее (1766)
Хорошо

BR95009
Спасибо !
Соответствие комбинации стрелок и сигналов не важна: настраивается в программе.
Интересно, а сколькими сигналами может управлять один контроллер?
Я тоже не могу пока проверить: нет контроллера вот только на следующей неделе попробую заказать

Alexmit
пока по логам в ТС ничего не смотрел: я пока больше 2 локов не гонял. И так все видно.
genadich вне форума   Вверх
Старый 15.10.2015, 08:06   #12
pandrey
Местный
 
Аватар для pandrey
 
Регистрация: 12.01.2010
Адрес: Геленджик
Сообщений: 2,242
Сказал(а) 'не согласен(а)'!: 13
Сказали 'не согласен'! 4 раз(а) в 4 сообщениях
Сказал(а) спасибо: 5,435
Поблагодарили 4,162 раз(а) в 1,041 сообщениях
Репутация: репутация неоспорима (4194)
По умолчанию

Цитата:
Сообщение от BR95009 Посмотреть сообщение
Да, вот такой:
Я имел ввиду плавность включения и выключения. В принципе, это не так сложно сделать самому, в примерах ардуины вроде есть вариант с плавным включением светодиода...
pandrey вне форума   Вверх
Старый 15.10.2015, 10:41   #13
BR95009
Mit Volldampf durch Harz!
 
Аватар для BR95009
 
Регистрация: 27.04.2012
Адрес: Msk
Сообщений: 5,626
Сказал(а) 'не согласен(а)'!: 20
Сказали 'не согласен'! 51 раз(а) в 42 сообщениях
Сказал(а) спасибо: 4,665
Поблагодарили 6,047 раз(а) в 2,036 сообщениях
Репутация: репутация неоспорима (6096)
По умолчанию

Цитата:
Сообщение от genadich Посмотреть сообщение
Интересно, а сколькими сигналами может управлять один контроллер?
У Ардуино Про Мини и у UNO 14 цифровых пинов, т.е. 14 светодиодов. Вот и считай. Это если без доп. навески.

У Ардуино MEGA - 54 выхода.

А если с доп навеской, то:
Цитата:
Сообщение от Петин В. А. - "Проекты с использованием контроллера Arduino.", стр. 215
16.3. SPI-расширитель выходов 74HC595
Чтобы управлять большим количеством пинов светодиодной матрицы, не обязательно использовать большое количество выходов Arduino. Можно обойтись всего тремя. Применим для этого сдвиговый регистр. Рассмотрим микросхему 74HC595 — восьмиразрядный сдвиговый регистр с последовательным вводом, последователь- ным или параллельным выводом информации, с триггером-защелкой и тремя со- стояниями на выходе (рис. 16.3).
Т.е. 3 пина на 8 светодиодов.

---------- Сообщение добавлено в 12:41 ---------- Предыдущие сообщение было в 11:44 ----------

Цитата:
Сообщение от Garri Посмотреть сообщение
BR95009, здесь сигналы немецких светофоров DB
Спасибо, конечно. Но я пока в тему светофоров не залезал. LED - он и в африке LED.
__________________
H0 - DR/DB, Ep.III + G и H0m - HSB
Московский Модуль H0-присоединяйтесь!
BR95009 вне форума   Вверх
Пользователь сказал cпасибо:
Старый 15.10.2015, 10:56   #14
Alexmit
Местный
 
Регистрация: 29.06.2010
Адрес: Москва
Сообщений: 1,458
Сказал(а) 'не согласен(а)'!: 3
Сказали 'не согласен'! 1 раз в 1 сообщении
Сказал(а) спасибо: 374
Поблагодарили 1,407 раз(а) в 806 сообщениях
Репутация: этим человеком можно гордиться (1407)
По умолчанию

Цитата:
Сообщение от Garri Посмотреть сообщение
Отклонение по стрелки или прямо, это отдельная секция и на данном светофоре её нет.
Отклонение по стрелке - это Hp2.

Цитата:
Сообщение от BR95009 Посмотреть сообщение
Т.е. 3 пина на 8 светодиодов.
74HC595 можно поставить 2 последовательно. Соответственно 3 пина на 16 светодиодов.
Если взять 8 штук mcp23017, то на 2 пина 128 светодиодов.
А ещё есть PCA9685, тоже можно подключить 8 штук, соответственно 128 светодиодов с ШИМом. (но она дороже)

Цитата:
Сообщение от pandrey Посмотреть сообщение
В принципе, это не так сложно сделать самому, в примерах ардуины вроде есть вариант с плавным включением светодиода...
Берём контакты 3, 5, 6, 9, 10 и 11 на которых есть ШИМ, в скетч добавляем циклы, вот и плавное включение.
Alexmit вне форума   Вверх
3 пользователя(ей) сказали cпасибо:
Старый 15.10.2015, 12:09   #15
Garri
Местный
 
Аватар для Garri
 
Регистрация: 22.07.2014
Адрес: Санкт Петербург
Сообщений: 1,282
Сказал(а) 'не согласен(а)'!: 11
Сказали 'не согласен'! 6 раз(а) в 5 сообщениях
Сказал(а) спасибо: 2,195
Поблагодарили 1,375 раз(а) в 647 сообщениях
Репутация: этим человеком можно гордиться (1387)
По умолчанию

Цитата:
Сообщение от Alexmit Посмотреть сообщение
Отклонение по стрелке - это Hp2.

Это ограничение скорости до 40 км/ч.
Wn1-Wn6 сигналы стрелочных отклонений.
Garri вне форума   Вверх
Старый 15.10.2015, 12:42   #16
bluxer
Михневский НОД
 
Аватар для bluxer
 
Регистрация: 16.02.2010
Адрес: Москва
Сообщений: 4,456
Сказал(а) 'не согласен(а)'!: 106
Сказали 'не согласен'! 113 раз(а) в 72 сообщениях
Сказал(а) спасибо: 2,442
Поблагодарили 7,155 раз(а) в 2,207 сообщениях
Репутация: репутация неоспорима (7317)
По умолчанию

Цитата:
Сообщение от Garri Посмотреть сообщение
Это ограничение скорости до 40 км/ч.
Wn1-Wn6 сигналы стрелочных отклонений.
Абсолютно неправильно. Стрелочные указатели указывают положение стрелки. Отклонение по съезду указывает именно Hp2. Кроме стрелочных, есть ещё маршрутные указатели, которые информируют машиниста о маршруте приема или отправления поезда. А вот сигнал ограничения скорости (постоянный или для временного ограничения) - это Lf. Основные сигналы для 4-ой эпохи (к слову, приведенный Вами файл описывает 3-4 эпохи) - это Hp. И соответственно, если поезд идет с отклонением, то горит ЖЗ. Такие же сигналы применялись на ж.д. СССР до третей эпохи (имеется ввиду, комбинация основных сигналов). А вот светофор топикстартера- это уже конец 4-ой - 5-я эпохи.
__________________
Садовую дорогу в каждый сад!
А единичку-в каждый дом!
С Н0 пора завязывать...
И снова развязывать:)
bluxer вне форума   Вверх
Пользователь сказал cпасибо:
Старый 15.10.2015, 14:21   #17
Alexmit
Местный
 
Регистрация: 29.06.2010
Адрес: Москва
Сообщений: 1,458
Сказал(а) 'не согласен(а)'!: 3
Сказали 'не согласен'! 1 раз в 1 сообщении
Сказал(а) спасибо: 374
Поблагодарили 1,407 раз(а) в 806 сообщениях
Репутация: этим человеком можно гордиться (1407)
По умолчанию

Цитата:
Сообщение от BR95009 Посмотреть сообщение
Должно работать.
Почти, команды принимаются.
Но в - void BasicAccDecoderPacket_Handler(int address, boolean activate, byte data)
явно есть ошибка.

А после того как я добавил
Serial.print("Z , ");
Serial.print(address);
Serial.print(", ");
Serial.print(data);
Serial.print(", ");
Serial.println(activate);
появилось желание переписать её целиком.

---------- Сообщение добавлено в 14:21 ---------- Предыдущие сообщение было в 14:13 ----------

Цитата:
Сообщение от Alexmit Посмотреть сообщение
74HC595 можно поставить 2 последовательно. Соответственно 3 пина на 16 светодиодов.
Чего-то тупанул. Если по максимуму, то получается на UNO можно поставить 30 микросхем, а это 240 светодиодов.
Alexmit вне форума   Вверх
Старый 15.10.2015, 14:30   #18
Alex_S
Местный
 
Регистрация: 26.05.2008
Адрес: Москва
Сообщений: 3,324
Сказал(а) 'не согласен(а)'!: 20
Сказали 'не согласен'! 8 раз(а) в 8 сообщениях
Сказал(а) спасибо: 435
Поблагодарили 3,419 раз(а) в 1,441 сообщениях
Репутация: репутация неоспорима (3433)
По умолчанию

Цитата:
Сообщение от BR95009 Посмотреть сообщение
Какая комбинация переключенныхс стрелок = какой световой схеме?

Например:
1.два красных == 0-0
2.один красный и белые == 0-1
3.один зеленый == 1-0
4.зеленый и желтый ==1-1
ИМХО состояние светофора, управляемого стрелочными командами, определяется не комбинацией, а конкретной командой. Одной.

Т.е. например:
1.два красных == стрелка 1 = 0
2.один красный и белые == стрелка 1 = 1
3.один зеленый == стрелка 2 = 1
4.зеленый и желтый == стрелка 2 = 0

(под "стрелкой" имеется ввиду DCC-"аксессуар" с двумя положениями, диапазон адресов 1 - 2048)

Такое управление - одной аксессуарной командой на каждый "аспект" многолампового светофора - встречалось как в программах (JMRI), так и в цифровых "железках" (ESU ECOS). При этом получается, что аспект не зависит от комбинации. Т.е. например если нужен зеленый+желтый (Hp2), нужно послать только одну команду стрелка 2 = 0; как при этом переключена стрелка 1, не имеет значения.

В программах (JMRI) соответствие аспектов и аксессуарных команд выбирается произвольно, а например в Экосе "железно" заложено, как в моем примере выше, и причем адреса обеих стрелок должны быть рядом (1-2, 3-4 и т.д.).
Alex_S вне форума   Вверх
Старый 15.10.2015, 14:44   #19
Alexmit
Местный
 
Регистрация: 29.06.2010
Адрес: Москва
Сообщений: 1,458
Сказал(а) 'не согласен(а)'!: 3
Сказали 'не согласен'! 1 раз в 1 сообщении
Сказал(а) спасибо: 374
Поблагодарили 1,407 раз(а) в 806 сообщениях
Репутация: этим человеком можно гордиться (1407)
По умолчанию

Цитата:
Сообщение от Alex_S Посмотреть сообщение
ИМХО состояние светофора, управляемого стрелочными командами, определяется не комбинацией, а конкретной командой. Одной.
Ага, щаз. Я 8 сообщение просто так что-ли писал.
Зависит от конкретной системы.
А Rocrail и вот такие пачечки посылать умеет.
14:36:46 output 10 2 0 on
14:36:46 output 10 4 0 off
14:36:46 output 10 3 0 off
14:36:46 output 10 2 0 off
14:36:46 output 10 1 0 off

Цитата:
Сообщение от Alex_S Посмотреть сообщение
а например в Экосе "железно" заложено, как в моем примере выше, и причем адреса обеих стрелок должны быть рядом (1-2, 3-4 и т.д.).
Если у вас после декодера стоит viessmann 5223 или что-то подобное, то да, работать будет.
Alexmit вне форума   Вверх
Старый 15.10.2015, 15:37   #20
Alex_S
Местный
 
Регистрация: 26.05.2008
Адрес: Москва
Сообщений: 3,324
Сказал(а) 'не согласен(а)'!: 20
Сказали 'не согласен'! 8 раз(а) в 8 сообщениях
Сказал(а) спасибо: 435
Поблагодарили 3,419 раз(а) в 1,441 сообщениях
Репутация: репутация неоспорима (3433)
По умолчанию

Цитата:
Сообщение от Alexmit Посмотреть сообщение
Если у вас после декодера стоит viessmann 5223 или что-то подобное, то да, работать будет.
У меня TrafficLight местного производства. На любой аспект - в т.ч. многозначный (например желтый+желтый мигающий) - нужна только одна аксессуарная команда, а не комбинация.
Светофорный декодер LDT так же работает.

А какие светофорные декодеры работают на основе комбинаций?
Alex_S вне форума   Вверх
Старый 15.10.2015, 16:01   #21
BR95009
Mit Volldampf durch Harz!
 
Аватар для BR95009
 
Регистрация: 27.04.2012
Адрес: Msk
Сообщений: 5,626
Сказал(а) 'не согласен(а)'!: 20
Сказали 'не согласен'! 51 раз(а) в 42 сообщениях
Сказал(а) спасибо: 4,665
Поблагодарили 6,047 раз(а) в 2,036 сообщениях
Репутация: репутация неоспорима (6096)
По умолчанию

Цитата:
Сообщение от Alexmit Посмотреть сообщение
Почти, команды принимаются.
Но в - void BasicAccDecoderPacket_Handler(int address, boolean activate, byte data)
явно есть ошибка.
В чем это заключаетсяся? В чем ошибка?

---------- Сообщение добавлено в 18:01 ---------- Предыдущие сообщение было в 17:58 ----------

Цитата:
Сообщение от Alex_S Посмотреть сообщение
У меня TrafficLight местного производства. На любой аспект - в т.ч. многозначный (например желтый+желтый мигающий) - нужна только одна аксессуарная команда, а не комбинация.
Светофорный декодер LDT так же работает.
А какие светофорные декодеры работают на основе комбинаций?
Это не важно. Можно сделать на основе комбинаций состояний двух стрелок (как сейчас реализовано), а можно завести на один акксесуарный адрес деокодер и переключать комбинации кнопками F1- F28.
__________________
H0 - DR/DB, Ep.III + G и H0m - HSB
Московский Модуль H0-присоединяйтесь!
BR95009 вне форума   Вверх
Старый 15.10.2015, 16:14   #22
Alex_S
Местный
 
Регистрация: 26.05.2008
Адрес: Москва
Сообщений: 3,324
Сказал(а) 'не согласен(а)'!: 20
Сказали 'не согласен'! 8 раз(а) в 8 сообщениях
Сказал(а) спасибо: 435
Поблагодарили 3,419 раз(а) в 1,441 сообщениях
Репутация: репутация неоспорима (3433)
По умолчанию

Цитата:
Сообщение от BR95009 Посмотреть сообщение
а можно завести на один акксесуарный адрес деокодер и переключать комбинации кнопками F1- F28.
у аксессуаров нет F1-F28, только прямо/криво. Fxx есть у локомотивного адреса. Это разные адресные "пространства".

Цитата:
Сообщение от BR95009 Посмотреть сообщение
Это не важно.
Может и не важно, но уже есть некие сложившиеся традиции, которым уже много лет.
Так можно дойти до управления светофором с помощью скорости
А как только захотите управлять макетом другой программой - да та же JMRI к примеру - то упретесь в ограничения.
Alex_S вне форума   Вверх
Старый 15.10.2015, 17:06   #23
BR95009
Mit Volldampf durch Harz!
 
Аватар для BR95009
 
Регистрация: 27.04.2012
Адрес: Msk
Сообщений: 5,626
Сказал(а) 'не согласен(а)'!: 20
Сказали 'не согласен'! 51 раз(а) в 42 сообщениях
Сказал(а) спасибо: 4,665
Поблагодарили 6,047 раз(а) в 2,036 сообщениях
Репутация: репутация неоспорима (6096)
По умолчанию

Цитата:
Сообщение от Alex_S Посмотреть сообщение
у аксессуаров нет F1-F28, только прямо/криво.
Изучайте: http://www.nmra.org/sites/default/fi....1_2012_07.pdf

"Extended Accessory Decoder Control Packet Format"



Цитата:
Сообщение от Alex_S Посмотреть сообщение
Это разные адресные "пространства".
И что?

Цитата:
Сообщение от Alex_S Посмотреть сообщение
А как только захотите управлять макетом другой программой - да та же JMRI к примеру - то упретесь в ограничения.
Я никуда не упрусь. Я перепишу скетч под под декодирование пакетов из этой программы. И все. У меня нет задачи сделать универсальный деркодер. Можно каждый скетч переписать под конкретные пререквизиты.
__________________
H0 - DR/DB, Ep.III + G и H0m - HSB
Московский Модуль H0-присоединяйтесь!
BR95009 вне форума   Вверх
Пользователь сказал cпасибо:
Старый 15.10.2015, 18:31   #24
Alexmit
Местный
 
Регистрация: 29.06.2010
Адрес: Москва
Сообщений: 1,458
Сказал(а) 'не согласен(а)'!: 3
Сказали 'не согласен'! 1 раз в 1 сообщении
Сказал(а) спасибо: 374
Поблагодарили 1,407 раз(а) в 806 сообщениях
Репутация: этим человеком можно гордиться (1407)
По умолчанию

Цитата:
Сообщение от BR95009 Посмотреть сообщение
В чем это заключаетсяся? В чем ошибка?
Не отрабатывается точно - //Логика состояния 0&0.

---------- Сообщение добавлено в 18:22 ---------- Предыдущие сообщение было в 18:17 ----------

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

---------- Сообщение добавлено в 18:31 ---------- Предыдущие сообщение было в 18:22 ----------

Цитата:
Сообщение от Alex_S Посмотреть сообщение
У меня TrafficLight местного производства. На любой аспект - в т.ч. многозначный (например желтый+желтый мигающий) - нужна только одна аксессуарная команда, а не комбинация.
Вопрос не в том как сделан какой либо декодер.
Вопрос - что выдаёт управляющая программа.
Может кто-нибудь уже посмотрит, что выдаёт Train controller.
Alexmit вне форума   Вверх
Старый 15.10.2015, 18:58   #25
Alex_S
Местный
 
Регистрация: 26.05.2008
Адрес: Москва
Сообщений: 3,324
Сказал(а) 'не согласен(а)'!: 20
Сказали 'не согласен'! 8 раз(а) в 8 сообщениях
Сказал(а) спасибо: 435
Поблагодарили 3,419 раз(а) в 1,441 сообщениях
Репутация: репутация неоспорима (3433)
По умолчанию

Цитата:
Сообщение от BR95009 Посмотреть сообщение
Изучайте: http://www.nmra.org/sites/default/fi....1_2012_07.pdf

"Extended Accessory Decoder Control Packet Format"
Вы путаете с понятием "aspect". Про F1-28 в этом разделе (Accessory Decoder) нет ни одного упоминания.

Цитата:
Сообщение от BR95009 Посмотреть сообщение
У меня нет задачи сделать универсальный деркодер. Можно каждый скетч переписать
Тогда не обращайте внимания
Я лишь пытался донести, как (строго ИМХО) делают разные фирмы-производители. Это не догма, можно делать по-своему.
Выше вроде как обсуждали обычные стрелочные команды, а не расширенные с аспектами.


Цитата:
Сообщение от Alexmit Посмотреть сообщение
Вопрос не в том как сделан какой либо декодер.
Вопрос - что выдаёт управляющая программа.
Может кто-нибудь уже посмотрит, что выдаёт Train controller.
Команды DCC вообще-то выдает командная станция. Компьютер шлет команды в соответствии с протоколом связи с КС, а та их преобразует в DCC-пакеты.

Про Экос я уже выше написал: если завести в нем выходной светофор DB, то на каждый требуемый аспект (Hp00, Hp0+Sh1, Hp1, Hp2) Экос пошлет одну простую (не extended) акессуарную команду по одному из двух смежных "стрелочных" адресов.

JMRI работает так же, если светофор заведен как "Turnout Controlled Mast".

Про TrainController увы не могу подсказать. И даже мануал по TC8 не помог. Про настройку светофоров там почти ничего нет, надо ковырять реальную прогу.
Alex_S вне форума   Вверх
Ответ

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Командная станция DCC++ на Ардуино BR95009 Arduino 416 18.04.2018 02:12
Декодер для стрелки LGB на Ардуино BR95009 Arduino 42 25.10.2016 16:13
Autodesk Circuits - он-лайн симулятор Ардуино BR95009 Arduino 0 04.10.2016 16:52
Вагоны немецкого образца в России edel ЖД техника 11 03.10.2013 22:47
Фотографии немецкого пс edel ЖД техника 0 01.03.2011 11:36


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


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