Satura rādītājs:

Dzelzceļa modelis - DCC vadības stacija, izmantojot Arduino :: 3 soļi
Dzelzceļa modelis - DCC vadības stacija, izmantojot Arduino :: 3 soļi

Video: Dzelzceļa modelis - DCC vadības stacija, izmantojot Arduino :: 3 soļi

Video: Dzelzceļa modelis - DCC vadības stacija, izmantojot Arduino :: 3 soļi
Video: Не модели поездов, а модели автомобилей: Автоматизированная система транспортных средств 2024, Jūlijs
Anonim
Image
Image
Arduino kods - komandu stacija ar tastatūru
Arduino kods - komandu stacija ar tastatūru

Atjaunināts 2018. gada augusts-skatiet jauno Instructable:

Atjauninājums 2016. gada 28. aprīlī: tagad Command Station nodrošina 16 dalībnieku / punktu kontroles iespējas. Pagriezieni T1 - T8 ir pieejami, izmantojot taustiņu "B". T9 - T16 pagriezieni ir pieejami, izmantojot taustiņu "C".

Atjauninājums 2016. gada 10. martā:

Tagad komandstacijai ir pievienota 8 aktivitāšu / punktu kontroles iespēja. Arduino kods ir attiecīgi atjaunināts, izmantojot NMRA standarta paketi dalībniekiem (arī pamatojoties uz pētījumu par Lenz / Atlas Compact datu paketēm, lai kontrolētu vēlētāju aktivitāti).

Pagriezieni T1 - T8 ir pieejami, izmantojot taustiņu "B"

Skatiet norādījumus par izmantoto datu pakešu uztvērēja ķēdi un nepieciešamo Arduino kodu.

Atjauninājums 2016. gada 18. janvārī:

Es ķēdei esmu pievienojis strāvas jutības rezistoru (1k5 omi) un kondensatoru (10 uf) un mainījis Arduino kodu, lai izslēgtu strāvu, kad tiek konstatēta maksimālā strāva> 3200 mAmps. H tilta specifikācijās norādīts izejas jutības strāva 377 uA uz 1 ampēru slodzē.

1,5 k ohm rezistors piegādās 0,565 volti uz Amp uz analogās tapas 6. Izmantojot 1023 soļus analogā ieejā, tas dod 0,565 * 1023/5 = 116 uz Amp slodzi.

A = 100 * (analogRead (AN_CURRENT)) / 116; A = A * 10; (lai iegūtu rezultātu miliampos)

Slodzes strāva miliampos tiek parādīta TFT

Pilna 4x4 tastatūra ietver funkcijas F1 līdz F8 un vēl 10 locos (1-19), izmantojot taustiņu "#" (lai pievienotu 10 ciparu taustiņiem, sākot no 10.

Arduino kods ietver NMRA standartu instrukciju baitiem.

Skatīt saiti

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

(6. lappusei ir īpaša nozīme)

Paketes ir sakārtotas atbilstoši ātruma soļu skaitam, garajai / īsajai adresei un funkciju grupas norādījumiem.

Pirms visiem instrukciju baitiem ir 1 bitu preambula 11111111 (vai dīkstāves pakete), kam seko;

piem. A 4 baitu adrese 0 00000011 0 00111111 0 10000011 0 10111111

vienāds ar loco 3, 128 ātruma soļiem, virzienu uz priekšu un ātruma 3. soli (beigu baits ir kļūdu pārbaude XOR)

piem., 3 baitu adrese 0 00000011 0 10010000 0 10110011

atbilst loko 3, funkciju grupai 1, FL iedegas plus XOR baits (“0” bits atdala katru baitu)

Skatiet pievienoto demonstrācijas video par loco 12.

Funkcijas F1 - F8 ir pieejamas, izmantojot taustiņu "A", taustiņu "DIR" ("*" taustiņš = virziens) FL (taustiņš "0" = gaismas), un taustiņš "#" ciparu tastatūrā nodrošina atrašanās vietas no 10 līdz 19. Tagad taustiņu "D" izmanto ārkārtas apturēšanai.

Paldies dažādiem pakalpojumu sniedzējiem tīmeklī par DCC informācijas avotiem un Arduino kodu.

Konkrēti, šo projektu iedvesmoja Maikls Blanks un viņa “Vienkāršā DCC - komandu stacija”

www.oscale.net/en/simpledcc

4x4 Matrix Array 16 atslēgu membrānas slēdža tastatūra (ebay) 1,75 £

2,2 collu 240x320 sērijas SPI TFT LCD displeja modulis (ebay) 7,19 Ls

Universāls 12V 5A 60W strāvas padeves maiņstrāvas adapteris (ebay) £ 6.49

Nano V3.0 Arduino ar CH340G 5V 16M saderīgu ATmega328P (ebay) 2 x 3,30 £ = 6,60 £

Motora draivera modulis LMD18200T Arduino R3 (ebay) £ 6,99

Savienotāji, vads, vero plāksne, potenciometrs aptuveni £ 3.50

Kopā £ 32,52

Pamata komandu stacija bez tft ekrāna un 1 x nano būtu £ 22,03

[Piezīme: TFT displejam ir iespējams pievienot atmiņas karti un mainīt kodu, lai tiktu parādīti izvēlēto dzinēju attēli, lai gan bibliotēkas kodi ir jārediģē, lai izveidotu vairāk atmiņas skicei. Pašreizējais skices lielums ir maksimālais TFT Arduino Nano]

Sākotnējais Michael Blank Arduino kods bija paredzēts vienam dzinējam, tikai uz priekšu / atpakaļ, bez funkciju vadības, bez tastatūras un bez displeja.

Esmu mainījis kodu, iekļaujot 1 - 19 motorus, displeja ekrānu, virzienu, gaismas, 8 funkcijas, avārijas apturēšanu un automātisko strāvas ierobežojumu.

LMD18200T tilts var pārvadīt līdz 3 ampēriem, kas padara to piemērotu visiem svariem, ieskaitot G mērogu (dārza vilcieni). Tīkla barošanas avots un elektronika ir piemēroti lietošanai tikai iekštelpās, ja vien jūs nevarat to izturēt pret laika apstākļiem. Man ir komandstacija vasarnīcā ar sliežu savienojošajiem vadiem, kas izplūst caur sienu uz sliežu ceļu.

1. darbība: Arduino kods - komandu stacija ar tastatūru

Pateicos tvantenna2759 par norādītajām 2 kļūdām shēmas shēmā, kur Arduino kods neatbilst elektroinstalācijai, tagad atjaunināta (2017. gada 21. oktobris).

Tagad komandstacijai pievienoti 16 dalībnieki. Skatiet pamācību apgriezienu skaita / punktu shēmā, izmantojot Arduino Mini Pro moduli.

Modificētais kods, ieskaitot balsošanas kontroli, ir pievienots zemāk.

Pamata piederumu dekodētāja pakete ir: 0 10AAAAAA 0 1AAACDDD 0 EEEEEEEE 1 Analizējot paketi, ko Lenz (Compact / Atlas) izmantoja punktu kontrolei, esmu izmantojis šādu bināro pakešu formātu 1. un 2. baitiem: tunAddr = 1 Turnout 1a: 1000 0001 1111 1000 / 1.b aktivitāte: 1000 0001 1111 1001 2.a aktivitāte: 1000 0001 1111 1010 / 2.b aktivitāte: 1000 0001 1111 1011 3.a daļa: 1000 0001 1111 1100 / 3.b aktivitāte: 1000 0001 1111 1101 4.a daļa: 1000 0001 1111 1110 / aktivitāte 4b: 1000 0001 1111 1111 tunAddr = 2 ----------------------------------------- -------------------------------------------------- ----------------- Aktivitāte 5a: 1000 0010 1111 1000 / 5b aktivitāte: 1000 0010 1111 1001 6a: 1000 0010 1111 1010 / 6b aktivitāte: 1000 0010 1111 1011 7a. 1000 0010 1111 1100 / 7.b aktivitāte: 1000 0010 1111 1101 8.a daļa: 1000 0010 1111 1110 / 8.b aktivitāte: 1000 0010 1111 1111 ----------------------- -------------------------------------------------- ---------------------------------- Aktivitāte 9a: 1000 0011 1111 1000 / 9b: 1000 0011 1111 1001 utt. ………

Izvilkums no modificēta koda: pievienojiet vēl 2 “struktura” ziņu atjauninājumus, izņemot grozījumu_tun1 (strukturētais ziņojums un x) {x.data [0] = 0x81; // aksesuāru dekodētājs 0x80 & adrese 1 x.data [1] = 0; }

void edit_tun2 (strukturēts ziņojums & x) {x.data [0] = 0x82; // aksesuāru dekodētājs 0x80 & adrese 2 x.data [1] = 0; }

Pievienot jaunu tukšumu vēlētājiem: boolean read_turnout () {delay (20);

Būla vērtība mainīta_t = nepatiesa; get_key ();

ja (key_val> = 101 && key_val <= 404 && turn == 1) {

dati = 0xf8; // = binārais 1111 1000

grozīt_tun1 (ziņa [1]);

}

ja (key_val> = 505 && key_val <= 808 && turn == 1) {

dati = 0xf8; // = binārais 1111 1000

grozīt_tun2 (ziņa [1]);

}

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

ja (tun1 == 1) {

dati | = 0; // t1a

mainīts_t = taisnība;}

ja (tun1 == 0) {

dati | = 0x01; // t1b

mainīts_t = taisnība;}

}

ja (key_val == 202 && turn == 1) {

ja (tun2 == 1) {

dati | = 0x02; // t2a

mainīts_t = taisnība;

}

ja (tun2 == 0) {

dati | = 0x03; // t2b

mainīts_t = taisnība; }

}

ja (key_val == 303 && turn == 1) {

ja (tun3 == 1) {

dati | = 0x04; // t3a

mainīts_t = taisnība;

}

ja (tun3 == 0) {

dati | = 0x05; // t3b

mainīts_t = taisnība;}

}

ja (key_val == 404 && turn == 1) {

ja (tun4 == 1) {

dati | = 0x06; // t4a

mainīts_t = taisnība;

}

ja (tun4 == 0) {

dati | = 0x07; // f4b

mainīts_t = taisnība;}

}

ja (key_val == 505 && turn == 1) {

ja (tun5 == 1) {

dati | = 0; // t5a

mainīts_t = taisnība;

}

ja (tun5 == 0) {

dati | = 0x01; // t5b

mainīts_t = taisnība;}

}

utt ………………….

2. solis: Arduino kods - TFT displejs

Arduino kods - TFT displejs
Arduino kods - TFT displejs
Arduino kods - TFT displejs
Arduino kods - TFT displejs
Arduino kods - TFT displejs
Arduino kods - TFT displejs
Arduino kods - TFT displejs
Arduino kods - TFT displejs

Displeja ķēde paliek nemainīga ar modificētu kodu, lai parādītu 16 dalībnieku statusu. Piezīme. Bibliotēkas kods aizņem gandrīz visu skiču koda atmiņu, atstājot maz vietas jaunām funkcijām. Ja kādam ir efektīvāks šeit izmantotā TFT bibliotēkas fails, lūdzu, informējiet mani.

3. darbība. Izslēgšanas kontrolieris

Dalības kontrolieris
Dalības kontrolieris
Dalības kontrolieris
Dalības kontrolieris

Skatiet pamācību, kā izveidot Turnout / Points kontrolieri.

Pilna shēma kontrolē 16 punktus un 15 piederumus, piemēram, gaismas, skaņas, pagrieziena galdu utt.

Ieteicams: