Мазмұны:

Темір жол үлгісі - Arduino қолданатын DCC командалық станциясы :: 3 қадам
Темір жол үлгісі - Arduino қолданатын DCC командалық станциясы :: 3 қадам

Бейне: Темір жол үлгісі - Arduino қолданатын DCC командалық станциясы :: 3 қадам

Бейне: Темір жол үлгісі - Arduino қолданатын DCC командалық станциясы :: 3 қадам
Бейне: Ол мәжбүрлі түрде шығарылды! ~ Голландиялық иммигранттардың тасталған үйі 2024, Шілде
Anonim
Image
Image
Arduino коды - пернетақтасы бар командалық станция
Arduino коды - пернетақтасы бар командалық станция

2018 жылдың тамызында жаңартылды-жаңа нұсқаулықты қараңыз:

2016 жылғы 28 сәуірдегі жаңарту: Енді командалық станцияға 16 келу / нүктені бақылау мүмкіндігі. T1 - T8 бұрмалары «B» пернесі арқылы қол жетімді T9 - T16 бұрмалары «C» пернесі арқылы қол жетімді

2016 жылғы 10 наурыздағы жаңарту:

Енді командалық станцияға 8 келу / нүктені басқару мүмкіндігі қосылды. Arduino коды сәйкесінше бұрмалар үшін NMRA стандартты пакетін қолдана отырып жаңартылды (сонымен қатар бұрылысты басқаруға арналған Lenz / Atlas Compact деректер пакеттерін зерттеуге негізделген).

T1 - T8 бұрмалары «B» пернесі арқылы қол жетімді

Қолданылатын деректер пакетін қабылдағыш схемасы бойынша нұсқаулықты қараңыз және Arduino коды қажет.

2016 жылдың 18 қаңтарында жаңарту:

Мен тізбеге ағымдағы резистор (1к5 Ом) мен конденсаторды (10 uf) қостым және> 3200 мАмп максималды ток анықталған кезде қуатты өшіру үшін Arduino кодын өзгерттім. H-bridge спецификациясы жүктемедегі 1 ампер үшін 377 uA шығыс сезімтал токты көрсетеді.

1,5 к ом резисторы 6 аналогтық істікшеге бір ампер үшін 0,565 вольтты жеткізеді. Аналогты кірістегі 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 бет ерекше маңызды)

Пакеттер жылдамдықтар санына, ұзақ / қысқа адрестерге және Function Group нұсқауларына сәйкес орналастырылған.

Барлық нұсқаулық байттардың алдында 11111111 (немесе бос пакет) '1' преамбуласы болады;

мысалы 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' пернесі = шамдары) және '#' пернесі арқылы қол жетімді, сандық пернетақтада 10 -нан 19 -ға дейінгі локустарды береді. 'D' пернесі енді 'төтенше жағдайды тоқтату' үшін қолданылады.

DCC ақпарат көздері мен Arduino коды үшін интернеттегі әр түрлі провайдерлерге рахмет.

Атап айтқанда, бұл жобаны Майкл Бланк және оның «Қарапайым DCC - командалық станция» шабыттандырды.

www.oscale.net/kz/simpledcc

4x4 матрицалық массив 16 пернелік мембраналық пернетақта (ebay) £ 1,75

2,2 дюймдік 240x320 сериялық SPI TFT LCD дисплей модулі (ebay) 7,19 фунт

УНИВЕРСАЛДЫ 12В 5А 60ВТ ҚУАТТЫ АСПЕР Адаптері (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 наносы жоқ негізгі командалық станция 22,03 фунт стерлингті құрайды

[Ескертпе: TFT дисплейіне жад картасын қосуға және таңдалған қозғалтқыштардың суреттерін көрсету үшін кодты өзгертуге болады, бірақ эскизге көбірек жад жасау үшін кітапхана кодтарын өзгерту қажет. Ағымдағы эскиз өлшемі TFT Arduino Nano үшін максималды]

Майкл Бланктың түпнұсқалық Arduino коды бір қозғалтқышқа арналған, тек қана басқару тетігі жоқ, пернетақта мен дисплейсіз алға / артқа.

Мен кодты 1 - 19 қозғалтқышты, дисплей экранын, бағытты, шамдарды, 8 функцияны, апаттық тоқтауды және автоматты ток шегін қосатын етіп өзгерттім.

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

1 -қадам: Arduino коды - пернетақтасы бар командалық станция

Ардуино коды сымға сәйкес келмейтін, схемада 2 қатені көрсеткені үшін tvantenna2759 -ге рахмет, қазір жаңартылды (21 қазан 2017 ж.).

Енді Командалық станцияға 16 бұрылыс қосылды. Arduino Mini Pro модулін қолдана отырып, бұрылыс / нүкте схемасында нұсқаулықты қараңыз.

Келушілерді басқаруды қоса, өзгертілген код төменде берілген.

Негізгі аксессуарларды шешуші пакет: 0 10AAAAAA 0 1AAACDDD 0 EEEEEEEE 1 Lenz (Compact / Atlas) нүктелерді бақылау үшін пайдаланатын пакетті талдай отырып, мен байт 1 және 2 үшін келесі екілік пакеттік форматты қолдандым: tunAddr = 1 1а: 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 / Бару 6б: 1000 0010 1111 1011 Бару 7а: 1000 0010 1111 1100 / Бару 7б: 1000 0010 1111 1101 8а қатысушылар: 1000 0010 1111 1110 / Бару 8б: 1000 0010 1111 1111 ----------------------- -------------------------------------------------- ---------------------------------- Бару 9а: 1000 0011 1111 1000 / Бару 9б: 1000 0011 1111 1001 және т.б. ………

Өзгертілген кодтан үзінді: тағы 2 «struct» хабарының жаңартуларын қосыңыз, o'zgarishlar_tun1 (struct Message & x) {x.data [0] = 0x81; // көмекші декодер 0x80 & адрес 1 x.data [1] = 0; }

void o'zgarishlar_tun2 (struct Message & 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

o'zgartirish_түн1 (хабар [1]);

}

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

деректер = 0xf8; // = екілік 1111 1000

o'zgartirish_түн2 (хабар [1]);

}

егер (key_val == 101 && turn == 1) {

егер (tun1 == 1) {

деректер | = 0; // t1a

өзгертілген_т = шын;}

егер (tun1 == 0) {

деректер | = 0x01; // t1b

өзгертілген_т = шын;}

}

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

егер (tun2 == 1) {

деректер | = 0x02; // t2a

өзгертілген_т = ақиқат;

}

егер (tun2 == 0) {

деректер | = 0x03; // t2b

өзгертілген_т = ақиқат; }

}

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

егер (tun3 == 1) {

деректер | = 0x04; // t3a

өзгертілген_т = ақиқат;

}

егер (tun3 == 0) {

деректер | = 0x05; // t3b

өзгертілген_т = шын;}

}

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

егер (tun4 == 1) {

деректер | = 0x06; // t4a

өзгертілген_т = ақиқат;

}

егер (tun4 == 0) {

деректер | = 0x07; // f4b

өзгертілген_т = шын;}

}

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

егер (tun5 == 1) {

деректер | = 0; // t5a

өзгертілген_т = ақиқат;

}

егер (tun5 == 0) {

деректер | = 0x01; // t5b

өзгертілген_т = шын;}

}

т.б ………………….

2 -қадам: Arduino коды - TFT дисплейі

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

Дисплей схемасы 16 бұрманың күйін көрсету үшін өзгертілген кодпен өзгеріссіз қалады. Ескерту: Кітапхана коды эскиз -кодтық жадтың барлығын дерлік алады және жаңа мүмкіндіктерге орын қалдырмайды. Егер біреуде TFT үшін тиімдірек кітапхана файлы болса, маған хабарлаңыз.

3 -қадам: бұрылысты реттегіш

Бұрылуды реттегіш
Бұрылуды реттегіш
Бұрылуды реттегіш
Бұрылуды реттегіш

Қатысу / балл контроллерін қалай жасау керектігі туралы нұсқаулықты қараңыз.

Толық схема 16 нүктені және 15 аксессуарды басқарады, мысалы шамдар, дыбыстар, бұрылмалы табақ және т.

Ұсынылған: