Sisällysluettelo:
- Vaihe 1: Arduino -koodi - komentoasema näppäimistöllä
- Vaihe 2: Arduino -koodi - TFT -näyttö
- Vaihe 3: Äänestysohjain
Video: Mallirautatie - DCC -komentoasema Arduinon avulla :: 3 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:02
Päivitetty elokuussa 2018-katso uusi Instructable:
Päivitys 28. huhtikuuta 2016: Nyt 16 osallistumis- / pisteohjausmahdollisuutta Command Stationille. Käännökset T1 - T8 ovat käytettävissä B -näppäimellä T9 - T16 ovat käytettävissä C -näppäimellä
Päivitys 10.3.2016:
Command Stationiin on nyt lisätty 8 osallistumis- / pisteohjausmahdollisuutta. Arduino -koodi on päivitetty vastaavasti käyttämällä NMRA -vakiopakettia osallistujille (perustuu myös tutkimukseen, joka koskee Lenz / Atlas Compact -paketteja äänestysprosentin hallintaan).
Käännökset T1 - T8 ovat käytettävissä B -näppäimellä
Katso ohjeet käytettävän datapakettivastaanotinpiirin ja vaaditun Arduino -koodin ohjeista.
Päivitys 18.1.2016:
Olen lisännyt virtapiiriin vastus (1k5 ohmia) ja kondensaattorin (10 uf) ja muuttanut Arduino -koodia katkaisemaan virran, kun huippuvirta on> 3200 mAm. H-sillan tekniset tiedot antavat 377 uA: n lähtötunnistusvirran kuormitettuna 1 ampeeria kohti.
1,5 k ohmin vastus tuottaa 0,565 volttia vahvistinta kohti analogisessa nastassa 6. Kun 1023 askelta analogiatulossa, tämä antaa 0,565 * 1023/5 = 116 vahvistinta kohti.
A = 100 * (analoginen luku (AN_CURRENT)) / 116; A = A * 10; (antaa tuloksen milliampeereina)
Kuormitusvirta milliampeina näkyy TFT: ssä
Täysi 4x4-näppäimistö sisältää F1 – F8-toiminnot ja 10 muuta lukua (1–19)#-näppäimen kautta (10 lisätään numeronäppäimiin paikasta 10 alkaen).
Arduino -koodi sisältää NMRA -standardin käskytavuille.
Katso linkki
www.nmra.org/sites/default/files/s-9.2.1_20…
(sivu 6 on erityisen tärkeä)
Paketit on järjestetty nopeusvaiheiden määrän, pitkän / lyhyen osoitteen ja toimintoryhmän ohjeiden mukaan.
Kaikkia käskytavuja edeltää '1' bitin johdanto -osa 11111111 (tai idle -paketti), jota seuraa;
esim. A 4 tavun osoite 0 00000011 0 00111111 0 10000011 0 10111111
vastaa locoa 3, 128 nopeusvaihetta, eteenpäin suunta ja nopeusaskel 3 (lopullinen tavu on virheentarkistus XOR)
esim. 3 tavun osoite 0 00000011 0 10010000 0 10110011
vastaa loco 3: ta, toimintoryhmää 1, FL -valot palavat ja XOR -tavu ('0' -bitti erottaa jokaisen tavun)
Katso oheinen esittelyvideo paikasta 12.
Toiminnot F1 - F8 ovat käytettävissä näppäimellä 'A', näppäimellä DIR ('*' näppäin = suunta) FL (näppäin '0' = valot) ja näppäin '#' antaa numerot 10--19 numeronäppäimistöllä. D -näppäintä käytetään nyt hätäpysäytykseen.
Kiitos eri verkkopalvelujen tarjoajille DCC -tiedon lähteistä ja Arduino -koodista.
Erityisesti tämä projekti sai inspiraationsa Michael Blankilta ja hänen "Simple DCC: ltä - komentoasemalta"
www.oscale.net/en/simpledcc
4x4 Matrix Array 16 Key Membrane Switch -näppäimistö (ebay) 1,75 €
2,2 tuuman 240x320 Serial SPI TFT LCD -näyttömoduuli (ebay) 7,19 €
UNIVERSAL 12V 5A 60W VIRTALÄHDE VIRTALÄHDE (ebay) 7,95 €
Nano V3.0 Arduinolle, jossa CH340G 5V 16M -yhteensopiva ATmega328P (ebay) 2 x 3,30 € = 6,60 €
Moottorin ohjainmoduuli LMD18200T Arduino R3: lle (ebay) 6,99 €
Liittimet, johto, verolevy, potentiometri noin 3,50 €
Yhteensä 32,52 €
Peruskomentoasema ilman tft -näyttöä ja 1 x nano olisi 22,03 puntaa
[Huomautus: On mahdollista lisätä muistikortti TFT -näyttöön ja muuttaa koodia näyttämään valittujen moottoreiden kuvat, vaikka kirjastokoodeja on muokattava alaspäin, jotta luonnokselle saadaan enemmän muistia. Nykyinen luonnoskoko on maksimissaan TFT Arduino Nano]
Michael Blankin alkuperäinen Arduino -koodi oli yhdelle moottorille, vain eteenpäin / taaksepäin ilman toimintojen ohjausta, näppäimistöä ja näyttöä.
Olen muokannut koodia sisältämään 1 - 19 moottoria, näyttöruudun, suunnan, valot, 8 toimintoa, hätäpysäytyksen ja automaattisen virtarajan.
LMD18200T-silta voi kantaa jopa 3 ampeeria, mikä tekee siitä sopivan kaikille asteikoille, myös G-asteikolle (puutarhajunat). Verkkovirtalähde ja elektroniikka soveltuvat vain sisäkäyttöön, ellet voi tehdä sitä säänkestäväksi. Minulla on kesäasunnon komentokeskus, jossa on kiskoliitäntäjohdot, jotka kulkevat seinän läpi radalle.
Vaihe 1: Arduino -koodi - komentoasema näppäimistöllä
Kiitokset tvantenna2759: lle, joka osoitti 2 virhettä piirikaaviossa, jossa Arduino -koodi ei vastannut johdotusta, nyt päivitetty (21. lokakuuta 2017).
Command Stationiin on nyt lisätty 16 osallistujaa. Katso ohjeet suoritus- / pistepiirikaaviosta Arduino Mini Pro -moduulin avulla.
Muokattu koodi mukaan lukien äänestysprosentti on liitetty alla.
Lisävarusteiden dekooderin peruspaketti on: 0 10AAAAAA 0 1AAACDDD 0 EEEEEEEE 1 Analysoidessaan Lenzin (Compact / Atlas) pisteiden hallintaan käyttämää pakettia olen käyttänyt seuraavaa binääripakettimuotoa tavuille 1 ja 2: tunAddr = 1 Osallistuminen 1a: 1000 0001 1111 1000 / äänestysprosentti 1b: 1000 0001 1111 1001 äänestysprosentti 2a: 1000 0001 1111 1010 / äänestysprosentti 2b: 1000 0001 1111 1011 äänestysprosentti 3a: 1000 0001 1111 1100 / äänestysprosentti 3b: 1000 0001 1111 1101 äänestysprosentti 4a: 1000 0001 1111 1110 / äänestysprosentti 4b: 1000 0001 1111 1111 tunAddr = 2 ----------------------------------------- -------------------------------------------------- ----------------- Äänestysaktiivisuus 5a: 1000 0010 1111 1000 / Äänestysaktiivisuus 5b: 1000 0010 1111 1001 Äänestysaktiivisuus 6a: 1000 0010 1111 1010 / Äänestysaktiivisuus 6b: 1000 0010 1111 1011 Äänestysprosentti 7a: 1000 0010 1111 1100 / Äänestysaktiivisuus 7b: 1000 0010 1111 1101 Äänestysaktiivisuus 8a: 1000 0010 1111 1110 / Äänestysaktiivisuus 8b: 1000 0010 1111 1111 ----------------------- -------------------------------------------------- ---------------------------------- Äänestysaktiivisuus 9a: 1000 0011 1111 1000 / äänestysprosentti 9b: 1000 0011 1111 1001 jne ……………
Ote muokatusta koodista: Lisää 2 "struktuuri" -viestipäivitystä // lisävarusteiden dekooderi 0x80 & osoite 1 x.data [1] = 0; }
void change_tun2 (struktuuri -viesti & x) {x.data [0] = 0x82; // lisävarusteiden dekooderi 0x80 & osoite 2 x.data [1] = 0; }
Lisää uusi tyhjä tilalle: boolean read_turnout () {delay (20);
boolen muuttunut_t = epätosi; get_key ();
jos (key_val> = 101 && key_val <= 404 && turn == 1) {
tiedot = 0xf8; // = binääri 1111 1000
muokkaa_tunnus1 (viesti [1]);
}
if (key_val> = 505 && key_val <= 808 && turn == 1) {
tiedot = 0xf8; // = binääri 1111 1000
muokkaa_tun2 (viesti [1]);
}
jos (key_val == 101 && turn == 1) {
jos (tun1 == 1) {
tiedot | = 0; // t1a
muutettu_t = totta;}
jos (tun1 == 0) {
tiedot | = 0x01; // t1b
muutettu_t = totta;}
}
jos (key_val == 202 && turn == 1) {
jos (tun2 == 1) {
tiedot | = 0x02; // t2a
muutettu_t = tosi;
}
jos (tun2 == 0) {
tiedot | = 0x03; // t2b
muutettu_t = tosi; }
}
jos (key_val == 303 && turn == 1) {
jos (tun3 == 1) {
tiedot | = 0x04; // t3a
muutettu_t = tosi;
}
jos (tun3 == 0) {
tiedot | = 0x05; // t3b
muutettu_t = totta;}
}
jos (key_val == 404 && turn == 1) {
jos (tun4 == 1) {
tiedot | = 0x06; // t4a
muutettu_t = tosi;
}
jos (tun4 == 0) {
tiedot | = 0x07; // f4b
muutettu_t = totta;}
}
jos (key_val == 505 && turn == 1) {
jos (tun5 == 1) {
tiedot | = 0; // t5a
muutettu_t = tosi;
}
jos (tun5 == 0) {
tiedot | = 0x01; // t5b
muutettu_t = totta;}
}
jne ………………….
Vaihe 2: Arduino -koodi - TFT -näyttö
Näyttöpiiri pysyy samana muutetulla koodilla, joka näyttää 16 osallistujan tilan. Huomautus: Kirjastokoodi vie lähes kaikki luonnoskoodimuistit jättäen vähän tilaa uusille ominaisuuksille. Jos jollakin on tehokkaampi kirjastotiedosto tässä käytetylle TFT: lle, ilmoittakaa minulle.
Vaihe 3: Äänestysohjain
Katso opastusohjeet siitä, miten voit tehdä kierros- / pisteohjaimen.
Koko piiri ohjaa 16 pistettä ja 15 lisävarustetta, kuten valot, äänet, levysoitin jne.
Suositeltava:
Hallitse talon valoja Google Assistantin avulla Arduinon avulla: 7 vaihetta
Hallitse talon valoja Google Assistantin avulla Arduinon avulla: (Päivitys 22.8.2020: Tämä ohje on 2 vuotta vanha ja perustuu joihinkin kolmansien osapuolien sovelluksiin. Kaikki heidän puolellaan tehdyt muutokset saattavat tehdä projektista toimimattoman. Se voi olla tai ei työskentele nyt, mutta voit seurata sitä viitteenä ja muokata sen mukaan
Arduinon ohjelmointi toisen Arduinon avulla vieritettävän tekstin näyttämiseksi ilman kirjastoa: 5 vaihetta
Arduinon ohjelmointi toisen Arduinon avulla vieritettävän tekstin näyttämiseksi ilman kirjastoa: Sony Spresense tai Arduino Uno eivät ole niin kalliita eivätkä vaadi paljon virtaa. Jos projektillasi on kuitenkin virtaa, tilaa tai jopa budjettia, voit harkita Arduino Pro Minin käyttöä. Toisin kuin Arduino Pro Micro, Arduino Pro Mi
Ohjaa lediä kaikkialla maailmassa Internetin avulla Arduinon avulla: 4 vaihetta
Ohjaa johtoa ympäri maailmaa Internetin avulla Arduinon avulla: Hei, olen Rithik. Aiomme tehdä Internet -ohjattavan ledin puhelimellasi. Aiomme käyttää ohjelmistoja, kuten Arduino IDE ja Blynk. Se on yksinkertainen ja jos onnistuit, voit hallita niin monta elektronista komponenttia kuin haluat Asioita, joita tarvitsemme: Laitteisto:
Yksinkertainen automaattinen pisteestä pisteeseen -mallirautatie, joka kulkee kahdella junalla: 13 vaihetta (kuvilla)
Yksinkertainen automatisoitu pisteestä pisteeseen -mallirautatie, joka kulkee kahdella junalla: Arduino-mikrokontrollerit ovat loistava tapa automatisoida rautatieasetteluja niiden edullisen saatavuuden, avoimen lähdekoodin laitteiston ja ohjelmiston sekä suuren yhteisön avulla. Mallirautateille Arduinon mikro -ohjaimet voivat osoittautua
Langaton kaukosäädin käyttäen 2,4 GHz: n NRF24L01 -moduulia Arduinon kanssa - Nrf24l01 4 -kanavainen / 6 -kanavainen lähettimen vastaanotin nelikopterille - Rc -helikopteri - Rc -taso Arduinon avulla: 5 vaihetta (kuvilla)
Langaton kaukosäädin käyttäen 2,4 GHz: n NRF24L01 -moduulia Arduinon kanssa | Nrf24l01 4 -kanavainen / 6 -kanavainen lähettimen vastaanotin nelikopterille | Rc -helikopteri | Rc -lentokone Arduinon avulla: Rc -auton käyttö | Nelikopteri | Drone | RC -taso | RC -vene, tarvitsemme aina vastaanottimen ja lähettimen, oletetaan, että RC QUADCOPTER -laitteelle tarvitaan 6 -kanavainen lähetin ja vastaanotin, ja tämäntyyppinen TX ja RX on liian kallista, joten teemme sellaisen