Оглавление:
- Шаг 1. Код Arduino - командная станция с клавиатурой
- Шаг 2: Код Arduino - TFT-дисплей
- Шаг 3. Контроллер явки
Видео: Модель железной дороги - командная станция DCC с использованием Arduino :: 3 шага
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:53
Обновлено в августе 2018 г. - см. Новое руководство:
Обновление от 28 апреля 2016 года: теперь на командном пункте имеется возможность управления 16 стрелками / пунктами. Стрелки T1 - T8 доступны с помощью клавиши 'B' Стрелки T9 - T16 доступны с помощью клавиши 'C'
Обновление от 10 марта 2016 г.:
Теперь на командный пункт добавлена возможность управления 8 стрелками / пунктами. Код Arduino был соответствующим образом обновлен с использованием стандартного пакета NMRA для стрелочных переводов (также на основе исследования пакетов данных Lenz / Atlas Compact для управления стрелками).
Стрелочные переводы T1 - T8 доступны с помощью клавиши «B».
См. Инструкции по используемой схеме приемника пакетов данных и необходимому коду Arduino.
Обновление 18 января 2016 г.:
Я добавил в схему резистор для измерения тока (1 кОм) и конденсатор (10 мкФ) и изменил код Arduino, чтобы отключить питание при обнаружении пикового тока> 3200 мА / с. Согласно спецификации H-моста, выходной ток считывания составляет 377 мкА на 1 А в нагрузке.
Резистор 1,5 кОм подает 0,565 вольт на ампер на аналоговый вывод 6. При 1023 шагах на аналоговом входе это дает 0,565 * 1023/5 = 116 на нагрузку ампер.
A = 100 * (analogRead (AN_CURRENT)) / 116; A = A * 10; (чтобы дать результат в миллиамперах)
Ток нагрузки в миллиамперах отображается на TFT
Полная клавиатура 4x4 включает в себя функции от F1 до F8 и еще 10 локомотивов (1-19) с помощью клавиши «#» (чтобы добавить 10 к числовым клавишам, начиная с локомотива 10).
Код Arduino включает стандарт NMRA для байтов команд.
См. Ссылку
www.nmra.org/sites/default/files/s-9.2.1_20…
(страница 6 имеет особое значение)
Пакеты упорядочены по количеству шагов скорости, длинному / короткому адресу и инструкциям функциональной группы.
Всем байтам команд предшествует преамбула из битов «1» 11111111 (или незанятый пакет), за которыми следует;
например 4-байтовый адрес 0 00000011 0 00111111 0 10000011 0 10111111
приравнивается к локомотиву 3, 128 шагов скорости, прямому направлению и шагу скорости 3 (конечный байт - это проверка ошибок XOR)
например, 3-байтовый адрес 0 00000011 0 10010000 0 10110011
приравнивается к loco 3, функциональная группа 1, FL горит плюс байт XOR (бит '0' разделяет каждый байт)
См. Прилагаемое демонстрационное видео для Loco 12.
Функции F1 - F8 доступны через клавишу «A», DIR (клавиша «*» = направление) FL (клавиша «0» = светится) и клавиша «#» задает локомотивы от 10 до 19 на цифровой клавиатуре. Клавиша «D» теперь используется для аварийного останова.
Спасибо различным провайдерам в Интернете за источники информации DCC и кода Arduino.
В частности, этот проект был вдохновлен Майклом Бланком и его «Простая DCC - командная станция».
www.oscale.net/en/simpledcc
Матричная матрица 4x4 с 16 клавишами, мембранная клавиатура с переключателем (ebay) £ 1,75
2,2-дюймовый ЖК-дисплей 240x320 с последовательным интерфейсом SPI TFT (ebay) £ 7,19
АДАПТЕР ПИТАНИЯ УНИВЕРСАЛЬНЫЙ 12V 5A 60W (ebay) £ 6.49
Nano V3.0 для Arduino с CH340G 5V 16M совместимый ATmega328P (ebay) 2 x 3,30 £ = 6,60 £
Модуль драйвера двигателя LMD18200T для Arduino R3 (ebay) £ 6,99
Разъемы, провод, плата веро, потенциометр около 3,50 фунтов стерлингов
Итого 32,52 £
Базовая командная станция без tft-экрана и 1 x nano будет стоить 22,03 фунта стерлингов.
[Примечание: можно добавить карту памяти к TFT-дисплею и изменить код для отображения изображений выбранных двигателей, хотя коды библиотеки необходимо отредактировать, чтобы освободить больше памяти для эскиза. Текущий размер эскиза максимален для TFT Arduino Nano]
Исходный код Arduino Майкла Бланка был для одного двигателя, только вперед / назад, без управления функциями, без клавиатуры и без дисплея.
Я изменил код, чтобы включить от 1 до 19 двигателей, экран дисплея, направление, огни, 8 функций, аварийный останов и автоматическое ограничение тока.
Мост LMD18200T может выдерживать до 3 ампер, что делает его подходящим для всех масштабов, включая G-шкалу (садовые поезда). Блок питания и электроника подходят для использования только в помещении, если вы не можете сделать их всепогодными. У меня есть командный пункт в летнем домике с рельсами, соединяющими провода, идущие через стену к рельсам.
Шаг 1. Код Arduino - командная станция с клавиатурой
Моя благодарность tvantenna2759 за указание на 2 ошибки в принципиальной схеме, где код Arduino не соответствовал проводке, теперь обновленной (21 октября 2017 г.).
Теперь на Командный пункт добавлено 16 стрелочных переводов. См. Инструкции на принципиальной схеме стрелок / точек с использованием модуля Arduino Mini Pro.
Измененный код, включая контроль явки, прилагается ниже.
Пакет базового дополнительного декодера: 0 10AAAAAA 0 1AAACDDD 0 EEEEEEEE 1 Из анализа пакета, используемого Lenz (Compact / Atlas) для контроля точек, я использовал следующий двоичный формат пакета для байтов 1 и 2: tunAddr = 1 Стрелка 1a: 1000 0001 1111 1000 / Явка 1b: 1000 0001 1111 1001 Явка 2a: 1000 0001 1111 1010 / Явка 2b: 1000 0001 1111 1011 Явка 3a: 1000 0001 1111 1100 / Явка 3b: 1000 0001 1111 1101 Явка 4a: 1000 0001 1111 1110 / Явка 4b: 1000 0001 1111 1111 tunAddr = 2 ----------------------------------------- -------------------------------------------------- ----------------- Явка 5a: 1000 0010 1111 1000 / Явка 5b: 1000 0010 1111 1001 Явка 6a: 1000 0010 1111 1010 / Явка 6b: 1000 0010 1111 1011 Явка 7a: 1000 0010 1111 1100 / Явка 7b: 1000 0010 1111 1101 Явка 8a: 1000 0010 1111 1110 / Явка 8b: 1000 0010 1111 1111 ----------------------- -------------------------------------------------- ---------------------------------- Явка 9a: 1000 0011 1111 1000 / Явка 9b: 1000 0011 1111 1001 и т. Д. ………
Выдержка из измененного кода: Добавьте еще 2 обновления сообщений 'struct'void altern_tun1 (struct Message & x) {x.data [0] = 0x81; // дополнительный декодер 0x80 и адрес 1 x.data [1] = 0; }
недействителен change_tun2 (struct Message & x) {x.data [0] = 0x82; // дополнительный декодер 0x80 и адрес 2 x.data [1] = 0; }
Добавить новую пустоту для стрелок: boolean read_turnout () {delay (20);
логическое значение changed_t = false; get_key ();
if (key_val> = 101 && key_val <= 404 && turn == 1) {
данные = 0xf8; // = двоичный 1111 1000
изменить_tun1 (сообщение [1]);
}
if (key_val> = 505 && key_val <= 808 && turn == 1) {
данные = 0xf8; // = двоичный 1111 1000
изменить_tun2 (сообщение [1]);
}
if (key_val == 101 && turn == 1) {
if (tun1 == 1) {
данные | = 0; // t1a
changed_t = true;}
if (tun1 == 0) {
данные | = 0x01; // t1b
changed_t = true;}
}
if (key_val == 202 && turn == 1) {
if (tun2 == 1) {
данные | = 0x02; // t2a
changed_t = true;
}
if (tun2 == 0) {
данные | = 0x03; // t2b
changed_t = true; }
}
if (key_val == 303 && turn == 1) {
if (tun3 == 1) {
данные | = 0x04; // t3a
changed_t = true;
}
if (tun3 == 0) {
данные | = 0x05; // t3b
changed_t = true;}
}
if (key_val == 404 && turn == 1) {
if (tun4 == 1) {
данные | = 0x06; // t4a
changed_t = true;
}
if (tun4 == 0) {
данные | = 0x07; // f4b
changed_t = true;}
}
if (key_val == 505 && turn == 1) {
if (tun5 == 1) {
данные | = 0; // t5a
changed_t = true;
}
if (tun5 == 0) {
данные | = 0x01; // t5b
changed_t = true;}
}
так далее ………………….
Шаг 2: Код Arduino - TFT-дисплей
Схема дисплея остается прежней с измененным кодом для отображения состояния 16 стрелочных переводов. Примечание. Код библиотеки занимает почти всю память кода эскиза, оставляя мало места для новых функций. Если у кого-то есть более эффективный файл библиотеки для TFT, используемый здесь, пожалуйста, дайте мне знать.
Шаг 3. Контроллер явки
См. Инструкции о том, как сделать контроллер явки / очков.
Полная схема управляет 16 точками и 15 аксессуарами, такими как освещение, звуки, проигрыватель и т. Д.
Рекомендуемые:
Простая автоматизированная модель железной дороги точка-точка: 10 шагов (с изображениями)
Простая автоматизированная модель железной дороги от точки к точке: микроконтроллеры Arduino отлично подходят для автоматизации макетов модели железной дороги. Автоматизация компоновки полезна для многих целей, например, для размещения вашей компоновки на дисплее, где операцию компоновки можно запрограммировать для запуска поездов в автоматизированной последовательности. Я
Модель железной дороги, управляемая клавиатурой V2.5 - Интерфейс PS / 2: 12 шагов
Модель железной дороги, управляемая клавиатурой V2.5 | Интерфейс PS / 2: с помощью микроконтроллеров Arduino существует множество способов управления макетами макетов железных дорог. У клавиатуры есть большое преимущество в том, что у нее есть много клавиш для добавления множества функций. Здесь давайте посмотрим, как мы можем начать с простой схемы с локомотивом и
Модель железной дороги, управляемая сенсорной панелью ноутбука - Интерфейс PS / 2 Arduino: 14 шагов
Модель железной дороги, управляемая сенсорной панелью ноутбука | Интерфейс PS / 2 Arduino: сенсорная панель ноутбука - одно из лучших устройств для использования в качестве входа для проектов микроконтроллеров. Итак, сегодня давайте реализуем это устройство с микроконтроллером Arduino для управления модельной железной дорогой. Используя тачпад PS / 2, мы сможем управлять 3 т
Простая автоматизированная модель железной дороги «точка-точка» с двумя поездами: 13 шагов (с изображениями)
Простая автоматизированная модель железной дороги «точка-точка» с двумя поездами: микроконтроллеры Arduino - отличный способ автоматизации макетов модели железной дороги из-за их низкой стоимости, оборудования и программного обеспечения с открытым исходным кодом, а также большого сообщества, которое поможет вам. Для модельных железных дорог микроконтроллеры Arduino могут оказаться
Простая автоматизированная модель петли железной дороги с дворовым сайдингом: 11 шагов
Простая автоматизированная модель петли железной дороги с подъездной дорогой: этот проект является обновленной версией одного из моих предыдущих проектов. Здесь используется микроконтроллер Arduino, отличная платформа для создания прототипов с открытым исходным кодом, для автоматизации макета модели железной дороги. Планировка состоит из простой овальной петли и дворового сайдинга