Kazalo:
- 1. korak: Arduino koda - ukazna postaja s tipkovnico
- 2. korak: Arduino koda - zaslon TFT
- 3. korak: Krmilnik za udeležbo
Video: Model železnice - ukazna postaja DCC z uporabo Arduina :: 3 koraki
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:06
Posodobljeno avgusta 2018-glej novo navodilo:
Posodobitev 28. april 2016: Zdaj je na ukazno postajo mogoče nadzorovati 16 udeležencev / točk. Skreti T1 - T8 so na voljo prek tipke 'B' Strelci T9 - T16 so na voljo s tipko 'C'
Posodobitev 10. marec 2016:
Zdaj je na ukazno postajo dodanih 8 zmogljivosti nadzora udeležbe / točk. Koda Arduino je bila ustrezno posodobljena s standardnim paketom NMRA za odzive (tudi na podlagi študije podatkovnih paketov Lenz / Atlas Compact za nadzor udeležbe).
Odklopi T1 - T8 so na voljo prek tipke 'B'
Glejte navodila za uporabljeno vezje sprejemnika podatkovnih paketov in zahtevano kodo Arduino.
Posodobitev 18. januar 2016:
V vezje sem dodal upor za zaznavanje toka (1k5 ohm) in kondenzator (10 uf) in spremenil kodo Arduino tako, da prekine napajanje, ko zazna največji tok> 3200 mAmps. Specifikacija mosta H navaja izhodni zaznavni tok 377 uA na 1 Amp pri obremenitvi.
1,5 k ohmski upor bo dal 0,565 voltov na Amp na analognem zatiču 6. Z 1023 koraki na analognem vhodu to daje 0,565 * 1023 /5 = 116 na obremenitev Amp.
A = 100 * (analogno branje (AN_CURRENT)) / 116; A = A * 10; (za rezultat v miliamperih)
Tok obremenitve v miliamperih je prikazan na TFT
Celotna tipkovnica 4x4 vključuje funkcije F1 do F8 in še 10 lokomov (1-19) prek tipke "#" (za dodajanje 10 številčnim tipkam od loco 10).
Koda arduino vključuje standard NMRA za bajte navodil.
Glej povezavo
www.nmra.org/sites/default/files/s-9.2.1_20…
(stran 6 je še posebej pomembna)
Paketi so razporejeni glede na število korakov hitrosti, dolgi / kratki naslov in navodila skupine funkcij.
Pred vsemi bajti navodil je preambula bitov '1' 11111111 (ali paket v prostem teku), ki mu sledi;
npr. 4 -bajtni naslov 0 00000011 0 00111111 0 10000011 0 10111111
ustreza loco 3, 128 hitrostnim korakom, smeri naprej in stopnji 3 hitrosti (zadnji bajt je preverjanje napak XOR)
npr. 3 -bajtni naslov 0 00000011 0 10010000 0 10110011
enaka loco 3, skupina funkcij 1, lučke FL vklopljene in bajt XOR (bit "0" ločuje vsak bajt)
Oglejte si priloženi predstavitveni videoposnetek za loco 12.
Funkcije F1 - F8 so na voljo prek tipke 'A', DIR (tipka '*' = smer) FL (tipka '0' = luči) in tipka '#' daje lokose od 10 do 19 na numerični tipkovnici. Tipka "D" se zdaj uporablja za "IZKLOP V SILI".
Hvala različnim ponudnikom na spletu za vire informacij DCC in kodo Arduino.
Ta projekt sta navdihnila zlasti Michael Blank in njegov "Simple DCC - command station"
www.oscale.net/en/simpledcc
4x4 matrična matrična matrična tipkovnica s 16 tipkami (ebay) 1,75 £
2,2 -palčni serijski SPI TFT LCD prikazovalni modul 240x320 (ebay) 7,19 £
UNIVERZALNI AC ADAPTER 12V 5A 60W Z NAPAJANJEM (eBay) 6,49 €
Nano V3.0 za Arduino s CH340G 5V 16M združljivim ATmega328P (ebay) 2 x 3,30 £ = 6,60 £
Modul gonilnika motorja LMD18200T za Arduino R3 (ebay) 6,99 €
Priključki, žica, plošča vero, potenciometer približno 3,50 £
Skupaj 32,52 £
Osnovna ukazna postaja brez tft zaslona in 1 x nano bi bila 22,03 £
[Opomba: Na zaslon TFT je mogoče dodati pomnilniško kartico in spremeniti kodo za prikaz slik izbranih motorjev, čeprav je treba knjižnične kode urediti, da ustvarite več pomnilnika za skico. Trenutna velikost skice je največja za TFT Arduino Nano]
Prvotna koda Arduina, ki jo je ustvaril Michael Blank, je bila za en motor, le naprej / nazaj brez nadzora funkcij, tipkovnice in zaslona.
Kodo sem spremenil tako, da vključuje 1 - 19 motorjev, zaslon, smer, luči, 8 funkcij, zaustavitev v sili in omejitev samodejnega toka.
Most LMD18200T lahko nosi do 3 ampere, zaradi česar je primeren za vse tehtnice, vključno z lestvico G (vrtni vlaki). Napajanje in elektronika sta primerna samo za uporabo v zaprtih prostorih, razen če je zaščitena pred vremenskimi vplivi. Imam poveljniško postajo v poletni hiši z žicami, ki povezujejo žice skozi steno do tira.
1. korak: Arduino koda - ukazna postaja s tipkovnico
Zahvaljujem se tvantenna2759 za opozorilo na 2 napaki v vezju, kjer se koda Arduino ni ujemala z ožičenjem, zdaj posodobljeno (21. oktober 2017).
Zdaj je na ukazno postajo dodanih 16 odklopov. Oglejte si navodila za diagram vezja / točk z uporabo modula Arduino Mini Pro.
Spremenjena koda, vključno s kontrolo udeležbe, je priložena spodaj.
Osnovni paket dekoderja dodatne opreme je: 0 10AAAAAA 0 1AAACDDD 0 EEEEEEEE 1 Iz analize paketa, ki ga uporablja Lenz (Compact / Atlas) za nadzor točk, sem uporabil naslednjo binarno obliko paketa za bajta 1 in 2: tunAddr = 1 Izhod 1a: 1000 0001 1111 1000 / Izhod 1b: 1000 0001 1111 1001 Izhod 2a: 1000 0001 1111 1010 / Izhod 2b: 1000 0001 1111 1011 Izhod 3a: 1000 0001 1111 1100 / Izhod 3b: 1000 0001 1111 1101 Izhod 4a: 1000 0001 1111 1110 / Izhod 4b: 1000 0001 1111 1111 tunAddr = 2 ----------------------------------------- -------------------------------------------------- ----------------- Udeležba 5a: 1000 0010 1111 1000 / Udeležba 5b: 1000 0010 1111 1001 Udeležba 6a: 1000 0010 1111 1010 / Udeležba 6b: 1000 0010 1111 1011 Vožnja 7a: 1000 0010 1111 1100 / Izhod 7b: 1000 0010 1111 1101 Izhod 8a: 1000 0010 1111 1110 / Izhod 8b: 1000 0010 1111 1111 ----------------------- -------------------------------------------------- ---------------------------------- Vožnja 9a: 1000 0011 1111 1000 / Vožnja 9b: 1000 0011 1111 1001 itd ………
Izvleček iz spremenjene kode: Dodajte še 2 posodobitvi sporočil 'struct'. // dekoder dodatkov 0x80 & naslov 1 x.data [1] = 0; }
void replace_tun2 (sporočilo strukture & x) {x.data [0] = 0x82; // dekoder dodatkov 0x80 & naslov 2 x.data [1] = 0; }
Dodaj novo praznino za odklone: boolean read_turnout () {delay (20);
logično spremenjeno_t = false; get_key ();
if (key_val> = 101 && key_val <= 404 && turn == 1) {
podatki = 0xf8; // = binarno 1111 1000
Spremeni_tun1 (sporočilo [1]);
}
if (key_val> = 505 && key_val <= 808 && turn == 1) {
podatki = 0xf8; // = binarno 1111 1000
Spremeni_tun2 (sporočilo [1]);
}
if (key_val == 101 && turn == 1) {
če (tun1 == 1) {
podatki | = 0; // t1a
spremenjeno_t = res;}
če (tun1 == 0) {
podatki | = 0x01; // t1b
spremenjeno_t = res;}
}
if (key_val == 202 && turn == 1) {
če (tun2 == 1) {
podatki | = 0x02; // t2a
spremenjen_t = res;
}
če (tun2 == 0) {
podatki | = 0x03; // t2b
spremenjen_t = res; }
}
if (key_val == 303 && turn == 1) {
če (tun3 == 1) {
podatki | = 0x04; // t3a
spremenjen_t = res;
}
če (tun3 == 0) {
podatki | = 0x05; // t3b
spremenjeno_t = res;}
}
if (key_val == 404 && turn == 1) {
če (tun4 == 1) {
podatki | = 0x06; // t4a
spremenjen_t = res;
}
če (tun4 == 0) {
podatki | = 0x07; // f4b
spremenjeno_t = res;}
}
if (key_val == 505 && turn == 1) {
če (tun5 == 1) {
podatki | = 0; // t5a
spremenjen_t = res;
}
če (tun5 == 0) {
podatki | = 0x01; // t5b
spremenjeno_t = res;}
}
itd ………………….
2. korak: Arduino koda - zaslon TFT
Zaslonsko vezje ostaja enako s spremenjeno kodo za prikaz stanja 16 odklopov. Opomba: Koda knjižnice zavzame skoraj ves pomnilnik kode za skico in pusti malo prostora za nove funkcije. Če ima kdo bolj učinkovito datoteko knjižnice za TFT, ki se tukaj uporablja, naj mi sporoči.
3. korak: Krmilnik za udeležbo
Glejte navodila, kako narediti krmilnik za udeležbo / točke.
Celotno vezje nadzoruje 16 točk in 15 dodatkov, kot so luči, zvoki, gramofon itd.
Priporočena:
Poveljniška postaja WiFi DCC za model železnice: 5 korakov
Poveljniška postaja WiFi DCC za modelno železnico: Posodobljeno 5. aprila 2021: nova skica in mod za komponente vezja. Nova skica: command_station_wifi_dcc3_LMD18200_v4.inoBraje nov sistem DCC, ki uporablja WiFi za komuniciranje navodil 3 uporabnike dušilk mobilnega telefona/tabličnega računalnika lahko uporabite pri idealni postavitvi za
Mini vremenska postaja z uporabo Arduina in ThingSpeak: 4 koraki
Mini vremenska postaja z uporabo Arduino in ThingSpeak: Pozdravljeni vsi. V tem navodilu vas bom vodil skozi korake za izdelavo prilagojene mini vremenske postaje. Prav tako bomo uporabljali API ThingSpeak za nalaganje vremenskih podatkov na njihove strežnike, ali pa je namen vremenske postaje
Sobna vremenska postaja z uporabo Arduina in BME280: 4 koraki
Sobna vremenska postaja z uporabo Arduina in BME280: Prej sem delila preprosto vremensko postajo, ki je prikazovala temperaturo in vlažnost lokalnega območja. Težava pri tem je bila, da bi trajalo nekaj časa za posodobitev in podatki niso bili točni. V tej vadnici bomo naredili notranji vremenski monitor
Pametna vremenska postaja (z uporabo Arduina): 5 korakov
Pametna vremenska postaja (z uporabo Arduina): Vremenska postaja je objekt na kopnem ali morju z instrumenti in opremo za merjenje atmosferskih razmer za zagotavljanje informacij za vremenske napovedi ter za proučevanje vremena in podnebja. Meritve vključujejo temperaturo
Nadzor vodite po vsem svetu z uporabo interneta z uporabo Arduina: 4 koraki
Nadzorujte po vsem svetu z uporabo interneta z uporabo Arduina: Živjo, jaz sem Rithik. Z vašim telefonom bomo naredili LED pod vodstvom interneta. Uporabljali bomo programsko opremo, kot sta Arduino IDE in Blynk. Preprosto je, in če vam je uspelo, lahko nadzirate toliko elektronskih komponent, kot jih želite. Stvari, ki jih potrebujemo: Strojna oprema: