Sisällysluettelo:

Mallirautatie - DCC -komentoasema Arduinon avulla :: 3 vaihetta
Mallirautatie - DCC -komentoasema Arduinon avulla :: 3 vaihetta

Video: Mallirautatie - DCC -komentoasema Arduinon avulla :: 3 vaihetta

Video: Mallirautatie - DCC -komentoasema Arduinon avulla :: 3 vaihetta
Video: как сделать пропеллерные светодиодные маятниковые часы, используя Arduino, utsource 2024, Heinäkuu
Anonim
Image
Image
Arduino -koodi - komentoasema näppäimistöllä
Arduino -koodi - komentoasema näppäimistöllä

Päivitetty elokuussa 2018-katso uusi Instructable:

Päivitys 28. huhtikuuta 2016: Nyt 16 osallistumis- / pisteohjausmahdollisuutta Command Stationille. Käännökset T1 - T8 ovat käytettävissä B -näppäimellä T9 - T16 ovat käytettävissä C -näppäimellä

Päivitys 10.3.2016:

Command Stationiin on nyt lisätty 8 osallistumis- / pisteohjausmahdollisuutta. Arduino -koodi on päivitetty vastaavasti käyttämällä NMRA -vakiopakettia osallistujille (perustuu myös tutkimukseen, joka koskee Lenz / Atlas Compact -paketteja äänestysprosentin hallintaan).

Käännökset T1 - T8 ovat käytettävissä B -näppäimellä

Katso ohjeet käytettävän datapakettivastaanotinpiirin ja vaaditun Arduino -koodin ohjeista.

Päivitys 18.1.2016:

Olen lisännyt virtapiiriin vastus (1k5 ohmia) ja kondensaattorin (10 uf) ja muuttanut Arduino -koodia katkaisemaan virran, kun huippuvirta on> 3200 mAm. H-sillan tekniset tiedot antavat 377 uA: n lähtötunnistusvirran kuormitettuna 1 ampeeria kohti.

1,5 k ohmin vastus tuottaa 0,565 volttia vahvistinta kohti analogisessa nastassa 6. Kun 1023 askelta analogiatulossa, tämä antaa 0,565 * 1023/5 = 116 vahvistinta kohti.

A = 100 * (analoginen luku (AN_CURRENT)) / 116; A = A * 10; (antaa tuloksen milliampeereina)

Kuormitusvirta milliampeina näkyy TFT: ssä

Täysi 4x4-näppäimistö sisältää F1 – F8-toiminnot ja 10 muuta lukua (1–19)#-näppäimen kautta (10 lisätään numeronäppäimiin paikasta 10 alkaen).

Arduino -koodi sisältää NMRA -standardin käskytavuille.

Katso linkki

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

(sivu 6 on erityisen tärkeä)

Paketit on järjestetty nopeusvaiheiden määrän, pitkän / lyhyen osoitteen ja toimintoryhmän ohjeiden mukaan.

Kaikkia käskytavuja edeltää '1' bitin johdanto -osa 11111111 (tai idle -paketti), jota seuraa;

esim. A 4 tavun osoite 0 00000011 0 00111111 0 10000011 0 10111111

vastaa locoa 3, 128 nopeusvaihetta, eteenpäin suunta ja nopeusaskel 3 (lopullinen tavu on virheentarkistus XOR)

esim. 3 tavun osoite 0 00000011 0 10010000 0 10110011

vastaa loco 3: ta, toimintoryhmää 1, FL -valot palavat ja XOR -tavu ('0' -bitti erottaa jokaisen tavun)

Katso oheinen esittelyvideo paikasta 12.

Toiminnot F1 - F8 ovat käytettävissä näppäimellä 'A', näppäimellä DIR ('*' näppäin = suunta) FL (näppäin '0' = valot) ja näppäin '#' antaa numerot 10--19 numeronäppäimistöllä. D -näppäintä käytetään nyt hätäpysäytykseen.

Kiitos eri verkkopalvelujen tarjoajille DCC -tiedon lähteistä ja Arduino -koodista.

Erityisesti tämä projekti sai inspiraationsa Michael Blankilta ja hänen "Simple DCC: ltä - komentoasemalta"

www.oscale.net/en/simpledcc

4x4 Matrix Array 16 Key Membrane Switch -näppäimistö (ebay) 1,75 €

2,2 tuuman 240x320 Serial SPI TFT LCD -näyttömoduuli (ebay) 7,19 €

UNIVERSAL 12V 5A 60W VIRTALÄHDE VIRTALÄHDE (ebay) 7,95 €

Nano V3.0 Arduinolle, jossa CH340G 5V 16M -yhteensopiva ATmega328P (ebay) 2 x 3,30 € = 6,60 €

Moottorin ohjainmoduuli LMD18200T Arduino R3: lle (ebay) 6,99 €

Liittimet, johto, verolevy, potentiometri noin 3,50 €

Yhteensä 32,52 €

Peruskomentoasema ilman tft -näyttöä ja 1 x nano olisi 22,03 puntaa

[Huomautus: On mahdollista lisätä muistikortti TFT -näyttöön ja muuttaa koodia näyttämään valittujen moottoreiden kuvat, vaikka kirjastokoodeja on muokattava alaspäin, jotta luonnokselle saadaan enemmän muistia. Nykyinen luonnoskoko on maksimissaan TFT Arduino Nano]

Michael Blankin alkuperäinen Arduino -koodi oli yhdelle moottorille, vain eteenpäin / taaksepäin ilman toimintojen ohjausta, näppäimistöä ja näyttöä.

Olen muokannut koodia sisältämään 1 - 19 moottoria, näyttöruudun, suunnan, valot, 8 toimintoa, hätäpysäytyksen ja automaattisen virtarajan.

LMD18200T-silta voi kantaa jopa 3 ampeeria, mikä tekee siitä sopivan kaikille asteikoille, myös G-asteikolle (puutarhajunat). Verkkovirtalähde ja elektroniikka soveltuvat vain sisäkäyttöön, ellet voi tehdä sitä säänkestäväksi. Minulla on kesäasunnon komentokeskus, jossa on kiskoliitäntäjohdot, jotka kulkevat seinän läpi radalle.

Vaihe 1: Arduino -koodi - komentoasema näppäimistöllä

Kiitokset tvantenna2759: lle, joka osoitti 2 virhettä piirikaaviossa, jossa Arduino -koodi ei vastannut johdotusta, nyt päivitetty (21. lokakuuta 2017).

Command Stationiin on nyt lisätty 16 osallistujaa. Katso ohjeet suoritus- / pistepiirikaaviosta Arduino Mini Pro -moduulin avulla.

Muokattu koodi mukaan lukien äänestysprosentti on liitetty alla.

Lisävarusteiden dekooderin peruspaketti on: 0 10AAAAAA 0 1AAACDDD 0 EEEEEEEE 1 Analysoidessaan Lenzin (Compact / Atlas) pisteiden hallintaan käyttämää pakettia olen käyttänyt seuraavaa binääripakettimuotoa tavuille 1 ja 2: tunAddr = 1 Osallistuminen 1a: 1000 0001 1111 1000 / äänestysprosentti 1b: 1000 0001 1111 1001 äänestysprosentti 2a: 1000 0001 1111 1010 / äänestysprosentti 2b: 1000 0001 1111 1011 äänestysprosentti 3a: 1000 0001 1111 1100 / äänestysprosentti 3b: 1000 0001 1111 1101 äänestysprosentti 4a: 1000 0001 1111 1110 / äänestysprosentti 4b: 1000 0001 1111 1111 tunAddr = 2 ----------------------------------------- -------------------------------------------------- ----------------- Äänestysaktiivisuus 5a: 1000 0010 1111 1000 / Äänestysaktiivisuus 5b: 1000 0010 1111 1001 Äänestysaktiivisuus 6a: 1000 0010 1111 1010 / Äänestysaktiivisuus 6b: 1000 0010 1111 1011 Äänestysprosentti 7a: 1000 0010 1111 1100 / Äänestysaktiivisuus 7b: 1000 0010 1111 1101 Äänestysaktiivisuus 8a: 1000 0010 1111 1110 / Äänestysaktiivisuus 8b: 1000 0010 1111 1111 ----------------------- -------------------------------------------------- ---------------------------------- Äänestysaktiivisuus 9a: 1000 0011 1111 1000 / äänestysprosentti 9b: 1000 0011 1111 1001 jne ……………

Ote muokatusta koodista: Lisää 2 "struktuuri" -viestipäivitystä // lisävarusteiden dekooderi 0x80 & osoite 1 x.data [1] = 0; }

void change_tun2 (struktuuri -viesti & x) {x.data [0] = 0x82; // lisävarusteiden dekooderi 0x80 & osoite 2 x.data [1] = 0; }

Lisää uusi tyhjä tilalle: boolean read_turnout () {delay (20);

boolen muuttunut_t = epätosi; get_key ();

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

tiedot = 0xf8; // = binääri 1111 1000

muokkaa_tunnus1 (viesti [1]);

}

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

tiedot = 0xf8; // = binääri 1111 1000

muokkaa_tun2 (viesti [1]);

}

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

jos (tun1 == 1) {

tiedot | = 0; // t1a

muutettu_t = totta;}

jos (tun1 == 0) {

tiedot | = 0x01; // t1b

muutettu_t = totta;}

}

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

jos (tun2 == 1) {

tiedot | = 0x02; // t2a

muutettu_t = tosi;

}

jos (tun2 == 0) {

tiedot | = 0x03; // t2b

muutettu_t = tosi; }

}

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

jos (tun3 == 1) {

tiedot | = 0x04; // t3a

muutettu_t = tosi;

}

jos (tun3 == 0) {

tiedot | = 0x05; // t3b

muutettu_t = totta;}

}

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

jos (tun4 == 1) {

tiedot | = 0x06; // t4a

muutettu_t = tosi;

}

jos (tun4 == 0) {

tiedot | = 0x07; // f4b

muutettu_t = totta;}

}

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

jos (tun5 == 1) {

tiedot | = 0; // t5a

muutettu_t = tosi;

}

jos (tun5 == 0) {

tiedot | = 0x01; // t5b

muutettu_t = totta;}

}

jne ………………….

Vaihe 2: Arduino -koodi - TFT -näyttö

Arduino -koodi - TFT -näyttö
Arduino -koodi - TFT -näyttö
Arduino -koodi - TFT -näyttö
Arduino -koodi - TFT -näyttö
Arduino -koodi - TFT -näyttö
Arduino -koodi - TFT -näyttö
Arduino -koodi - TFT -näyttö
Arduino -koodi - TFT -näyttö

Näyttöpiiri pysyy samana muutetulla koodilla, joka näyttää 16 osallistujan tilan. Huomautus: Kirjastokoodi vie lähes kaikki luonnoskoodimuistit jättäen vähän tilaa uusille ominaisuuksille. Jos jollakin on tehokkaampi kirjastotiedosto tässä käytetylle TFT: lle, ilmoittakaa minulle.

Vaihe 3: Äänestysohjain

Äänestysohjain
Äänestysohjain
Äänestysohjain
Äänestysohjain

Katso opastusohjeet siitä, miten voit tehdä kierros- / pisteohjaimen.

Koko piiri ohjaa 16 pistettä ja 15 lisävarustetta, kuten valot, äänet, levysoitin jne.

Suositeltava: