Tartalomjegyzék:
- 1. lépés: Arduino kód - parancsállomás billentyűzettel
- 2. lépés: Arduino kód - TFT kijelző
- 3. lépés: A részvételi szabályozó
Videó: Vasútmodell - DCC parancsnoki állomás az Arduino használatával :: 3 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:42
2018. augusztus, frissítve-lásd az új Instructable-t:
2016. április 28 -i frissítés: Most 16 részvételi / pontvezérlő képesség a Command Station számára. A T1 - T8 fordulatok a "B" billentyűvel érhetők el A T9 - T16 fordulók a "C" gombon keresztül érhetők el
Frissítés 2016. március 10 -én:
Most 8 részvételi / pontvezérlő képességgel bővült a Command Station. Az Arduino kód ennek megfelelően frissítésre került az NMRA szabványos csomag használatával (szintén a Lenz / Atlas Compact adatcsomagok tanulmánya alapján).
A T1 - T8 fordulatok a „B” gombbal érhetők el
Lásd az utasításokat a használt adatcsomag -vevő áramkörről és a szükséges Arduino kódról.
Frissítés 2016. január 18.:
Hozzáadtam egy áramérzékelő ellenállást (1k5 ohm) és kondenzátort (10 uf) az áramkörhöz, és módosítottam az Arduino kódot, hogy lekapcsolják az áramot, ha a 3200 mAmp -es csúcsáramot észlelik. A H-híd specifikációja 377 uA / 1 Amp kimeneti érzékelőáramot jelent a terhelésben.
Az 1,5 k ohmos ellenállás 0,565 voltot ad ki erősítőnként az analóg 6 -os tűn. Az analóg bemenet 1023 lépésével ez 0,565 * 1023 /5 = 116 erősítőt tesz ki.
A = 100 * (analóg olvasás (AN_CURRENT)) / 116; A = A * 10; (hogy milliamperben adjon eredményt)
A terhelési áram milliamperben jelenik meg a TFT -n
A teljes 4x4-es billentyűzet F1-F8 funkciókat és további 10 lókust (1-19) tartalmaz a "#" billentyűvel (10-et hozzá kell adni a 10-es számtól kezdve).
Az arduino kód tartalmazza az utasítás bájtok NMRA szabványát.
Lásd a linket
www.nmra.org/sites/default/files/s-9.2.1_20…
(a 6. oldal különösen fontos)
A csomagok a sebességlépések száma, a hosszú / rövid cím és a funkciócsoport utasításai szerint vannak elrendezve.
Minden utasításbájt előtt 1 'bit 1161111 (vagy üresjáratú csomag) preambulum következik;
például. A 4 bájtos cím 0 00000011 0 00111111 0 10000011 0 10111111
loco 3, 128 sebességlépés, előrehaladási irány és 3. sebességlépés (a végbájt a hibaellenőrzés XOR)
pl. 3 bájtos cím 0 00000011 0 10010000 0 10110011
egyenlő a 3 -as loco -val, az 1 -es funkciócsoportdal, az FL fények bekapcsolnak plusz XOR bájt (a „0” bit elválaszt minden bájtot)
Lásd a mellékelt bemutató videót a 12 -es mozdonyhoz.
Az F1 - F8 funkciók az „A”, a DIR („*” gomb = irány) FL („0” gomb = világít) és a „#” gombok 10 -től 19 -ig adhatók meg a numerikus billentyűzeten. A „D” gomb mostantól „vészleállítás”.
Köszönet a különböző szolgáltatóknak az interneten a DCC információforrásokért és az Arduino kódért.
Ezt a projektet különösen Michael Blank és az "Egyszerű DCC - parancsnoki állomás" ihlette
www.oscale.net/en/simpledcc
4x4 Mátrix tömb 16 kulcsos membránkapcsoló billentyűzet (ebay) £ 1.75
2,2 hüvelykes 240x320 soros SPI TFT LCD kijelző modul (ebay) 7,19 £
UNIVERZÁLIS 12V 5A 60W HÁLÓZATI HÁLÓZATI ADAPTER (ebay) £ 6.49
Nano V3.0 Arduino számára CH340G 5V 16M kompatibilis ATmega328P (ebay) 2 x £ 3.30 = 6,60 £
LMD18200T motorvezérlő modul Arduino R3 -hoz (ebay) 6,99 £
Csatlakozók, vezeték, vero kártya, potenciométer kb. £ 3.50
Összesen 32,52 font
Az alap parancsnoki állomás tft képernyő és 1 x nano nélkül 22,03 font lenne
[Megjegyzés: Lehetőség van memóriakártya hozzáadására a TFT kijelzőre, és a kód módosítására, hogy megjelenjenek a kiválasztott motorok képei, bár a könyvtári kódokat le kell szerkeszteni, hogy több memóriát hozzon létre a vázlathoz. A jelenlegi vázlatméret a TFT Arduino Nano esetében a maximális]
Michael Blank eredeti Arduino kódja egy motorra vonatkozott, csak előre / hátra, funkcióvezérlés, billentyűzet és kijelző nélkül.
Módosítottam a kódot, hogy 1–19 motort, kijelzőt, irányt, fényeket, 8 funkciót, vészleállást és automatikus áramkorlátot tartalmazzon.
Az LMD18200T híd akár 3 erősítőt is képes szállítani, így minden mérlegre alkalmas, beleértve a G-skálát is (kerti vonatok). A hálózati tápegység és az elektronika csak beltéri használatra alkalmas, hacsak nem tudja minden időjárásállóvá tenni. Van egy parancsnoki állomásom a nyaralóban, síncsatlakozó vezetékek futnak ki a falon keresztül a pályához.
1. lépés: Arduino kód - parancsállomás billentyűzettel
Köszönöm a tvantenna2759 -nek, hogy 2 hibát jelzett az áramköri rajzon, ahol az Arduino kód nem egyezett a most frissített vezetékekkel (2017. október 21.).
Most 16 részvételi arányt adtak hozzá a parancsnoki állomáshoz. Lásd az utasításokat a részvételi / pont kapcsolási rajzon az Arduino Mini Pro modul használatával.
A módosított kód, beleértve a részvételi szabályzót, az alábbiakban található.
Az alapvető tartozékdekóder -csomag: 0001 1111 1000 / 1b: 1000 0001 1111 1001 2a. Rész: 1000 0001 1111 1010 / 2b: 1000 0001 1111 1011 3a: 1000 0001 1111 1100 / 3b: 1000 0001 1111 1101 4a: 1000 0001 1111 1110 / részvétel 4b: 1000 0001 1111 1111 tunAddr = 2 ----------------------------------------- -------------------------------------------------- ----------------- 5a részvétel: 1000 0010 1111 1000 / 5b részvétel: 1000 0010 1111 1001 6a részvétel: 1000 0010 1111 1010 / 6b részvétel: 1000 0010 1111 1011 7a részvétel: 1000 0010 1111 1100 / 7b részvétel: 1000 0010 1111 1101 8a: 1000 0010 1111 1110 / 8b: 1000 0010 1111 1111 ----------------------- -------------------------------------------------- ---------------------------------- 9a. Részvétel: 1000 0011 1111 1000 / 9b. Részvétel: 1000 0011 1111 1001 stb.
Kivonat a módosított kódból: Adjon hozzá még 2 'struktura' üzenetfrissítést, és ne módosítsa a módosítást_tun1 (szerkezetüzenet & x) {x.data [0] = 0x81; // kiegészítő dekódoló 0x80 & cím 1 x.data [1] = 0; }
void change_tun2 (strukture Message & x) {x.data [0] = 0x82; // kiegészítő dekódoló 0x80 & cím 2 x.data [1] = 0; }
Új üresség hozzáadása a részvételhez: boolean read_turnout () {delay (20);
logikai érték megváltozott_t = hamis; get_key ();
if (key_val> = 101 && key_val <= 404 && turn == 1) {
adatok = 0xf8; // = bináris 1111 1000
módosítás_hang1 (msg [1]);
}
if (key_val> = 505 && key_val <= 808 && turn == 1) {
adatok = 0xf8; // = bináris 1111 1000
módosítás_hang2 (msg [1]);
}
if (key_val == 101 && turn == 1) {
ha (tun1 == 1) {
adatok | = 0; // t1a
módosított_t = igaz;}
ha (tun1 == 0) {
adatok | = 0x01; // t1b
módosított_t = igaz;}
}
if (key_val == 202 && turn == 1) {
ha (tun2 == 1) {
adatok | = 0x02; t2a
módosított_t = igaz;
}
ha (tun2 == 0) {
adatok | = 0x03; // t2b
módosított_t = igaz; }
}
if (key_val == 303 && turn == 1) {
ha (tun3 == 1) {
adatok | = 0x04; t3a
módosított_t = igaz;
}
ha (tun3 == 0) {
adatok | = 0x05; // t3b
módosított_t = igaz;}
}
if (key_val == 404 && turn == 1) {
ha (tun4 == 1) {
adatok | = 0x06; t4a
módosított_t = igaz;
}
ha (tun4 == 0) {
adatok | = 0x07; // f4b
módosított_t = igaz;}
}
if (key_val == 505 && turn == 1) {
ha (tun5 == 1) {
adatok | = 0; t5a
módosított_t = igaz;
}
ha (tun5 == 0) {
adatok | = 0x01; // t5b
módosított_t = igaz;}
}
stb ………………….
2. lépés: Arduino kód - TFT kijelző
A kijelző áramkör ugyanaz marad, módosított kóddal, amely a 16 részvétel állapotát mutatja. Megjegyzés: A könyvtári kód majdnem az összes vázlatkód memóriát elfoglalja, így kevés hely marad az új funkciók számára. Ha valakinek van hatékonyabb könyvtári fájlja az itt használt TFT -hez, kérem, tudassa velem.
3. lépés: A részvételi szabályozó
Lásd az utasítást a Turnout / Points kontroller elkészítéséről.
A teljes áramkör 16 pontot és 15 tartozékot vezérel, például fényeket, hangokat, lemezjátszót stb.
Ajánlott:
Egyszerű automatizált pont -pont vasútmodell: 10 lépés (képekkel)
Egyszerű, automatizált pont -pont modellvasút: Az Arduino mikrovezérlők nagyszerűek a vasútmodellek elrendezésének automatizálásához. Az elrendezések automatizálása számos célra hasznos, például az elrendezés elhelyezése egy kijelzőn, ahol az elrendezési művelet programozható úgy, hogy a vonatokat automatizált sorrendben futtassa. Az l
Mini időjárás állomás az Arduino és a ThingSpeak használatával: 4 lépés
Mini meteorológiai állomás az Arduino és a ThingSpeak használatával: Üdv mindenkinek. Ebben az utasításban végigvezetem a személyre szabott mini időjárás -állomás létrehozásának lépésein. Ezenkívül a ThingSpeak API -t fogjuk használni időjárási adataink feltöltésére a szervereikre, vagy mi az időjárás -megfigyelés célja
Egyszerű automatizált vasútmodell - Arduino vezérelt: 11 lépés (képekkel)
Egyszerű automatizált vasútmodell | Arduino vezérelt: Az Arduino mikrokontrollerek nagyszerű kiegészítői a modellvasutaknak, különösen, ha automatizálással foglalkozunk. Itt egy egyszerű és egyszerű módja annak, hogy elkezdje a vasúti modell automatizálását az Arduino segítségével. Tehát minden további nélkül kezdjük el
Vasútmodell automata alagútfények: 5 lépés
Modellvasúti automata alagútfények: Ez a kedvenc áramköri lapom. A vasútmodell elrendezésem (még folyamatban van) számos alagúttal rendelkezik, és bár valószínűleg nem prototípusos, azt akartam, hogy legyenek alagútlámpák, amelyek bekapcsolnak, amikor a vonat közeledik az alagúthoz. Az első impulzusom az volt, hogy
Egyszerű, automatizált, két vonattal közlekedő vasútmodell: 13 lépés (képekkel)
Egyszerű, automatizált, két vonattal közlekedő modellvasút: Az Arduino mikrovezérlők nagyszerű módja a vasútmodell-elrendezések automatizálásának alacsony költségű elérhetőségük, nyílt forráskódú hardverük és szoftverük, valamint egy nagy közösség segítségével. A modellvasutak esetében az Arduino mikrokontrollerek bizonyulhatnak