INHOUDSOPGAWE:

Modelspoorweg - DCC -bevelstasie met behulp van Arduino :: 3 stappe
Modelspoorweg - DCC -bevelstasie met behulp van Arduino :: 3 stappe

Video: Modelspoorweg - DCC -bevelstasie met behulp van Arduino :: 3 stappe

Video: Modelspoorweg - DCC -bevelstasie met behulp van Arduino :: 3 stappe
Video: seinpaal 2024, Julie
Anonim
Image
Image
Arduino -kode - bevelstasie met toetsbord
Arduino -kode - bevelstasie met toetsbord

Opgedateer Augustus 2018-sien nuwe Instructable:

Opdatering 28 April 2016: nou 16 opkoms / punte beheerfunksie na Command Station. Die afwykings T1 - T8 is beskikbaar via 'B' -sleutel Die afdraaie T9 - T16 is beskikbaar via' C' -sleutel

Opdatering 10 Maart 2016:

Nou het 8 funksies vir opkoms / punte beheer by Command Station gevoeg. Die Arduino -kode is dienooreenkomstig opgedateer deur gebruik te maak van die NMRA -standaardpakket vir opkoms (ook gebaseer op 'n studie van Lenz / Atlas Compact -datapakkies vir opkomsbeheer).

Die afwykings T1 - T8 is beskikbaar via 'B' -sleutel

Sien die instruksies oor die gebruikte datapakketontvanger -kring en die Arduino -kode benodig.

Opdatering 18 Januarie 2016:

Ek het 'n stroom -weerstandsweerstand (1k5 ohm) en kapasitor (10 uf) by die stroombaan gevoeg en die Arduino -kode gewysig om die krag af te sny as 'n piekstroom van> 3200 mA amper waargeneem word. Die H-brugspesifikasie gee 'n uitsetsensstroom van 377 uA per 1 Amp in die las.

Die weerstand van 1,5 k ohm lewer 0,565 volt per ampère op die analoog pen 6. Met 1023 stappe op die analoog ingang, gee dit 0,565 * 1023 /5 = 116 per amp.

A = 100 * (analogRead (AN_CURRENT)) / 116; A = A * 10; (om die resultaat in milliamps te gee)

Die lasstroom in milliamps word op die TFT vertoon

Die volledige 4x4-sleutelbord bevat F1 tot F8 funksies en nog 10 locos (1-19) deur die '#' sleutel (om 10 by te voeg tot die numeriese sleutels vanaf loco 10).

Die arduino -kode bevat die NMRA -standaard vir instruksie -grepe.

Sien skakel

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

(bladsy 6 is veral van belang)

Die pakkies is gerangskik volgens die aantal spoedstappe, lang / kort adres en funksiegroepinstruksies.

Alle instruksie -grepe word voorafgegaan deur 'n aanhef van '1' bisse 11111111 (of ledige pakket) gevolg deur;

bv. 'N 4 -greep adres 0 00000011 0 00111111 0 10000011 0 10111111

is gelyk aan loko 3, 128 spoedstappe, rigting vorentoe en spoedstap 3 (die eindbyte is die foutkontrole XOR)

bv 'n 3 -greep adres 0 00000011 0 10010000 0 10110011

is gelyk aan loco 3, funksiegroep 1, FL -ligte aangeskakel plus XOR -byte ('n '0' -bit skei elke greep)

Sien ingeslote demonstrasievideo vir loco 12.

Die funksies F1 - F8 is beskikbaar via 'A' -sleutel, DIR ('*'sleutel = rigting) FL (' 0 'sleutel = ligte) en sleutel'#'gee locos 10 tot 19 op die numeriese toetsbord. Die 'D' sleutel word nou gebruik vir 'n 'Emergency STOP'.

Dankie aan verskillende verskaffers op die internet vir bronne van DCC -inligting en Arduino -kode.

Hierdie projek is veral geïnspireer deur Michael Blank en sy 'Simple DCC - a command station'

www.oscale.net/en/simpledcc

4x4 Matrix Array 16 sleutel membraan skakelaar toetsbord (eBay) £ 1,75

2,2 duim 240x320 seriële SPI TFT LCD -skermmodule (ebay) £ 7,19

UNIVERSAL 12V 5A 60W Voeding AC -ADAPTER (eBay) £ 6,49

Nano V3.0 Vir Arduino met CH340G 5V 16M verenigbare ATmega328P (ebay) 2 x £ 3.30 = £ 6.60

Motorbestuurdermodule LMD18200T vir Arduino R3 (ebay) £ 6,99

Verbindings, draad, vero -bord, potensiometer ongeveer £ 3,50

Totaal £ 32,52

Die basiese bevelstasie sonder tft -skerm en 1 x nano kos £ 22,03

[Opmerking: dit is moontlik om 'n geheue kaart by die TFT -skerm te voeg en die kode te wysig om beelde van geselekteerde enjins te vertoon, alhoewel die biblioteekkodes gewysig moet word om meer geheue vir die skets te skep. Die huidige sketsgrootte is hoogstens vir die TFT Arduino Nano]

Die oorspronklike Arduino -kode deur Michael Blank was vir een enjin, slegs vorentoe / agteruit, sonder funksiebeheer, geen klavier en geen skerm nie.

Ek het die kode verander om 1 - 19 enjins, 'n skerm, rigting, ligte, 8 funksies, noodstop en outomatiese stroomlimiet in te sluit.

Die LMD18200T-brug kan tot 3 ampère dra, wat dit geskik maak vir alle weegskale, insluitend G-skaal (tuintreine). Die kragtoevoer en elektronika is slegs geskik vir binnenshuise gebruik, tensy u alles weerbestand kan maak. Ek het die bevelstasie in die somerhuis met spoorverbindingsdrade wat deur die muur na die spoor loop.

Stap 1: Arduino -kode - bevelstasie met toetsbord

My dank aan tvantenna2759 vir die wys op 2 foute in die stroomdiagram waar die Arduino -kode nie by die bedrading pas nie, nou opgedateer (21 Okt 2017).

Nou het 16 beurte by Command Station gevoeg. Sien die instruksies op die omskakelings- / punte -stroomdiagram met die Arduino Mini Pro -module.

Die aangepaste kode, insluitend die opkomsbeheer, word hieronder aangeheg.

Basiese toebehore -dekodeerderpakket is: 0 10AAAAAAA 0 1AAACDDD 0 EEEEEEEE 1 Van die ontleding van die pakkie wat Lenz (Compact / Atlas) gebruik het vir die beheer van punte, het ek die volgende binêre pakketformaat vir grepe 1 en 2 gebruik: tunAddr = 1 Uitslag 1a: 1000 0001 1111 1000 / Opkoms 1b: 1000 0001 1111 1001 Opkoms 2a: 1000 0001 1111 1010 / Opkoms 2b: 1000 0001 1111 1011 Opkoms 3a: 1000 0001 1111 1100 / Opkoms 3b: 1000 0001 1111 1101 Opkoms 4a: 1000 0001 1111 1110 / Opkoms 4b: 1000 0001 1111 1111 tunAddr = 2 ----------------------------------------- -------------------------------------------------- ----------------- Worteling 5a: 1000 0010 1111 1000 / opkoms 5b: 1000 0010 1111 1001 opkoms 6a: 1000 0010 1111 1010 / opkoms 6b: 1000 0010 1111 1011 opkoms 7a: 1000 0010 1111 1100 / Opkoms 7b: 1000 0010 1111 1101 Opkoms 8a: 1000 0010 1111 1110 / Opkoms 8b: 1000 0010 1111 1111 ----------------------- -------------------------------------------------- ---------------------------------- Opkomst 9a: 1000 0011 1111 1000 / Opkoms 9b: 1000 0011 1111 1001 ens ………..

Uittreksel uit gewysigde kode: Voeg nog twee 'struct' -boodskapopdaterings byvoeg amend_tun1 (struct Message & x) {x.data [0] = 0x81; // bykomstige dekodeerder 0x80 & adres 1 x.data [1] = 0; }

void amend_tun2 (struct Message & x) {x.data [0] = 0x82; // bykomstige dekodeerder 0x80 & adres 2 x.data [1] = 0; }

Voeg 'n nuwe leemte by opkoms by: boolean read_turnout () {delay (20);

boolean verander_t = vals; get_key ();

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

data = 0xf8; // = binêre 1111 1000

wysig_tun1 (boodskap [1]);

}

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

data = 0xf8; // = binêre 1111 1000

wysig_tun2 (boodskap [1]);

}

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

as (tun1 == 1) {

data | = 0; // t1a

verander_t = waar;}

as (tun1 == 0) {

data | = 0x01; // t1b

verander_t = waar;}

}

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

as (tun2 == 1) {

data | = 0x02; // t2a

verander_t = waar;

}

as (tun2 == 0) {

data | = 0x03; // t2b

verander_t = waar; }

}

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

as (tun3 == 1) {

data | = 0x04; // t3a

verander_t = waar;

}

as (tun3 == 0) {

data | = 0x05; // t3b

verander_t = waar;}

}

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

as (tun4 == 1) {

data | = 0x06; // t4a

verander_t = waar;

}

as (tun4 == 0) {

data | = 0x07; // f4b

verander_t = waar;}

}

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

as (tun5 == 1) {

data | = 0; // t5a

verander_t = waar;

}

as (tun5 == 0) {

data | = 0x01; // t5b

verander_t = waar;}

}

ens ………………….

Stap 2: Arduino -kode - TFT -skerm

Arduino -kode - TFT -skerm
Arduino -kode - TFT -skerm
Arduino -kode - TFT -skerm
Arduino -kode - TFT -skerm
Arduino -kode - TFT -skerm
Arduino -kode - TFT -skerm
Arduino -kode - TFT -skerm
Arduino -kode - TFT -skerm

Die vertoonbaan bly dieselfde met 'n aangepaste kode om die status van die 16 beurte aan te toon. Opmerking: die biblioteekkode beslaan byna al die geheue van die sketskode, en daar is min ruimte vir nuwe funksies. As iemand 'n meer doeltreffende biblioteeklêer het vir die TFT wat hier gebruik word, laat weet my asseblief.

Stap 3: Opkomsbeheerder

Opkomsbeheerder
Opkomsbeheerder
Opkomsbeheerder
Opkomsbeheerder

Sien die instruksies oor hoe u die opkoms / punte -beheerder kan maak.

Die volledige stroombaan beheer 16 punte en 15 bykomstighede, soos ligte, klanke, draaitafel, ens.

Aanbeveel: