Cuprins:
- Pasul 1: Cod Arduino - Stație de comandă cu tastatură
- Pasul 2: Cod Arduino - Afișaj TFT
- Pasul 3: Controler de prezență
Video: Modelul feroviar - Stația de comandă DCC folosind Arduino :: 3 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:45
Actualizat în august 2018 - vezi noua versiune instructabilă:
Actualizare 28 aprilie 2016: acum 16 puncte de participare / controlul punctelor la stația de comandă. Prezențele T1 - T8 sunt disponibile prin intermediul tastei „B” Prezențele T9 - T16 sunt disponibile prin intermediul tastei „C”
Actualizare 10 martie 2016:
Acum a adăugat capacitatea de control 8 puncte de participare / puncte la stația de comandă. Codul Arduino a fost actualizat corespunzător folosind pachetul standard NMRA pentru prezențe (de asemenea, pe baza unui studiu al pachetelor de date Lenz / Atlas Compact pentru controlul prezenței).
Prezențele T1 - T8 sunt disponibile prin intermediul tastei „B”
Vedeți instrucțiunile pe circuitul receptorului de pachete de date utilizat și codul Arduino necesar.
Actualizare 18 ianuarie 2016:
Am adăugat un rezistor de detectare a curentului (1k5 ohm) și un condensator (10 uf) la circuit și am modificat codul Arduino pentru a întrerupe alimentarea atunci când este detectat un curent de vârf> 3200 mAmps. Specificația H-bridge indică un curent de simțire de ieșire de 377 uA la 1 Amp în sarcină.
Rezistorul de 1,5 k ohm va furniza 0,565 volți pe Amp pe pinul analogic 6. Cu 1023 de pași pe intrarea analogică, aceasta oferă 0,565 * 1023/5 = 116 pe sarcină Amp.
A = 100 * (analogRead (AN_CURRENT)) / 116; A = A * 10; (pentru a da rezultate în miliamperi)
Curentul de încărcare în miliamperi este afișat pe TFT
Tastatura completă 4x4 include funcții F1 până la F8 și alte 10 locos (1-19) prin intermediul tastei „#” (pentru a adăuga 10 la tastele numerice începând de la loco 10).
Codul arduino include standardul NMRA pentru octeți de instrucțiuni.
Vezi link-ul
www.nmra.org/sites/default/files/s-9.2.1_20…
(pagina 6 are o relevanță deosebită)
Pachetele sunt aranjate în funcție de numărul de pași de viteză, adresa lungă / scurtă și instrucțiunile Grupului de funcții.
Toate octeții de instrucțiuni sunt precedate de un preambul de biți „1” 11111111 (sau pachet inactiv) urmat de;
de exemplu. O adresă de 4 octeți 0 00000011 0 00111111 0 10000011 0 10111111
echivalează cu loco 3, 128 de trepte de viteză, direcția înainte și pasul de viteză 3 (octetul final este verificarea erorilor XOR)
de exemplu, o adresă de 3 octeți 0 00000011 0 10010000 0 10110011
echivalează cu loco 3, grupul de funcții 1, FL se aprinde plus XOR octet (un bit '0' separă fiecare octet)
Vedeți videoclipul demonstrativ atașat pentru loco 12.
Funcțiile F1 - F8 sunt disponibile prin intermediul tastei „A”, DIR (tasta „*” = direcție) FL (tasta „0” = lumini) și tasta „#” dă locurile 10 la 19 pe tastatura numerică. Tasta „D” este acum utilizată pentru o „OPRIRE DE URGENȚĂ”.
Mulțumim diferiților furnizori de pe web pentru surse de informații DCC și cod Arduino.
În special, acest proiect a fost inspirat de Michael Blank și „DCC simplu - o stație de comandă”
www.oscale.net/en/simpledcc
Tastatură cu comutator cu membrană cu 4 taste Matrix Array 16 (ebay) 1,75 GBP
Modul de afișaj LCD SPI TFT de 2,2 inci 240x320 (ebay) 7,19 GBP
ADAPTOR DE ALIMENTARE UNIVERSAL 12V 5A 60W SURSA DE ALIMENTARE (ebay) 6,49 GBP
Nano V3.0 Pentru Arduino cu CH340G 5V 16M compatibil ATmega328P (ebay) 2 x 3,30 GBP = 6,60 GBP
Modulul driverului motorului LMD18200T pentru Arduino R3 (ebay) 6,99 GBP
Conectori, sârmă, placă vero, potențiometru aprox 3,50 GBP
Total 32,52 GBP
Stația de comandă de bază fără ecran TFT și 1 x nano ar fi de 22,03 GBP
[Notă: Este posibil să adăugați o cartelă de memorie pe afișajul TFT și să modificați codul pentru a afișa imaginile motoarelor selectate, deși codurile bibliotecii trebuie editate în jos pentru a crea mai multă memorie pentru schiță. Dimensiunea schiței actuale este maximă pentru TFT Arduino Nano]
Codul original Arduino de la Michael Blank era pentru un singur motor, înainte / înapoi numai fără control al funcției, fără tastatură și fără afișaj.
Am modificat codul pentru a include 1 - 19 motoare, un ecran de afișare, direcție, lumini, 8 funcții, oprire de urgență și limită de curent automat.
Podul LMD18200T poate transporta până la 3 amperi, ceea ce îl face potrivit pentru toate cântarele, inclusiv scala G (trenuri de grădină). Alimentarea cu energie electrică și dispozitivele electronice sunt potrivite numai pentru utilizare în interior, cu excepția cazului în care o puteți face rezistentă la intemperii. Am stația de comandă în casa de vară, cu fire de conectare a șinei care se scurg prin perete către cale.
Pasul 1: Cod Arduino - Stație de comandă cu tastatură
Mulțumesc tvantenna2759 pentru că a arătat 2 erori în schema circuitului în care codul Arduino nu se potrivea cu cablajul, actualizat acum (21 octombrie 2017).
Acum a adăugat 16 participări la stația de comandă. Vedeți instrucțiunile din diagrama circuitului de prezență / puncte folosind modulul Arduino Mini Pro.
Codul modificat, inclusiv controlul prezenței, este atașat mai jos.
Pachetul de decodare accesoriu de bază este: 0 10AAAAAA 0 1AAACDDD 0 EEEEEEEE 1 Din analiza pachetului folosit de Lenz (Compact / Atlas) pentru controlul punctelor, am folosit următorul format de pachet binar pentru octeții 1 și 2: tunAddr = 1 Participare 1a: 1000 0001 1111 1000 / Viteza 1b: 1000 0001 1111 1001 Viteza 2a: 1000 0001 1111 1010 / Viteza 2b: 1000 0001 1111 1011 Viteza 3a: 1000 0001 1111 1100 / Viteza 3b: 1000 0001 1111 1101 Viteza 4a: 1000 0001 1111 1110 / Viteza 4b: 1000 0001 1111 1111 tunAddr = 2 ----------------------------------------- -------------------------------------------------- ----------------- Prezență 5a: 1000 0010 1111 1000 / Prezență 5b: 1000 0010 1111 1001 Prezență 6a: 1000 0010 1111 1010 / Prezență 6b: 1000 0010 1111 1011 Prezență 7a: 1000 0010 1111 1100 / Prezență 7b: 1000 0010 1111 1101 Prezență 8a: 1000 0010 1111 1110 / Prezență 8b: 1000 0010 1111 1111 ----------------------- -------------------------------------------------- ---------------------------------- Prezență 9a: 1000 0011 1111 1000 / Prezență 9b: 1000 0011 1111 1001 etc ………
Extrageți din codul modificat: Adăugați încă 2 actualizări de mesaje „struct” evitați amendarea_tun1 (struct Mesaj & x) {x.data [0] = 0x81; // decodor accesoriu 0x80 & adresa 1 x.data [1] = 0; }
void amend_tun2 (struct Message & x) {x.data [0] = 0x82; // decodor accesoriu 0x80 & adresa 2 x.data [1] = 0; }
Adăugați un gol nou pentru participări: read_turnout boolean () {delay (20);
boolean schimbat_t = false; get_key ();
if (key_val> = 101 && key_val <= 404 && turn == 1) {
date = 0xf8; // = binar 1111 1000
amend_tun1 (msg [1]);
}
if (key_val> = 505 && key_val <= 808 && turn == 1) {
date = 0xf8; // = binar 1111 1000
amend_tun2 (msg [1]);
}
if (key_val == 101 && turn == 1) {
if (tun1 == 1) {
date | = 0; // t1a
schimbat_t = adevărat;}
if (tun1 == 0) {
date | = 0x01; // t1b
schimbat_t = adevărat;}
}
if (key_val == 202 && turn == 1) {
if (tun2 == 1) {
date | = 0x02; // t2a
schimbat_t = adevărat;
}
if (tun2 == 0) {
date | = 0x03; // t2b
schimbat_t = adevărat; }
}
if (key_val == 303 && turn == 1) {
if (tun3 == 1) {
date | = 0x04; // t3a
schimbat_t = adevărat;
}
if (tun3 == 0) {
date | = 0x05; // t3b
schimbat_t = adevărat;}
}
if (key_val == 404 && turn == 1) {
if (tun4 == 1) {
date | = 0x06; // t4a
schimbat_t = adevărat;
}
if (tun4 == 0) {
date | = 0x07; // f4b
schimbat_t = adevărat;}
}
if (key_val == 505 && turn == 1) {
if (tun5 == 1) {
date | = 0; // t5a
schimbat_t = adevărat;
}
if (tun5 == 0) {
date | = 0x01; // t5b
schimbat_t = adevărat;}
}
etc ………………….
Pasul 2: Cod Arduino - Afișaj TFT
Circuitul de afișare rămâne același cu un cod modificat pentru a arăta starea celor 16 participări. Notă: Codul bibliotecii ocupă aproape toată memoria codului de schiță, lăsând puțin loc pentru funcții noi. Dacă cineva are un fișier de bibliotecă mai eficient pentru TFT folosit aici, vă rugăm să ne anunțați.
Pasul 3: Controler de prezență
Vedeți instrucțiuni despre cum să faceți controlerul de participare / puncte.
Circuitul complet controlează 16 puncte și 15 accesorii precum lumini, sunete, platan rotativ etc.
Recomandat:
Stație de comandă WiFi DCC pentru modelul feroviar: 5 trepte
Stație de comandă WiFi DCC pentru modelul feroviar: actualizată la 5 aprilie 2021: schiță nouă și componente pentru circuit. Schiță nouă: command_station_wifi_dcc3_LMD18200_v4.ino Sistem nou DCC nou, care utilizează WiFi pentru comunicarea instrucțiunilor. pentru
Model feroviar controlat cu touchpad pentru laptop - Interfață PS / 2 Arduino: 14 pași
Model feroviar controlat cu touchpad pentru laptop | Interfață PS / 2 Arduino: touchpad-ul unui laptop este unul dintre dispozitivele extraordinare de utilizat ca intrare pentru proiectele de microcontroler. Deci, astăzi, să implementăm acest dispozitiv cu un microcontroler Arduino pentru a controla un model de cale ferată. Folosind un touchpad PS / 2, vom putea controla 3 t
Simulare semnal feroviar: 4 pași
Simulare semnal feroviar: semafor pentru căi ferate. (Simularea realității) O explicație simplă a codului: codul permite un senzorial constant pentru trenuri. Dacă un tren urmează să treacă prin secțiunea selectată a căii ferate, semaforul va deveni roșu, avertizându-i pe alții
Tornada modelului feroviar O la scară: 16 pași
O Scale Model Railroad Tornado: Sunt sigur că fiecare persoană a văzut o Tornado în videoclipuri. Dar ați văzut unul care funcționează în animație completă pe o cale ferată pentru modelul O? Ei bine, încă nu îl avem instalat pe calea ferată, deoarece face parte dintr-un sistem complet de sunet și animație
Comutator de încălzire de comandă cu releu folosind Sonoff Th10: 8 pași
Comutator de încălzire de comandă cu releu folosind Sonoff Th10: dispozitivele sonoff vă permit să porniți echipamentul electric. modelul th10 este proiectat să pornească și să oprească încălzitoarele cu funcții de control al temperaturii și de programare a timpului. Problema apare atunci când încălzitorul dvs. de acasă este alimentat cu gaz