Índice:
Vídeo: Trem do jardim - Arduino Wireless NMRA DCC: 4 etapas (com imagens)
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:37
Além do anterior instrutível com DCC em sistema de trilho morto, desenvolvi a ideia ainda mais com uma estação de comando DCC portátil com teclado e display LCD. A Estação de Comando contém toda a codificação necessária para as instruções NMRA DCC, porém, em vez de conectar aos trilhos, os dados são transferidos pelo módulo de rádio RF24L01 + para um receptor montado em um caminhão ou sob a locomotiva - onde o espaço permitir.
Claro, suas locomotivas devem ser equipadas com um decodificador de capacidade de carga adequado para os motores do motor.
Etapa 1: Design do sistema
O Arduino Pro Mini está no centro do design. Usando Fritzing para desenvolver o circuito e produzir PCBs.
Consegui usar o mesmo PCB tanto para o transmissor quanto para o receptor, economizando alguns custos.
O transmissor tem conexões para teclado e LCD, enquanto o receptor não requer isso e usa a ponte H para fornecer a saída DCC para a locomotiva.
Um desenvolvimento adicional inclui conexões para uma ponte H maior, se necessário para locomotivas mais potentes.
O PCF8574 pode ser excluído se você usar um display LCD que vem com a mochila permitindo conexões SCA / SCL no Arduino para alimentar o display usando apenas 2 fios. Lista de peças: Total = aproximadamente £ 60 para DCC Command Station + 1 receptorCusto adicional de receptores = £ 10,00 aproximadamente cada. + baterias
Arduino Pro Mini. x 2 = £ 4,00
Teclado de membrana 4x3 = £ 3,00
Tela LCD 20 x 4 = £ 7,00
PCF5874 = £ 1,80
NRF24L01 +. módulos de rádio x 2 = £ 5,80
Fabricação de PCB para 10 unidades (ou placa Vero pode ser usada) = £ 24 ou £ 4,80 para 2 unidades
3,3 v Regulador = £ 0,17 (pacote de 25 da RS Comp)
Regulador 5v LM7805 = £ 0,30
SN754410ne H-bridge = £ 3,00
Pilhas AA de 2700 maH recarregáveis Lloytron x 12 = £ 22,00. (baterias com classificação de maH inferior são mais baratas)
Capacitores, potes, pinos, conectores, etc = £ 2,00 aprox.
Gabinete 190x110x60 mm = £ 8,00
Transmissor - carregador / bateria do telefone = £ 2,00
Etapa 2: Transmissor
O diagrama de circuito é mostrado onde os pinos D2 a D8 no Arduino Pro Mini estão conectados ao teclado. Um potenciômetro de 100k ohm é conectado ao pino analógico A0 para ajuste de velocidade. Os pinos SDA e SCL do chip PCF8574 são conectados aos pinos A4 e A5 no Arduino Pro Mini por meio de fios soldados aos pinos na camada superior do Pro Mini.
O esboço do Arduino está anexado para download.
Usei um display LCD 20 x 4 que permite 4 linhas de informação com 20 caracteres por linha. O teclado fornece o seguinte menu:
1 a 9 = endereço da locomotiva * = direção 0 = luzes # = Menu de funções para as teclas 1 a 8
Descrição básica do esboço do Arduino Pro Mini: Esta linha do código organiza a mensagem DCC no formato HEX. struct Message msg [MAXMSG] = {
{{0xFF, 0, 0xFF, 0, 0, 0, 0}, 3}, // msg inativa
{{locoAdr, 0, 0, 0, 0, 0, 0}, 3} // endereço de 3 bytes
};
Para armazenar as configurações de cada locomotiva, uma série de matrizes são configuradas da seguinte forma:
int la [20]; // array para conter os números das locomotivas
int sa [20]; // array para manter os valores de velocidade
int fda [20]; // array para conter dir
int fla [20]; // array para conter as luzes
int f1a [20]; // array para manter fun1…..
int f8a [20]; // array para manter o fun8
Para permitir que as instruções DCC sejam alteradas à medida que avançamos:
Para obter instruções de velocidade: void Amendment_speed (struct Message & x) {
x.data [0] = locoAdr;
x.data [1] = 0x40; // locoMsg com 28 passos de velocidade}
Para instruções de função:
void Amendment_group1 (struct Message & x) {
x.data [0] = locoAdr;
x.data [1] = 0x80; // locoMsg com instrução grupo um 0x80}
O loop principal do esboço:
loop void (void) {if (read_locoSpeed ()) {assemble_dcc_msg_speed ();
send_data_1 (); // enviar dados sem fio
atraso (10);
send_data_3 (); // exibe dados no display LCD
send_data_4 (); // exibe dados no monitor serial}
if (read_function ()) {
assemble_dcc_msg_group1 ();
send_data_1 ();
atraso (10);
send_data_3 (); }}
Atualize os dados quando a velocidade mudar:
boolean read_locoSpeed () Detecta um novo endereço de locomotiva, configuração de velocidade ou direção e altera os 'dados' HEX de acordo. Aqui eu especifiquei 28 etapas de velocidade e para atender ao padrão NMRA S 9.2, os dados de velocidade devem ser encontrados em uma tabela de consulta em 'speed_step ()'
void speed_step () {switch (locoSpeed) {
caso 1: dados | = 0x02; pausa;
caso 2: dados | = 0x12; pausa;
caso 3: dados | = 0x03; pausa;
………
caso 28: dados | = 0x1F; pausa; }}
Atualize os dados quando as funções mudarem:
boolean read_function ()
if (fla [locoAdr] == 0) {data = 0x80;
} // faróis apagados
if (fla [locoAdr] == 1) {
dados = 0x90;
} // faróis acesos
Para cada função:
if (f2a [locoAdr] == 0) {data | = 0; } // Função 2 desligada
if (f2a [locoAdr] == 1) {
dados | = 0x02; // Função 2 em} 'dados' é construída combinando ['| =' composto bit a bit ou] os códigos HEX para cada Função.
Etapa 3: Receptor
O diagrama de circuito é mostrado onde os pinos 5 e 6 do Arduino Pro Mini são usados para fornecer o sinal DCC fornecido para a ponte H. Os pares de ponte H são conectados em paralelo para aumentar a capacidade de corrente. Dependendo da corrente consumida pela locomotiva, um dissipador de calor pode ser necessário para ser conectado ao dispositivo DIP de 16 pinos, ou uma ponte H de serviço pesado pode ser conectada externamente.
O esboço do Arduino está anexado para download. O sinal DCC é composto de um relógio rodando a 2MHZ
void SetupTimer2 () faz esse trabalho.
O relógio inclui 'pulsos curtos' (58us) para '1' em dados DCC e 'pulsos longos' (116us) para '0' em dados DCC.
O loop void obtém dados do rádio e, se uma string válida for encontrada, os dados são convertidos em dados DCC.
loop void (void) {if (radio.available ()) {bool done = false; feito = radio.read (inmsg, 1); // leia os dados recebidos
char rc = inmsg [0]; // coloca o caractere lido neste array
if (rc! = 0) {. // se o caractere não for igual a zero
inString.concat (rc); // construir a mensagem}
if (rc == '\ 0') {// if caractere é '/ 0' fim da mensagem
Serial.println (inString); // imprime a mensagem montada
fragmento(); // desconstrua a mensagem de string para obter instruções DCC
} } }
Etapa 4: execute os Locos
Para evitar a interrupção dos dados da operação de vários trens na mesma via, você deve desconectar os contatos entre as rodas e a via para cada locomotiva e caminhão empregado.
Desfrute de trens rodando livremente, independentemente das condições da pista - que diferença! Sem complicações, sem iniciar-parar e sem limpeza necessária.
As baterias que usei são recarregáveis LLoytron AA x 12. Eu construí um carregador especialmente para elas que carrega 6 por vez. (ver instrutível)
Recomendado:
Controle o layout do seu trem modelo com o seu celular !: 11 etapas (com imagens)
Controle o layout do seu trem-modelo com o seu celular !: Controlar o layout do trem-modelo com um acelerador com fio e controladores de desvio pode ser um bom começo para iniciantes, mas eles representam um problema de não portabilidade. Além disso, os controladores sem fio que vêm no mercado podem controlar apenas alguns locom
Olá, trem! ATtiny 1614: 8 etapas (com imagens)
Olá, trem! ATtiny 1614: Para minha aula da Fab Academy, tenho que criar uma placa com um microcontrolador, um botão e um LED. Vou usar o Eagle para criá-lo
Jardim inteligente de IoT: 10 etapas (com imagens)
Smart IoT Garden: Se você for como eu, gosta de frutas e vegetais frescos no seu prato, mas não tem tempo suficiente para manter um jardim decente. Este instrutível mostrará como construir um jardim IoT inteligente (eu o chamo: Guarda Verde) que rega seu pl
Trem modelo controlado por teclado V2.0 - Interface PS / 2: 13 etapas (com imagens)
Trem modelo controlado por teclado V2.0 | Interface PS / 2: Em um dos meus Instructable anteriores, mostrei como controlar um layout de modelo de ferrovia usando um teclado. Ele foi ótimo, mas tinha a desvantagem de exigir um computador para funcionar. Neste Instructable, vamos ver como controlar um trem de modelo usando um teclado
Controle o layout do trem modelo com o controle remoto da TV: 7 etapas (com imagens)
Controle o layout do trem-modelo com o controle remoto da TV !: Neste manual, mostrarei como fazer um sistema de controle remoto IR para um trem-modelo. Você poderá então controlar seus trens enquanto relaxa em seu sofá. Então vamos começar