Sisällysluettelo:

Puutarhajuna - Arduino Wireless NMRA DCC: 4 vaihetta (kuvilla)
Puutarhajuna - Arduino Wireless NMRA DCC: 4 vaihetta (kuvilla)

Video: Puutarhajuna - Arduino Wireless NMRA DCC: 4 vaihetta (kuvilla)

Video: Puutarhajuna - Arduino Wireless NMRA DCC: 4 vaihetta (kuvilla)
Video: #4.c - Adding Wi-Fi to DCC-EX 2024, Marraskuu
Anonim
Image
Image
Järjestelmän suunnittelu
Järjestelmän suunnittelu

Edellisten ohjeiden mukaan DCC: llä kuolleella kiskojärjestelmällä olen kehittänyt ajatusta edelleen kädessä pidettävällä DCC -komentoasemalla, jossa on näppäimistö ja LCD -näyttö. Komentoasema sisältää kaiken NMRA DCC -ohjeiden edellyttämän koodauksen, mutta sen sijaan, että liitettäisiin kiskoihin, tiedot siirretään radiomoduulin RF24L01+ avulla kuorma -autoon asennetulle vastaanottimelle tai paikkaan, missä huone sallii.

Lokit on tietysti varustettava moottorin moottoreille sopivalla kuormituskyvyn dekooderilla.

Vaihe 1: Järjestelmän suunnittelu

Järjestelmän suunnittelu
Järjestelmän suunnittelu

Arduino Pro Mini on suunnittelun ydin. Fritzingin käyttäminen piirin kehittämiseen ja PCB: iden tuottamiseen.

Pystyin käyttämään samaa piirilevyä sekä lähettimessä että vastaanottimessa, mikä säästää kustannuksia.

Lähettimessä on liitännät näppäimistölle ja nestekidenäytölle, kun taas vastaanotin ei vaadi niitä ja käyttää H-siltaa toimittamaan DCC-lähdön paikalleen.

Jatkokehitys sisältää liitännät suurempaa H-siltaa varten, jos sitä tarvitaan tehokkaampiin paikkoihin.

PCF8574 voidaan poistaa, jos käytät repun mukana tulevaa nestekidenäyttöä, jonka avulla Arduinon SCA / SCL -liitännät voivat syöttää näytön vain kahdella johdolla. Osaluettelo: Yhteensä = n. = Noin 10,00 € / kpl. + akut

Arduino Pro Mini. x 2 = 4,00 €

4x3 kalvonäppäimistö = 3,00 €

20 x 4 LCD -näyttö = 7,00 €

PCF5874 = 1,80 £

NRF24L01+. radiomoduulit x 2 = 5,80 £

Piirilevyjen valmistus 10 off (tai Vero -levyä voidaan käyttää) = 24 £ tai 4,80 £ 2off

3,3 v säädin = 0,17 £ (25 kpl: n pakkaus RS Compilta)

5v säädin LM7805 = 0,30 €

H-silta SN754410ne = 3,00 €

Lloytronin ladattavat 2700 maH AA -paristot x 12 = 22,00 €. (alemmat maH -paristot ovat halvempia)

Kondensaattorit, kattilat, nastat, liittimet jne. = Noin 2,00 €

Kotelo 190x110x60 mm = 8,00 €

Lähetin - puhelimen laturi / akku = 2,00 £

Vaihe 2: Lähetin

Lähetin
Lähetin

Kytkentäkaavio esitetään, jossa Arduino Pro Minin D2 - D8 -nastat on kytketty näppäimistöön. 100 k ohmin potentiometri on kytketty analogiseen nastaan A0 nopeuden säätämiseksi. SDA- ja SCL -nastat PCF8574 -sirusta muodostavat nastat A4 ja A5 Arduino Pro Minissä juotettujen johtojen avulla Pro Minin yläkerroksen nastoihin.

Arduinon luonnos on liitteenä ladattavaksi.

Olen käyttänyt 20 x 4 LCD -näyttöä, joka mahdollistaa 4 riviä tietoja ja 20 merkkiä riviä kohden. Näppäimistö tarjoaa seuraavan valikon:

1-9 = lukitusosoite * = suunta 0 = valot # = Toimintovalikko näppäimille 1-8

Arduino Pro Mini -luonnoksen peruskuvaus: Tämä koodirivi järjestää DCC -viestin HEX -muodossa. struktuuri Viesti msg [MAXMSG] = {

{{0xFF, 0, 0xFF, 0, 0, 0, 0}, 3}, // idle msg

{{locoAdr, 0, 0, 0, 0, 0, 0}, 3} // 3 tavun osoite

};

Jokaisen lokin asetusten tallentamiseksi määritetään sarja matriiseja seuraavasti:

int la [20]; // array lokilukujen säilyttämiseen

int sa [20]; // matriisi nopeusarvojen säilyttämiseksi

int fda [20]; // säilytettävä taulukko joh

int fla [20]; // array pitää valot

int f1a [20]; // array pitää hauskaa1…..

int f8a [20]; // array pitää hauskaa8

Jotta DCC -ohjeita voidaan muuttaa, mene seuraavaksi:

Nopeusohjeet: void change_speed (structure Message & x) {

x.data [0] = locoAdr;

x.data [1] = 0x40; // locoMsg 28 nopeusaskelta}

Toiminto -ohjeet:

void change_group1 (struktuuri -viesti & x) {

x.data [0] = locoAdr;

x.data [1] = 0x80; // locoMsg ryhmän yksi ohjeella 0x80}

Luonnoksen pääsilmukka:

void loop (void) {if (read_locoSpeed ()) {assemble_dcc_msg_speed ();

send_data_1 (); // lähettää tietoja langattomasti

viive (10);

send_data_3 (); // näyttää tiedot nestekidenäytössä

send_data_4 (); // näyttää tiedot sarjamonitorissa}

jos (luku_toiminto ()) {

assemble_dcc_msg_group1 ();

send_data_1 ();

viive (10);

send_data_3 (); }}

Päivitä tiedot, kun nopeus muuttuu:

boolean read_locoSpeed () Tämä havaitsee uuden loco -osoitteen, nopeuden tai suunnan ja muuttaa HEX -tietoja vastaavasti. kohdassa "speed_step ()"

void speed_step () {kytkin (locoSpeed) {

tapaus 1: data | = 0x02; tauko;

tapaus 2: data | = 0x12; tauko;

tapaus 3: data | = 0x03; tauko;

………

tapaus 28: data | = 0x1F; tauko; }}

Päivitä tiedot, kun toiminnot muuttuvat:

boolean read_function ()

jos (fla [locoAdr] == 0) {data = 0x80;

} // päävalot pois päältä

jos (fla [locoAdr] == 1) {

tiedot = 0x90;

} // ajovalot päällä

Kullekin toiminnolle:

jos (f2a [locoAdr] == 0) {data | = 0; }. // Toiminto 2 pois päältä

jos (f2a [locoAdr] == 1) {

tiedot | = 0x02; // Toiminto 2 on} 'data' rakennetaan yhdistämällä ['| =' yhdiste bittikohtaisesti tai] kunkin funktion HEX -koodit.

Vaihe 3: Vastaanotin

Vastaanotin
Vastaanotin

Kytkentäkaavio on esitetty, jossa Arduino Pro Minin tappeja 5 ja 6 käytetään antamaan DC-signaali H-siltaan. H-siltaparit on kytketty rinnakkain nykyisen kapasiteetin lisäämiseksi. Lokin ottamasta virrasta riippuen 16-nastaiseen DIP-laitteeseen voidaan vaatia jäähdytyselementin liittäminen tai raskaan H-sillan liittäminen ulkoisesti.

Arduino -luonnos on liitetty ladattavaksi. DCC -signaali koostuu kellosta, joka toimii 2 MHz: n taajuudella

void SetupTimer2 () tekee tämän työn.

Kello sisältää 'lyhyet pulssit' (58us) '1': lle DCC -datassa ja '' pitkät pulssit '' (116us) '0': lle DCC -datassa.

Silmukka tyhjä, saa dataa radiosta ja jos kelvollinen merkkijono löytyy, tiedot muunnetaan DCC -dataksi.

void loop (void) {if (radio.available ()) {bool done = false; valmis = radio.luku (inmsg, 1); // lukea vastaanotetut tiedot

char rc = inmsg [0]; // laita luettu merkki tähän taulukkoon

jos (rc! = 0) {. // jos merkki ei ole nolla

inString.concat (rc); // rakenna viesti}

if (rc == '\ 0') {// jos merkki on viestin loppu '/0'

Sarja.println (inString); // tulosta koottu viesti

merkkijono (); // purkaa merkkijonoviestin saadaksesi DCC-ohjeet

} } }

Vaihe 4: Suorita Locot

Suorita Locos
Suorita Locos

Jotta vältytään tietojen katkeamiselta useiden junien ajamisesta samalla radalla, sinun on irrotettava pyörien ja radan väliset koskettimet jokaisen käytetyn veturin ja kuorma -auton osalta.

Nauti vapaasti kulkevista junista radan olosuhteista riippumatta - mikä ero! Ei vaivaa, ei käynnistys-pysäytystä eikä puhdistusta.

Käyttämäni paristot ovat ladattavia LLoytron AA x 12. Olen rakentanut erityisesti niille laturin, joka lataa 6 kerrallaan. (katso ohje)

Suositeltava: