INHOUDSOPGAWE:
- Stap 1: Arduino -kode - bevelstasie met toetsbord
- Stap 2: Arduino -kode - TFT -skerm
- Stap 3: Opkomsbeheerder
Video: Modelspoorweg - DCC -bevelstasie met behulp van Arduino :: 3 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:26
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
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
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:
Arduino Nano -klok met aanpasbare helderheid met behulp van prototipe PCB van NextPCB.com: 11 stappe
Arduino Nano -klok met aanpasbare helderheid met behulp van prototipe PCB van NextPCB.com: Almal wou 'n horlosie hê wat tyd en datum saam wys. In hierdie projek sal ek u wys hoe u 'n arduino -nano -klok met aanpasbare helderheid kan bou met behulp van RTC en 'n ontwerp PCB van NextPCB
Beheer oor die hele wêreld met behulp van internet met behulp van Arduino: 4 stappe
Beheer oor die hele wêreld met behulp van internet met behulp van Arduino: Hallo, ek is Rithik. Ons gaan 'n internetbeheerde LED maak met u telefoon. Ons gaan sagteware soos Arduino IDE en Blynk gebruik. Dit is eenvoudig, en as u daarin geslaag het, kan u soveel elektroniese komponente beheer as wat u wil
Monitor versnelling met behulp van Raspberry Pi en AIS328DQTR met behulp van Python: 6 stappe
Monitering van versnelling met behulp van Raspberry Pi en AIS328DQTR Gebruik van Python: Versnelling is eindig, volgens ek volgens sommige wette van die fisika.- Terry Riley 'n Jagluiperd gebruik ongelooflike versnelling en vinnige spoedveranderinge wanneer hy jaag. Die vinnigste wesens aan wal gebruik af en toe sy hoogste tempo om prooi te vang. Die
Bywoningstelsel met die stoor van data op Google -sigblad met behulp van RFID en Arduino Ethernet Shield: 6 stappe
Bywoningstelsel met die stoor van data op Google -sigblad met behulp van RFID en Arduino Ethernet Shield: Hallo ouens, hier kom ons met 'n baie opwindende projek, en dit is hoe om rfid -data na Google -sigblad te stuur met behulp van Arduino. Kortom, ons gaan 'n bywoningsisteem maak wat gebaseer is op rfid -leser, wat die bywoningsdata intyds sal stoor om te gaan soek
Hoe om van 0 tot 99 te tel met behulp van 8051 mikrobeheerder met 7 segmentweergawe: 5 stappe (met foto's)
Hoe om van 0 tot 99 te tel Met behulp van 8051 mikrobeheerder met 7 -segmentweergawe: Hallo almal, in hierdie tutoriaal gaan ons u vertel hoe om van 0 tot 99 te tel met twee 7 -segment -skerms