![Садовый поезд - Arduino Wireless NMRA DCC: 4 шага (с изображениями) Садовый поезд - Arduino Wireless NMRA DCC: 4 шага (с изображениями)](https://i.howwhatproduce.com/images/004/image-12000-5-j.webp)
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-23 15:05
![Image Image](https://i.howwhatproduce.com/images/004/image-12000-7-j.webp)
![](https://i.ytimg.com/vi/biYFbV3OO3A/hqdefault.jpg)
![Дизайн системы Дизайн системы](https://i.howwhatproduce.com/images/004/image-12000-8-j.webp)
В дополнение к предыдущим инструкциям по использованию DCC в системе тупикового рельса, я развил идею дальше, создав портативную командную станцию DCC с клавиатурой и ЖК-дисплеем. Командная станция содержит все кодирование, необходимое для инструкций NMRA DCC, однако вместо подключения к рельсам данные передаются с помощью радиомодуля RF24L01 + на приемник, установленный в грузовике или под локомотивом - везде, где позволяет место.
Конечно, ваш локомотив должен быть оснащен декодером грузоподъемности, подходящим для двигателей двигателей.
Шаг 1: Дизайн системы
![Дизайн системы Дизайн системы](https://i.howwhatproduce.com/images/004/image-12000-9-j.webp)
В основе дизайна лежит Arduino Pro Mini. Использование Fritzing для разработки схемы и производства печатных плат.
Я смог использовать одну и ту же печатную плату как для передатчика, так и для приемника, что позволило сэкономить на некоторых затратах.
Передатчик имеет соединения для клавиатуры и ЖК-дисплея, в то время как приемник не требует их и использует H-мост для питания выхода DCC для локомотива.
Дальнейшее развитие включает соединения для большего H-моста, если требуется для более мощных локомотивов.
PCF8574 можно удалить, если вы используете ЖК-дисплей, который идет в комплекте с рюкзаком, позволяющий SCA / SCL-соединениям на Arduino питать дисплей, используя только 2 провода. Список запчастей: всего = около 60 фунтов стерлингов за командную станцию DCC + 1 приемник Дополнительные расходы на приемник = 10,00 фунтов стерлингов за штуку. + батарейки
Arduino Pro Mini. x 2 = 4 фунта стерлингов
Мембранная клавиатура 4x3 = 3,00 фунта стерлингов
ЖК-дисплей 20 x 4 = 7,00 фунтов стерлингов
PCF5874 = 1,80 фунта стерлингов
NRF24L01 +. радиомодули x 2 = 5,80 £
Изготовление печатной платы за 10 шт. (Или можно использовать плату Vero) = 24 £ или 4,80 £ за 2 шт.
Регулятор 3,3 В = 0,17 £ (упаковка из 25 шт. От RS Comp)
Регулятор 5 В LM7805 = 0,30 £
H-мост SN754410ne = 3,00 £
Перезаряжаемые батареи Lloytron емкостью 2700 мАч x 12 = 22,00 фунта стерлингов. (батареи с меньшим номиналом мАч дешевле)
Конденсаторы, электролизеры, контакты, разъемы и т. Д. = 2,00 фунта стерлингов приблизительно
Корпус 190x110x60 мм = 8,00 £
Передатчик - зарядное устройство для телефона / аккумулятор = 2,00 фунта стерлингов
Шаг 2: передатчик
![Передатчик Передатчик](https://i.howwhatproduce.com/images/004/image-12000-10-j.webp)
На принципиальной схеме контакты D2 - D8 на Arduino Pro Mini подключены к клавиатуре. Потенциометр 100 кОм подключен к аналоговому контакту A0 для регулировки скорости. Контакты SDA и SCL, образующие микросхему PCF8574, подключены к контактам A4 и A5 на Arduino Pro Mini с помощью припаянных проводов к контактам на верхнем слое Pro Mini.
Эскиз Arduino прилагается для скачивания.
Я использовал ЖК-дисплей 20 x 4, позволяющий выводить 4 строки информации по 20 символов в каждой. На клавиатуре есть следующее меню:
От 1 до 9 = локальный адрес * = направление 0 = свет # = функциональное меню для клавиш с 1 по 8
Базовое описание эскиза Arduino Pro Mini: эта строка кода упорядочивает сообщение DCC в формате HEX. struct Сообщение сообщение [MAXMSG] = {
{{0xFF, 0, 0xFF, 0, 0, 0, 0}, 3}, // сообщение ожидания
{{locoAdr, 0, 0, 0, 0, 0, 0}, 3} // 3-байтовый адрес
};
Для хранения настроек каждого локомотива создается ряд массивов следующим образом:
int la [20]; // массив для хранения номеров локомотивов
int sa [20]; // массив для хранения значений скорости
int fda [20]; // массив для хранения каталога
int fla [20]; // массив для хранения источников света
int f1a [20]; // массив для хранения fun1…..
int f8a [20]; // массив для хранения fun8
Чтобы можно было изменять инструкции DCC по ходу:
Для инструкций по скорости: voidmend_speed (struct Message & x) {
x.data [0] = locoAdr;
x.data [1] = 0x40; // locoMsg с 28 шагами скорости}
Для инструкций по функциям:
void correc_group1 (struct Message & x) {
x.data [0] = locoAdr;
x.data [1] = 0x80; // locoMsg с инструкцией первой группы 0x80}
Основной цикл скетча:
недействительный цикл (недействительный) {если (read_locoSpeed ()) {build_dcc_msg_speed ();
send_data_1 (); // отправляем данные по беспроводной сети
задержка (10);
send_data_3 (); // выводим данные на ЖК-дисплей
send_data_4 (); // отображаем данные на последовательном мониторе}
if (read_function ()) {
Assembly_dcc_msg_group1 ();
send_data_1 ();
задержка (10);
send_data_3 (); }}
Обновлять данные при изменении скорости:
boolean read_locoSpeed () Это обнаруживает новый адрес локомотива, скорость или настройку направления и соответственно изменяет HEX-данные. Здесь я указал 28 шагов скорости и для соответствия стандарту NMRA S 9.2 данные скорости должны быть найдены из справочной таблицы в 'speed_step ()'
void speed_step () {переключатель (locoSpeed) {
случай 1: данные | = 0x02; перерыв;
случай 2: данные | = 0x12; перерыв;
случай 3: данные | = 0x03; перерыв;
………
случай 28: данные | = 0x1F; перерыв; }}
Обновлять данные при изменении функций:
логическая функция read_function ()
если (fla [locoAdr] == 0) {данные = 0x80;
} // фары выключены
if (fla [locoAdr] == 1) {
данные = 0x90;
} // фары включены
Для каждой функции:
если (f2a [locoAdr] == 0) {данные | = 0; }. // Функция 2 выключена
if (f2a [locoAdr] == 1) {
данные | = 0x02; // Функция 2 на} 'данных' создается путем объединения ['| =' составного побитового или] шестнадцатеричных кодов для каждой функции.
Шаг 3: Получатель
![Получатель Получатель](https://i.howwhatproduce.com/images/004/image-12000-11-j.webp)
На принципиальной схеме показаны контакты 5 и 6 Arduino Pro Mini, которые используются для передачи сигнала DCC на H-мост. Пары H-моста подключаются параллельно для увеличения допустимой нагрузки по току. В зависимости от тока, потребляемого локомотивом, может потребоваться присоединение радиатора к 16-контактному DIP-устройству, или H-мост для тяжелых условий эксплуатации может быть подключен снаружи.
Скетч Arduino прилагается для загрузки. Сигнал DCC формируется часами, работающими на частоте 2 МГц.
void SetupTimer2 () выполняет эту работу.
Часы включают «короткие импульсы» (58 мксек) для «1» в данных DCC и «длинные импульсы» (116 мксек) для «0» в данных DCC.
Цикл void получает данные от радиомодуля, и если действительная строка найдена, данные преобразуются в данные DCC.
недействительный цикл (void) {если (radio.available ()) {bool done = false; done = radio.read (inmsg, 1); // читаем полученные данные
char rc = inmsg [0]; // помещаем считанный символ в этот массив
если (rc! = 0) {. // если символ не равен нулю
inString.concat (RC); // создаем сообщение}
if (rc == '\ 0') {// если символ равен '/ 0' конец сообщения
Serial.println (inString); // выводим собранное сообщение
нить(); // деконструируем строковое сообщение, чтобы получить инструкции DCC
} } }
Шаг 4: Запустите локомотивы
![Запустите локомотивы Запустите локомотивы](https://i.howwhatproduce.com/images/004/image-12000-12-j.webp)
Чтобы избежать прерывания данных при движении нескольких поездов по одному и тому же пути, необходимо отключить контакты между колесами и путём для каждого задействованного локомотива и грузовика.
Наслаждайтесь поездами, курсирующими бесплатно, независимо от состояния путей - какая разница! Никаких хлопот, старт-стопа и очистки не требуется.
Я использовал перезаряжаемые батареи LLoytron AA x 12. Я сделал зарядное устройство специально для них, которое заряжает 6 штук за раз. (см. инструкции)
Рекомендуемые:
Стимпанк-поезд: 5 шагов (с изображениями)
![Стимпанк-поезд: 5 шагов (с изображениями) Стимпанк-поезд: 5 шагов (с изображениями)](https://i.howwhatproduce.com/images/001/image-753-51-j.webp)
Steampunk Train: Мне посчастливилось получить подержанную базу для инвалидных колясок от друга. Мне действительно потребовалось заменить обе батареи, чтобы он заработал, но это была небольшая цена за такую универсальную платформу для строительства опор. Я решил
Садовый монитор: 3 шага
![Садовый монитор: 3 шага Садовый монитор: 3 шага](https://i.howwhatproduce.com/images/007/image-19743-j.webp)
Садовый монитор: это самая последняя и полная версия моих садовых мониторов. Я делал предыдущие версии для разных целей, например, с ЖК-дисплеем, а в другом - с ESP8266. Однако я лучше задокументировал эту версию, поэтому решил загрузить ее. Когда
Магазин Санты 2017, Поезд: 4 шага (с иллюстрациями)
![Магазин Санты 2017, Поезд: 4 шага (с иллюстрациями) Магазин Санты 2017, Поезд: 4 шага (с иллюстрациями)](https://i.howwhatproduce.com/images/001/image-1662-64-j.webp)
Магазин Санты 2017, Поезд: Магазин Санты 2017 - это обновленная версия Магазина Санты 2016. Я хотел добавить еще один поезд, но единственная оставшаяся комната была на потолке. Все, что вам нужно сделать, чтобы поезд ехал вверх ногами, - это использовать магниты. Верно? Конечно, есть несколько мелочей
Как сделать солнечный садовый светильник: 3 шага (с иллюстрациями)
![Как сделать солнечный садовый светильник: 3 шага (с иллюстрациями) Как сделать солнечный садовый светильник: 3 шага (с иллюстрациями)](https://i.howwhatproduce.com/images/001/image-1950-79-j.webp)
Как сделать солнечный садовый свет: Привет, ребята, это мой первый самостоятельный проект в инструкциях, надеюсь, вам понравится
Волоконно-оптический и светодиодный миниатюрный садовый светильник: 10 шагов (с изображениями)
![Волоконно-оптический и светодиодный миниатюрный садовый светильник: 10 шагов (с изображениями) Волоконно-оптический и светодиодный миниатюрный садовый светильник: 10 шагов (с изображениями)](https://i.howwhatproduce.com/images/003/image-8262-34-j.webp)
Волоконно-оптический и светодиодный миниатюрный садовый светильник: в этом проекте используются светодиоды и волоконная оптика для освещения крошечного сада, полного цветов, листьев и травы. Коробка сделана из акрилового листа, работает от 9-вольтовой батареи и имеет сдвижную дверцу на дне для легкого доступа к батарее. Я собирал