Мазмуну:

Модель темир жолу - Arduino колдонуучу DCC командалык станциясы :: 3 кадам
Модель темир жолу - Arduino колдонуучу DCC командалык станциясы :: 3 кадам

Video: Модель темир жолу - Arduino колдонуучу DCC командалык станциясы :: 3 кадам

Video: Модель темир жолу - Arduino колдонуучу DCC командалык станциясы :: 3 кадам
Video: Спринтер сгорел со Спринтерской скоростью близ Шымкентта 😨 #шымкент #спринтер #автобус #казахстан 2024, Декабрь
Anonim
Image
Image
Arduino Code - Баскычтобу бар командалык станция
Arduino Code - Баскычтобу бар командалык станция

2018-жылдын августунда жаңыртылган-жаңы Instructable караңыз:

2016 -жылдын 28 -апрелин жаңыртуу: Азыр Command Stationка 16 катышуу / пункт башкаруу мүмкүнчүлүгү. Бурулуштар T1 - T8 'B' баскычы аркылуу жеткиликтүү болот T9 - T16 'C' баскычы аркылуу жеткиликтүү

2016 -жылдын 10 -мартында жаңыртуу:

Эми Командалык станцияга 8 катышуу / пункт көзөмөлдөө мүмкүнчүлүгү кошулду. Arduino коду тиешелүү түрдө NMRA стандарттуу пакетин колдонуу менен жаңыртылды (ошондой эле катышууну көзөмөлдөө үчүн Lenz / Atlas Compact маалымат пакеттерин изилдөөнүн негизинде).

Бурамалар T1 - T8 'B' баскычы аркылуу жеткиликтүү

Колдонулган маалымат пакетинин кабыл алгыч схемасында жана Arduino коду боюнча көрсөтмөлөрдү караңыз.

Жаңыртуу 18 -январь, 2016 -жыл:

Мен учурдагы маанидеги резисторду (1k5 ом) жана конденсаторду (10 uf) кошуп, 3200 мАмпс чокусу аныкталганда электрди өчүрүү үчүн Arduino кодун өзгөрттүм. H-көпүрөсүнүн спецификасында жүктөөдө 1 амперге 377 уАнын чыгуу сезими агымы айтылат.

1.5 к ом резистору аналогдук пин 6 боюнча 565 вольтту жеткирет. Аналогдук кириште 1023 кадам менен, бул 0,565 * 1023 /5 = 116 ампер жүктөмүнө берет.

A = 100 * (analogRead (AN_CURRENT)) / 116; A = A * 10; (миллиамптарда натыйжа берүү үчүн)

Миллиампердеги жүк агымы TFTде көрсөтүлөт

Толук 4x4 клавиатурасы F1ден F8ге чейинки функцияларды жана башка#локосту (1-19) "#" баскычы аркылуу камтыйт (10дон башталган сандык баскычтарга 10 кошуу үчүн).

Arduino коду нускама байттары үчүн NMRA стандартын камтыйт.

Шилтемени караңыз

www.nmra.org/sites/default/files/s-9.2.1_20…

(6 -бет өзгөчө актуалдуу)

Пакеттер ылдамдык кадамдарынын санына, узун / кыска дарекке жана Function Group көрсөтмөлөрүнө ылайык жайгаштырылган.

Бардык көрсөтмө байттардын алдында '1' бит 11111111дин преамбуласы (же бош турган пакет), андан кийин;

мис. 4 байттык дарек 0 00000011 0 00111111 0 10000011 0 10111111

loco 3, 128 ылдамдык кадамдарына, алдыга карай багытка жана 3 -кадамга барабар (акыркы байт XOR катасын текшерүү)

мис. 3 байттык дарек 0 00000011 0 10010000 0 10110011

loco 3кө барабар, функционалдык топ 1, FL жарыктары плюс XOR байт (a '0' бит ар бир байтты бөлүп турат)

Локо 12 үчүн тиркелген көрсөтмө видеону караңыз.

F1 - F8 функциялары 'A' баскычы, DIR ('*' баскычы = багыты) FL ('0' баскычы = жарыктар) жана '#' клавиатурасы аркылуу жеткиликтүү. "D" ачкычы азыр "Өзгөчө кырдаал STOP" үчүн колдонулат.

DCC маалымат булактары жана Arduino коду үчүн интернеттеги ар кандай провайдерлерге рахмат.

Атап айтканда, бул долбоор Майкл Бланктан жана анын "Жөнөкөй DCC - командалык станциядан" шыктандырылган.

www.oscale.net/en/simpledcc

4x4 Matrix Array 16 Key Membrane Switch Keypad (ebay) £ 1.75

2.2 дюймдук 240x320 Serial SPI TFT LCD дисплей модулу (ebay) £ 7.19

УНИВЕРСАЛ 12V 5A 60W КУЧТУУ АС Адаптер (ebay) £ 6.49

Nano V3.0 Arduino үчүн CH340G 5V 16M шайкеш ATmega328P менен (ebay) 2 x £ 3.30 = £ 6.60

Motor Driver Module LMD18200T Arduino R3 үчүн (ebay) £ 6.99

Коннекторлор, зым, веро тактасы, потенциометр болжол менен £ 3.50

Бардыгы £ 32.52

Tft экраны жана 1 x наносу жок негизги командалык станция £ 22.03 болмок

[Эскертүү: TFT дисплейине эстутум картасын кошуп, тандалган кыймылдаткычтардын сүрөттөрүн көрсөтүү үчүн кодду өзгөртүүгө болот, бирок эскиз үчүн көбүрөөк эстутумду түзүү үчүн китепкана коддорун түзөтүү керек. Учурдагы эскиздин өлчөмү TFT Arduino Nano үчүн максималдуу]

Майкл Бланктын түпнуска Arduino коду бир кыймылдаткыч үчүн болгон, алдыга / артка, эч кандай функция башкаруусу жок, клавиатура жана дисплей жок.

Мен кодду 1 - 19 кыймылдаткычтарды, дисплей экранын, багытты, жарыктарды, 8 функцияны, авариялык токтотууну жана автоматтык токтун чегин камтыйт.

LMD18200T көпүрөсү 3 амперге чейин көтөрө алат, бул аны бардык масштабдарга, анын ичинде G-масштабына (бакча поезддери) ылайыктуу кылат. Электр энергиясы жана электрдик жабдуулар аба ырайына далил келтире албасаңыз, үй ичинде гана колдонууга жарактуу. Менде жайкы үйдө командирлик станция бар, темир жол аркылуу зым дубал аркылуу трекке чуркайт.

1 -кадам: Arduino Code - Баскычтобу бар командалык станция

Arduino коду зымга дал келбеген схемада 2 катаны көрсөткөнү үчүн tvantenna2759га рахмат, азыр жаңыртылды (21 окт 2017).

Азыр Командалык станцияга 16 бурулуш кошулду. Arduino Mini Pro модулун колдонуп, катышуу / упай схемасында көрсөтмөлөрдү караңыз.

Катышууну көзөмөлдөөнү камтыган өзгөртүлгөн код төмөндө тиркелет.

Негизги аксессуарлардын декодеринин пакети: 0 10AAAAAA 0 1AAACDDD 0 EEEEEEEE 1 Ленз (Compact / Atlas) тарабынан пункттарды көзөмөлдөө үчүн колдонулган пакетти анализдеп, мен байт 1 жана 2 үчүн төмөнкү экилик пакет форматын колдондум: tunAddr = 1 Turna 1a: 1000 0001 1111 1000 / Катышуу 1б: 1000 0001 1111 1001 Катышуу 2а: 1000 0001 1111 1010 / Катышуу 2b: 1000 0001 1111 1011 Катышуу 3а: 1000 0001 1111 1100 / Катышуу 3b: 1000 0001 1111 1101 Катышуу 4а: 1000 0001 1111 1110 / Катышуу 4b: 1000 0001 1111 1111 tunAddr = 2 ----------------------------------------- -------------------------------------------------- ----------------- Катышуу 5а: 1000 0010 1111 1000 / Катышуу 5б: 1000 0010 1111 1001 Катышуу 6а: 1000 0010 1111 1010 / Катышуу 6b: 1000 0010 1111 1011 Катышуу 7а: 1000 0010 1111 1100 / Катышуу 7b: 1000 0010 1111 1101 Катышуу 8а: 1000 0010 1111 1110 / Катышуу 8b: 1000 0010 1111 1111 ----------------------- -------------------------------------------------- ---------------------------------- Шайлоо 9а: 1000 0011 1111 1000 / Катышуу 9б: 1000 0011 1111 1001 ж.б. ………

Өзгөртүлгөн коддон үзүндү: Дагы 2 "struct" билдирүүсүн кошуу // аксессуар декодер 0x80 & адрес 1 x.data [1] = 0; }

void o'zgarishlar_tun2 (структура Билдирүү & x) {x.data [0] = 0x82; // аксессуар декодер 0x80 & адрес 2 x.data [1] = 0; }

Катышуу үчүн жаңы боштукту кошуңуз: boolean read_turnout () {delay (20);

логикалык өзгөрүү_t = жалган; get_key ();

эгер (key_val> = 101 && key_val <= 404 && turn == 1) {

маалыматтар = 0xf8; // = бинардык 1111 1000

түзөтүү_түн1 (msg [1]);

}

эгер (key_val> = 505 && key_val <= 808 && turn == 1) {

маалыматтар = 0xf8; // = бинардык 1111 1000

edit_tun2 (msg [1]);

}

if (key_val == 101 && turn == 1) {

эгер (tun1 == 1) {

маалыматтар | = 0; // t1a

өзгөртүлгөн_т = туура;}

эгер (tun1 == 0) {

маалыматтар | = 0x01; // t1b

өзгөртүлгөн_т = туура;}

}

эгер (key_val == 202 && turn == 1) {

эгер (tun2 == 1) {

маалыматтар | = 0x02; // t2a

change_t = true;

}

эгер (tun2 == 0) {

маалыматтар | = 0x03; // t2b

change_t = true; }

}

эгер (key_val == 303 && turn == 1) {

эгер (tun3 == 1) {

маалыматтар | = 0x04; // t3a

change_t = true;

}

эгер (tun3 == 0) {

маалыматтар | = 0x05; // t3b

өзгөртүлгөн_т = туура;}

}

эгер (key_val == 404 && turn == 1) {

эгер (tun4 == 1) {

маалыматтар | = 0x06; // t4a

change_t = true;

}

эгер (tun4 == 0) {

маалыматтар | = 0x07; // f4b

өзгөртүлгөн_т = туура;}

}

эгер (key_val == 505 && turn == 1) {

эгер (tun5 == 1) {

маалыматтар | = 0; // t5a

change_t = true;

}

эгер (tun5 == 0) {

маалыматтар | = 0x01; // t5b

өзгөртүлгөн_т = туура;}

}

жана башкалар ………………….

2 -кадам: Arduino Code - TFT Display

Arduino коду - TFT дисплейи
Arduino коду - TFT дисплейи
Arduino коду - TFT дисплейи
Arduino коду - TFT дисплейи
Arduino коду - TFT дисплейи
Arduino коду - TFT дисплейи
Arduino коду - TFT дисплейи
Arduino коду - TFT дисплейи

Дисплей схемасы 16 бурулуштун абалын көрсөтүү үчүн өзгөртүлгөн код менен өзгөрүүсүз калат. Эскертүү: Китепкананын коду эскиз коддун дээрлик баардыгын ээлейт жана жаңы мүмкүнчүлүктөргө аз орун калтырат. Эгерде кимдир бирөө бул жерде колдонулган TFT үчүн эффективдүү китепкана файлына ээ болсо, мага кабарлаңыз.

3 -кадам: Катышуу контроллери

Turnout Controller
Turnout Controller
Turnout Controller
Turnout Controller

Катышуу / Упайларды контролер кылуу боюнча көрсөтмөлөрдү караңыз.

Толук схема 16 чекитти жана 15 аксессуарды көзөмөлдөйт, мисалы жарыктар, үндөр, айланма ж.б.

Сунушталууда: