Բովանդակություն:
- Քայլ 1. Arduino կոդ - հրամանատարական կայան `ստեղնաշարով
- Քայլ 2: Arduino կոդ - TFT էկրան
- Քայլ 3: Մասնակցության վերահսկիչ
Video: Մոդելային երկաթուղի - DCC հրամանատարական կայան օգտագործելով Arduino :: 3 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:49
Թարմացվել է օգոստոս 2018-տես նոր Instructable ՝
Թարմացում 2016 թ. Ապրիլի 28. Այժմ 16 մասնակցության / միավորների վերահսկման կարողություն դեպի հրամանատարական կայան: Մարդկանց մասնակցությունը T1 - T8 հասանելի է «B» ստեղնով «T» - T16 մասնակցությունը հասանելի է «C» ստեղնով
Թարմացում 10 մարտի 2016 թ
Այժմ հրամանատարական կայանին ավելացվել է մասնակցության / միավորների կառավարման 8 հնարավորություն: Arduino ծածկագիրը համապատասխանաբար թարմացվել է ՝ օգտագործելով NMRA ստանդարտ փաթեթը մասնակցության համար (նույնպես հիմնված է Lenz / Atlas Compact տվյալների փաթեթների ուսումնասիրության վրա ՝ մասնակցության վերահսկման համար):
Մարդկանց մասնակցությունը T1 - T8 հասանելի է «B» ստեղնով
Տե՛ս հրահանգվող տվյալների փաթեթների ընդունիչ սխեմայի վրա և անհրաժեշտ է Arduino ծածկագիր:
Թարմացում 18 հունվարի 2016 թ.
Շղթայում ես ավելացրել եմ ընթացիկ զգայարանային դիմադրություն (1k5 օմ) և կոնդենսատոր (10 uf) և փոփոխել եմ Arduino ծածկագիրը `հոսանքը անջատելու համար, երբ հայտնաբերվում է> 3200 մԱ / վ առավելագույն հոսանք: H-Bridge բնութագրում նշվում է ելքային զգայուն հոսանքի 377 uA 1 Amp բեռի մեջ:
Անալոգային կապի վրա 1.5 կիլոմատ հզորությամբ դիմադրիչը կհասցնի 0.565 վոլտ մեկ Amp- ի վրա: Անալոգային մուտքի վրա 1023 քայլով դա տալիս է 0.565 * 1023 /5 = 116 մեկ Ամպ բեռի համար:
A = 100 * (analogRead (AN_CURRENT)) / 116; A = A * 10; (արդյունքը տալ միլիամպերում)
Միլիմպերով բեռնվածության հոսանքը ցուցադրվում է TFT- ով
Լիարժեք 4x4 ստեղնաշարը ներառում է F1- ից F8 գործառույթները և ևս 10 տեղ (1-19) «#» ստեղնով (թվային ստեղներին 10-ը ավելացնելու համար ՝ սկսած loco 10-ից):
Արդուինոյի ծածկագիրը ներառում է NMRA ստանդարտը հրահանգների բայթերի համար:
Տես հղումը
www.nmra.org/sites/default/files/s-9.2.1_20…
(էջ 6 -ը առանձնահատուկ նշանակություն ունի)
Փաթեթները դասավորված են ըստ արագության աստիճանների, երկար / կարճ հասցեի և Ֆունկցիոնալ խմբի ցուցումների:
Բոլոր հրահանգների բայթերին նախորդում է 11111111 (կամ անգործուն փաթեթ) «1» բիթերի նախաբան, որին հաջորդում է.
օրինակ A 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 բայթ («0» բիթը բաժանում է յուրաքանչյուր բայթ)
Տե՛ս loco 12 -ի կցված ցուցադրական տեսանյութը:
F1 - F8 գործառույթները հասանելի են «A» ստեղնով, DIR («*» ստեղն = ուղղություն) FL («0» ստեղն = լույսեր) և «#» ստեղնը թվային ստեղնաշարի վրա տալիս է 10 -ից 19 -ի նշաններ: «D» ստեղն այժմ օգտագործվում է «Արտակարգ դադարեցման» համար:
Շնորհակալություն համացանցի տարբեր մատակարարների ՝ DCC տեղեկատվության աղբյուրների և Arduino կոդի համար:
Մասնավորապես, այս նախագիծը ոգեշնչվել է Մայքլ Բլանկից և նրա «Simple DCC - command station» - ից
www.oscale.net/hy/simpledcc
4x4 Matrix Array 16 Key Membrane Switch Keypad (ebay) 1.75 £
2.2 դյույմ 240x320 սերիական SPI TFT LCD ցուցադրման մոդուլ (ebay) 7.19 £
UNIVERSAL 12V 5A 60W POWER SUPPLY AC ADAPTER (ebay) 49 6.49
Nano V3.0 Arduino- ի համար CH340G 5V 16M- ով համատեղելի ATmega328P (ebay) 2 x £ 3.30 = 60 6.60
Շարժիչային վարորդի մոդուլ LMD18200T Arduino R3- ի համար (ebay) ՝ 6.99 ֆունտ ստեռլինգ
Միակցիչներ, մետաղալար, vero տախտակ, պոտենցիոմետր ՝ մոտ 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 Լենսի կողմից օգտագործված փաթեթը (Կոմպակտ / Ատլաս) միավորների վերահսկման համար ես օգտագործել եմ հետևյալ երկուական փաթեթային ձևաչափը ՝ 1 և 2 բայթերի համար. 0001 1111 1000 / մասնակցություն 1 բ: 1000 0001 1111 1001 Քվեարկությանը մասնակցած 2 ա: 1000 0001 1111 1010 / մասնակցություն 2 բ: 1000 0001 1111 1011 Քվեարկությանը մասնակցած 3 ա: 1000 0001 1111 1100 / մասնակցություն 3 բ: 1000 0001 1111 1101 Ընտրողների մասնակցություն 4a: 1000 0001 1111 1110 / մասնակցություն 4 բ: 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 «կառուցվածքային» հաղորդագրության թարմացում խուսափեք amend_tun1 (struct Հաղորդագրություն & x) {x.data [0] = 0x81; // աքսեսուարի ապակոդավորիչ 0x80 & հասցե 1 x.տվյալներ [1] = 0; }
անվավեր amend_tun2 (struct Message & x) {x.data [0] = 0x82; // աքսեսուարի ապակոդավորիչ 0x80 & հասցե 2 x.տվյալներ [1] = 0; }
Ավելացրեք նոր դատարկություն մասնակցության համար. Boolean read_turnout () {ուշացում (20);
բուլյան փոփոխված_տ = կեղծ; get_key ();
եթե (key_val> = 101 && key_val <= 404 && turn == 1) {
տվյալներ = 0xf8; // = երկուական 1111 1000
amend_tun1 (msg [1]);
}
եթե (key_val> = 505 && key_val <= 808 && turn == 1) {
տվյալներ = 0xf8; // = երկուական 1111 1000
amend_tun2 (msg [1]);
}
եթե (key_val == 101 && turn == 1) {
եթե (tun1 == 1) {
տվյալներ | = 0; // t1a
փոխված_t = ճշմարիտ;}
եթե (tun1 == 0) {
տվյալներ | = 0x01; // t1b
փոխված_t = ճշմարիտ;}
}
եթե (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
փոխված_t = ճշմարիտ;}
}
եթե (key_val == 404 && շրջադարձ == 1) {
եթե (tun4 == 1) {
տվյալներ | = 0x06; // t4a
փոխված_թ = ճշմարիտ;
}
եթե (tun4 == 0) {
տվյալներ | = 0x07; // f4b
փոխված_t = ճշմարիտ;}
}
եթե (key_val == 505 && turn == 1) {
եթե (tun5 == 1) {
տվյալներ | = 0; // t5a
փոխված_թ = ճշմարիտ;
}
եթե (tun5 == 0) {
տվյալներ | = 0x01; // t5b
փոխված_t = ճշմարիտ;}
}
և այլն ………………………
Քայլ 2: Arduino կոդ - TFT էկրան
Theուցադրման սխեման մնում է նույնը `փոփոխված ծածկագրով` 16 մասնակցի կարգավիճակը ցույց տալու համար: Նշում. Գրադարանի ծածկագիրը զբաղեցնում է էսքիզային ծածկագրի գրեթե ամբողջ հիշողությունը `քիչ տեղ թողնելով նոր գործառույթների համար: Եթե որևէ մեկն այստեղ օգտագործվող TFT- ի համար ավելի արդյունավետ գրադարանային ֆայլ ունի, խնդրում եմ ինձ տեղյակ պահի:
Քայլ 3: Մասնակցության վերահսկիչ
Տեսեք, թե ինչպես կարելի է դարձնել մասնակցության / միավորների վերահսկիչ:
Ամբողջական սխեման վերահսկում է 16 միավոր և 15 պարագաներ, ինչպիսիք են լույսերը, ձայները, պտտվող սարքը և այլն:
Խորհուրդ ենք տալիս:
Պարզ ավտոմատացված կետից կետ մոդել երկաթուղի. 10 քայլ (նկարներով)
Simple Automated Point to Point Model Երկաթուղի. Arduino միկրոկոնտրոլերները հիանալի են ավտոմատացնում մոդելային երկաթգծի դասավորությունը: Հատակագծերի ավտոմատացումն օգտակար է բազմաթիվ նպատակների համար, ինչպիսիք են ձեր դասավորությունը էկրանին դնելը, որտեղ դասավորության գործողությունը կարող է ծրագրավորվել գնացքների ավտոմատ հաջորդականությամբ աշխատելու համար: Լ
Ավտոմատ մակրո կենտրոնացման երկաթուղի. 13 քայլ (նկարներով)
Ավտոմատ մակրո կենտրոնացման երկաթուղի. Բարև համայնք, ես կցանկանայի ներկայացնել իմ դիզայնը մակրո կենտրոնացման ավտոմատացված երկաթուղու համար: Լավ, ուրեմն առաջին հարցը, թե որն է սատանան ուշադրության կենտրոնում գտնվող երկաթուղին և ինչի համար է այն օգտագործվում: Մակրո կամ մերձավոր լուսանկարչությունը շատ փոքրերին պատկերելու արվեստ է: Սա կարող է բ
DIY եղանակային կայան և WiFi սենսորային կայան. 7 քայլ (նկարներով)
DIY եղանակային կայան և WiFi սենսորային կայան. Այս նախագծում ես ձեզ ցույց կտամ, թե ինչպես կարելի է եղանակային կայան ստեղծել WiFi սենսորային կայանի հետ միասին: Սենսորային կայանը չափում է տեղական ջերմաստիճանի և խոնավության տվյալները և այն WiFi- ի միջոցով ուղարկում է եղանակային կայանին: Օդերևութաբանական կայանն այնուհետև ցուցադրում է
Աստղային պատերազմների դիտում հրամանատարական տողում. 14 քայլ
Աստղային պատերազմների դիտում հրամանի տողում. Կոկիկ հնարք, որը կարող է անել յուրաքանչյուր պատուհան համակարգիչ մի քանի պարզ հրամանով:
Նոութբուքի Touchpad վերահսկվող մոդելի երկաթուղի - PS/2 Arduino ինտերֆեյս. 14 քայլ
Նոութբուքի Touchpad վերահսկվող մոդելի երկաթուղի | Հ.Գ./2 Arduino ինտերֆեյս. Նոութբուքի հպման տախտակը հիանալի սարքերից է, որն օգտագործվում է որպես մուտք միկրոկոնտրոլերների նախագծերի համար: Այսպիսով, այսօր, եկեք գործարկենք այս սարքը Arduino միկրոկոնտրոլերով `մոդելի երկաթուղին վերահսկելու համար: PS/2 touchpad- ի միջոցով մենք կկարողանանք վերահսկել 3 տ