Taula de continguts:
Vídeo: Garden Train - Arduino Wireless NMRA DCC: 4 passos (amb imatges)
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:14
Més enllà de les instruccions anteriors sobre DCC sobre un sistema de ferrocarril mort, he desenvolupat la idea amb una estació de comandament DCC de mà amb teclat i pantalla LCD. L'Estació de Comandament conté tota la codificació necessària per a les instruccions NMRA DCC, però en lloc de connectar-se als rails, les dades es transfereixen mitjançant el mòdul de ràdio RF24L01 + a un receptor muntat en un camió o sota la locomotora, sempre que l'habitació ho permeti.
Per descomptat, les locomotores han d’estar equipades amb un descodificador de capacitat de càrrega adequat als motors del motor.
Pas 1: Disseny del sistema
L’Arduino Pro Mini és el centre del disseny. Utilitzant Fritzing per desenvolupar el circuit i produir PCB.
Vaig poder utilitzar el mateix PCB tant per al transmissor com per al receptor, estalviant així alguns costos.
El transmissor té connexions per al teclat i la pantalla LCD, mentre que el receptor no els requereix i utilitza el pont H per subministrar la sortida DCC de la locomotora.
Un altre desenvolupament inclou connexions per a un pont H més gran si es requereix per a locomotores més potents.
El PCF8574 es pot suprimir si utilitzeu una pantalla LCD que inclou la motxilla que permet que les connexions SCA / SCL de l’Arduino alimentin la pantalla mitjançant només dos cables. = 10,00 £ aproximadament cadascun. + bateries
Arduino Pro Mini. x 2 = 4,00 GBP
Teclat de membrana 4x3 = 3,00 £
Pantalla LCD de 20 x 4 = 7,00 GBP
PCF5874 = 1,80 GBP
NRF24L01 +. mòduls de ràdio x 2 = 5,80 GBP
Fabricació de PCB per 10 descomptes (o es pot utilitzar una placa Vero) = 24 lliures o 4,80 lliures per 2 descomptes
3,3 v Regulador = 0,17 £ (paquet de 25 de RS Comp)
Regulador 5V LM7805 = 0,30 GBP
Pont H754410ne = 3,00 GBP
Lloytron recarregable amb bateries AA de 2700 maH x 12 = 22,00 £. (les bateries amb una classificació MAH més baixa són més barates)
Condensadors, olles, pins, connectors, etc. = 2,00 £ aprox
Tanc 190x110x60 mm = 8,00 £
Transmissor: carregador / bateria del telèfon = 2,00 GBP
Pas 2: transmissor
Es mostra el diagrama del circuit on es connecten els pins D2 a D8 de l’Arduino Pro Mini al teclat. Un potenciòmetre de 100 k ohm està connectat al pin analògic A0 per ajustar la velocitat. Els pins SDA i SCL del xip PCF8574 estan connectats als pins A4 i A5 a l'Arduino Pro Mini mitjançant cables soldats als passadors de la capa superior del Pro Mini.
S'adjunta l'esbós d'Arduino per descarregar-lo.
He utilitzat una pantalla LCD de 20 x 4 que permet 4 línies d’informació amb 20 caràcters per línia. El teclat proporciona el menú següent:
1 a 9 = adreça loco * = direcció 0 = llums # = Menú de funcions de les tecles 1 a 8
Descripció bàsica de l'esbós d'Arduino Pro Mini: Aquesta línia del codi organitza el missatge DCC en format HEX. struct Missatge msg [MAXMSG] = {
{{0xFF, 0, 0xFF, 0, 0, 0, 0}, 3}, // msg inactiu
{{locoAdr, 0, 0, 0, 0, 0, 0}, 3} // adreça de 3 bytes
};
Per emmagatzemar la configuració de cada loco, es configuren una sèrie de matrius de la següent manera:
int la [20]; // array per contenir números loco
int sa [20]; // matriu per mantenir els valors de velocitat
int fda [20]; // matriu per contenir dir
int fla [20]; // matriu per contenir llums
int f1a [20]; // matriu per contenir fun1 …..
int f8a [20]; // array per mantenir fun8
Per permetre que es modifiquin les instruccions DCC a mesura que avancem:
Per obtenir instruccions de velocitat: void amend_speed (struct Message & x) {
x.data [0] = locoAdr;
x.data [1] = 0x40; // locoMsg amb 28 passos de velocitat}
Per a instruccions sobre la funció:
void amend_group1 (struct Message & x) {
x.data [0] = locoAdr;
x.data [1] = 0x80; // locoMsg amb la instrucció del grup 1 0x80}
El bucle principal de l'esbós:
bucle buit (buit) {if (read_locoSpeed ()) {assemble_dcc_msg_speed ();
enviar_dades_1 (); // enviar dades sense fils
retard (10);
enviar_dades_3 (); // mostra les dades a la pantalla LCD
enviar_dades_4 (); // mostrar dades al monitor sèrie}
if (read_function ()) {
assemble_dcc_msg_group1 ();
enviar_dades_1 ();
retard (10);
enviar_dades_3 (); }}
Actualitzeu les dades quan canviï la velocitat:
boolean read_locoSpeed () Detecta una nova adreça loco, configuració de velocitat o direcció i modifica les "dades" HEX en conseqüència. Aquí he especificat 28 passos de velocitat i per complir amb l'estàndard NMRA S 9.2, les dades de velocitat s'han de trobar en una taula de cerca a 'speed_step ()'
void speed_step () {switch (locoSpeed) {
cas 1: dades | = 0x02; trencar;
cas 2: dades | = 0x12; trencar;
cas 3: dades | = 0x03; trencar;
………
cas 28: dades | = 0x1F; trencar; }}
Actualitzeu les dades quan canviïn les funcions:
funció de lectura booleana ()
if (fla [locoAdr] == 0) {dades = 0x80;
} // els llums del cap s’apaguen
if (fla [locoAdr] == 1) {
dades = 0x90;
} // llums del cap encès
Per a cada funció:
if (f2a [locoAdr] == 0) {dades | = 0; }. // Funció 2 desactivada
if (f2a [locoAdr] == 1) {
dades | = 0x02; // La funció 2 de} 'data' es crea combinant ['| =' compost a bits o] els codis HEX de cada funció.
Pas 3: receptor
Es mostra el diagrama del circuit on s’utilitzen els pins 5 i 6 de l’Arduino Pro Mini per proporcionar el senyal DCC subministrat al pont H. Els parells pont H estan connectats en paral·lel per augmentar la capacitat de corrent. Depenent del corrent generat per la locomotora, és possible que calgui connectar un dissipador de calor al dispositiu DIP de 16 pins, o bé es pot connectar externament un pont H de gran resistència.
S'adjunta l'esbós d'Arduino per descarregar-lo. El senyal DCC es compon d'un rellotge que funciona a 2 MHz
void SetupTimer2 () fa aquest treball.
El rellotge inclou "polsos curts" (58us) per a "1" a les dades DCC i "polsos llargs" (116us) per a "0" a les dades DCC.
El bucle buit, obté dades de la ràdio i, si es troba una cadena vàlida, les dades es converteixen en dades DCC.
bucle buit (buit) {if (radio.available ()) {bool done = false; fet = radio.read (inmsg, 1); // llegir les dades rebudes
char rc = inmsg [0]; // posa el caràcter llegit en aquesta matriu
if (rc! = 0) {. // si el caràcter no és igual a zero
inString.concat (rc); // acumula el missatge}
if (rc == '\ 0') {// si el caràcter és '/ 0' final del missatge
Serial.println (inString); // imprimeix el missatge reunit
string (); // desconstrueix el missatge de cadena per obtenir instruccions de DCC
} } }
Pas 4: executeu Locos
Per evitar la interrupció de les dades de la circulació de diversos trens a la mateixa via, heu de desconnectar els contactes entre les rodes i la via per a cada loco i camió emprat.
Gaudeix de trens en circulació gratuïts independentment de les condicions de la via. Quina diferència! Sense molèsties, sense arrencada i sense necessitat de neteja.
Les bateries que he fet servir són recarregables LLoytron AA x 12. He construït un carregador especialment per a elles que carrega 6 a la vegada. (veure instructiu)
Recomanat:
Porta imatges amb altaveu incorporat: 7 passos (amb imatges)
Suport d'imatges amb altaveu incorporat: aquí teniu un gran projecte per dur a terme durant el cap de setmana, si voleu que us poseu un altaveu que pugui contenir imatges / postals o fins i tot la vostra llista de tasques. Com a part de la construcció, utilitzarem un Raspberry Pi Zero W com a centre del projecte i un
Smart IoT Garden: 10 passos (amb imatges)
Smart IoT Garden: si sou com jo, us agraden les fruites i verdures fresques al plat, però no teniu prou temps per mantenir un jardí decent. Aquest instructiu us mostrarà com construir un jardí intel·ligent d’IoT (el dic: Guàrdia Verda) que regi el vostre pl
Model de teclat controlat Train V2.0 - Interfície PS / 2: 13 passos (amb imatges)
Model de teclat controlat Train V2.0 | Interfície PS / 2: en una de les meves instruccions anteriors, us vaig mostrar com controlar un disseny de ferrocarril model mitjançant un teclat. Ho va fer molt bé, però tenia l’inconvenient de requerir un ordinador per funcionar. En aquest instructiu, vegem com controlar un model de tren mitjançant un teclat
Com desmuntar un ordinador amb passos i imatges senzills: 13 passos (amb imatges)
Com desmuntar un ordinador amb passos i imatges senzills: és una instrucció sobre com desmuntar un ordinador. La majoria dels components bàsics són modulars i fàcilment eliminables. Tanmateix, és important que us organitzeu al respecte. Això us ajudarà a evitar la pèrdua de peces i també a fer el muntatge
Google Home Wireless Wireless Charging Mount Car Phone Mount: 7 passos (amb imatges)
Muntatge del telèfon per a cotxe de fusta de càrrega sense fils de Google Home: Benvingut! Alguna vegada heu volgut fer una pregunta a Google mentre conduïu sense obrir el telèfon? L'Assistent de Google és una aplicació fantàstica amb funcions interessants, però requereix que tingueu el telèfon desbloquejat i que tingueu l'aplicació oberta o que mantingueu premuda la llar però