Neste artigo vamos apresentar como montar um Central DCC utilizando o Arduino UNO e a Shield Motor R3 para controlar pelo Computador ou Celular suas locomotivas DCC
Como funciona:
a) No computador temos o software JMRI instalado, nele teremos os Throttles (Controles) para comandar nossas locomotivas DCC;
b) O computador enviar os comandos do JMRI para o Arduino com DCC++ pelo cabo USB;
c) O Arduino com DCC++ codifica os comandos e gera o sinal elétrico DCC com o Driver de Potencia (Shield Motor R3) conectado aos trilhos;

a) 1x Placa Arduino UNO;
b) 1x Modulo Shield Motor R3;
c) 2x Pedaços de fio para jumper, um com 2cm e outro com 5 cm;
d) 1x Fonte de Alimentação 12V a 15V x 2A (Recomendado 15V) ;
Softwares Necessários:
a) Sketch DCC++ (Código para o Arduino);
b) IDE Arduino (Necessário programar a placa Arduino com o sketch DCC++);
c) Software JMRI (Programa que iremos usar no computador para controlar as Locomotivas);
1. Preparando o Arduino UNO com a Shield Motor R3
1.1. A primeira coisa que precisa ser feita é desligar (cortar para ser mais exato) na parte inferior da Shield Motor R3 o jumper Vin Conect. Você pode fazer isso usando um estilete ou bisturi, se tiver um multímetro confirme que o jumper foi aberto.
1.2. Agora pode "espetar" a Shield sobre o Arduino. Para isso alinhe seus pinos aos conectores do Arduino e pressione para encaixar:
1.3. Depois vamos conectar os jumpers na Shield:
- Pino 12 com Pino 10
- Pino 13 com Pino 5
Para gerar os sinal DCC o programa DCC++ utiliza alguns recursos de tempo do microcontrolador que obrigatoriamente controlam os pinos 10 e 5 do Arduino, já a Shield Motor R3 tem fixo os pinos 12 e 13 para Sinal de Direção. Estes jumpers interligam esses pinos.
Agora seu Arduino está "fisicamente" pronto!
2. Instalando o Sketch DCC++ no Arduino
Para transferir o Sketch do DCC++ para a placa Arduino você precisa ter instalado no seu computador a IDE do Arduino. Se você ainda não ele instalado, siga o passo-a-passo deste Artigo: Instalação da IDE do Arduino.
Agora o Arduino está pronto com o DCC++
3. Instalando o JMRI
3.1. Como o nome já diz, o JMRI é desenvolvido em Java e para poder executa-lo, vamos precisar ter instalado o Runtime do Java.
Acesse a página oficial https://www.java.com/pt_BR/ e faça o download do Java compatível com seu sistema operacional:
Depois de concluir o download execute o instalador seguindo as orientações do aplicativo.
Preste atenção nas mensagens que algumas vezes trazem “propaganda” embutida no instalador, sugerindo de alteração da pagina inicial do navegador para o Yahoo e coisas assim, se não quiser essas modificações é só desmarcar estas opções.
3.2. Como o Java instalado vai baixar o JMRI do seu site oficial para instalação.
Acesso o site: http://jmri.org/
Na página principal tem a ultima versão disponível do JMRI para Download. Procure pela versão de Produção “Production Release”:
3.3. Escolha a versão compatível com seu sistema operacional e clique no link para fazer o download:
3.4. Com o Download concluído execute a instalação. Ela é bem simples e basta seguir as telas clicando em “Next” até a instalação começar:
3.5. Com a instalação concluída você terá os atalhos no seu desktop para executar o JMRI:
3.6. Com seu Arduino conectado ao computador, execute o PanelPro, será apresentada uma tela para configurar a conexão entre o computador e a sua ferrovia:
3.6.1. Na caixa System Manufacturer selecione “DCC++”:
3.6.2. Na opção System Connection selecione “DCC++ Serial Port”
3.6.3. Na opção Settings selecione a porta serial em que o Arduino está conectado (No meu caso COM3) e clique no botão “Salvar” na parte de baixo a esquerda da tela.
Pronto, agora o JMRI está configurado e sua central DCC++ está pronta para ser utilizada.
4. Controlando Seus Trens com JMRI
4.1. Conecte a fonte de alimentação de 12V/15V na Shield Motor R3 FONTE 15V: Negativo no pino GND e o positivo no pino VIN. Ligue os trilhos da maquete aos pinos A+ e A-. Nos pinos B+ e B- você pode conectar o trilho que será utilizado para programação de decoders.
4.2. Execute o aplicativo PanelPro do JMRI e abra a opção Tools => Throttles => New Throttles
4.3. Na parte superior da tela tem um botão para ligar e desligar o DCC++. Clique nele para acionar o DCC++
Neste momento os quatro Leds da Shield Motor próximo as saídas A+/A-/B+/B- devem ficar acessos indicando que o energia está sendo enviada aos trilhos.
4.4. Com o DCC++ ativo (Botão Verde), informe na parte de baixo em “Panel Address” o endereço da sua locomotiva e clique em “Set”.
4.5. Agora é só usar os controles! Para trocar de locomotiva clique em “Release” no “Panel Address”
5. Controlando Seus Trens com Celular
Atenção: Para utilizar esse recurso do JMRI seu computador e seu Celular estejam conectados a mesma rede WIFI
5.1. Baixe no seu celular o aplicativo Engine Driver (Android) ou WiThrottle Lite (iOS):
5.2. No PanelPro inicie o serviço WiThrottle na opção Tools => Throttles => Start WiThrottle Server
5.3. Se o DCC++ não estiver ativo (Ícone Vermelho) inicie o DCC++
4.4. Abra no seu celular o app instalado (Exemplo Android Engine Driver):
4.5. Na primeira tela do aplicativo serão exibidas os servidores localizados na sua rede WiFI, clique na servidor localizado em “Discovered Servers”:
Observe que quando conectar o celular, no microcomputador que será exibida a conexão do seu celular no WiThrottle Server:
5.6. No celular clique no botão “Press to select” para informar o endereço da locomotiva:
4.7. Informe o endereço da locomotiva e clique em “Acquire”:
4.8. Pronto.. agora você pode controlar suas locomotivas pelo Celular:
Para conhecer mais:
Seguem algumas sugestões de vídeos para conhecer mais sobre o JMRI:
Bom amigo ferromodelista, se tiverem dúvidas entre em contato que será um prazer ajuda-los!!!
- Pino 12 com Pino 10
- Pino 13 com Pino 5
Para gerar os sinal DCC o programa DCC++ utiliza alguns recursos de tempo do microcontrolador que obrigatoriamente controlam os pinos 10 e 5 do Arduino, já a Shield Motor R3 tem fixo os pinos 12 e 13 para Sinal de Direção. Estes jumpers interligam esses pinos.
Agora seu Arduino está "fisicamente" pronto!
2. Instalando o Sketch DCC++ no Arduino
Para transferir o Sketch do DCC++ para a placa Arduino você precisa ter instalado no seu computador a IDE do Arduino. Se você ainda não ele instalado, siga o passo-a-passo deste Artigo: Instalação da IDE do Arduino.
2.1. Download do código do DCC:
2.1.1. Acesse o site https://github.com/DccPlusPlus/BaseStation
2.1.2. Na página clique no botão "Clone or Download" e em seguida no botão "Download ZIP":
2.1.3. Quando o download estiver concluído abra o arquivo. No programa ZIP clique na opção "Extrair Para" ou "Extract To".
Na janela que vai abrir, selecione a pasta "Sketch Arduino" (Ver Artigo Instalação da IDE do Arduino) e clique em "OK":
2.1.4. Acesse a pasta "Sketch Arduino" em Documentos no seu computador. Você vai encontrar lá a pasta "BaseStation-master" onde foi salvo o código do DCC++:
Com os arquivos em seu computador, vamos transferir o Sketch para o Arduino.
2.2. Gravando o Sketch do DCC++ no Arduino
2.2.1.Abra o IDE do Arduino;
2.2.2. Vá no menu "Arquivo" / "Abrir":
2.2.3. Localize a pasta "Sketch Arduino", dentro dela de um clique duplo sobre a pasta "BaseStation-master".
Nos arquivos exibidos, selecione a pasta "DCCpp_Uno" e de um clique duplo sobre ela para exibir os arquivos:
2.2.4. Na lista de arquivos da pasta "DCCpp_Uno" localize o arquivo "DCCpp_Uno.ino". Dependendo da versão do seu IDE ele irá aparecer com o ícone do Arduino.
Clique uma vez sobre esse arquivo e clique no botão "Abrir":
2.2.5. Será aberto no IDE o código do DCC++, observe que ele tem várias "abas" com diferentes partes do código. Não se preocupe com o código, não vamos alterar nada nele:
2.2.6. Clique no ícone "Carregar" para transferir o Sketch para sua placa do Arduíno.
2.2.7. Quando a transferência estiver concluída ira aparecer na parte de baixo do IDE a mensagem "Carregado":
2.2.8. Abra o Monitor Serial da IDE e verifique se o Arduino está respondendo:
3.1. Como o nome já diz, o JMRI é desenvolvido em Java e para poder executa-lo, vamos precisar ter instalado o Runtime do Java.
Acesse a página oficial https://www.java.com/pt_BR/ e faça o download do Java compatível com seu sistema operacional:
Download Java
Depois de concluir o download execute o instalador seguindo as orientações do aplicativo.
Preste atenção nas mensagens que algumas vezes trazem “propaganda” embutida no instalador, sugerindo de alteração da pagina inicial do navegador para o Yahoo e coisas assim, se não quiser essas modificações é só desmarcar estas opções.
3.2. Como o Java instalado vai baixar o JMRI do seu site oficial para instalação.
Acesso o site: http://jmri.org/
Na página principal tem a ultima versão disponível do JMRI para Download. Procure pela versão de Produção “Production Release”:
Página do JMRI
3.3. Escolha a versão compatível com seu sistema operacional e clique no link para fazer o download:
Downloads Disponíveis
3.4. Com o Download concluído execute a instalação. Ela é bem simples e basta seguir as telas clicando em “Next” até a instalação começar:
3.5. Com a instalação concluída você terá os atalhos no seu desktop para executar o JMRI:
3.6. Com seu Arduino conectado ao computador, execute o PanelPro, será apresentada uma tela para configurar a conexão entre o computador e a sua ferrovia:
3.6.1. Na caixa System Manufacturer selecione “DCC++”:
3.6.2. Na opção System Connection selecione “DCC++ Serial Port”
3.6.3. Na opção Settings selecione a porta serial em que o Arduino está conectado (No meu caso COM3) e clique no botão “Salvar” na parte de baixo a esquerda da tela.
Pronto, agora o JMRI está configurado e sua central DCC++ está pronta para ser utilizada.
4. Controlando Seus Trens com JMRI
4.1. Conecte a fonte de alimentação de 12V/15V na Shield Motor R3 FONTE 15V: Negativo no pino GND e o positivo no pino VIN. Ligue os trilhos da maquete aos pinos A+ e A-. Nos pinos B+ e B- você pode conectar o trilho que será utilizado para programação de decoders.
Conexões da Fonte e dos Trilhos
4.2. Execute o aplicativo PanelPro do JMRI e abra a opção Tools => Throttles => New Throttles
4.3. Na parte superior da tela tem um botão para ligar e desligar o DCC++. Clique nele para acionar o DCC++
Neste momento os quatro Leds da Shield Motor próximo as saídas A+/A-/B+/B- devem ficar acessos indicando que o energia está sendo enviada aos trilhos.
4.4. Com o DCC++ ativo (Botão Verde), informe na parte de baixo em “Panel Address” o endereço da sua locomotiva e clique em “Set”.
4.5. Agora é só usar os controles! Para trocar de locomotiva clique em “Release” no “Panel Address”
5. Controlando Seus Trens com Celular
Atenção: Para utilizar esse recurso do JMRI seu computador e seu Celular estejam conectados a mesma rede WIFI
5.1. Baixe no seu celular o aplicativo Engine Driver (Android) ou WiThrottle Lite (iOS):
Engine Driver (Android)
WiThrottle Lite (iOS)
5.2. No PanelPro inicie o serviço WiThrottle na opção Tools => Throttles => Start WiThrottle Server
5.3. Se o DCC++ não estiver ativo (Ícone Vermelho) inicie o DCC++
4.4. Abra no seu celular o app instalado (Exemplo Android Engine Driver):
4.5. Na primeira tela do aplicativo serão exibidas os servidores localizados na sua rede WiFI, clique na servidor localizado em “Discovered Servers”:
Observe que quando conectar o celular, no microcomputador que será exibida a conexão do seu celular no WiThrottle Server:
5.6. No celular clique no botão “Press to select” para informar o endereço da locomotiva:
4.7. Informe o endereço da locomotiva e clique em “Acquire”:
4.8. Pronto.. agora você pode controlar suas locomotivas pelo Celular:
Para conhecer mais:
Seguem algumas sugestões de vídeos para conhecer mais sobre o JMRI:
JMRI - Controlando locomotivas pelo celular
Fernando Franco
JMRI - Utilizando o DecoderPRO para programar a locomotiva
Fernando Franco
Bom amigo ferromodelista, se tiverem dúvidas entre em contato que será um prazer ajuda-los!!!
how to conect with MONSTER MOTOR SHIELD VNH2SP30 ?
ResponderExcluirHi, Shield VNH2SP30 is same Red Shield L298 with circuit to invert signal of Input B (one transistor / two resistor) :
ResponderExcluirhttps://4.bp.blogspot.com/-FMl0pUx0CAI/WX4Oln8eAWI/AAAAAAAAEik/sk9ZdP3uM_YpCpMnnBG1YLRmQH_gHOYLACLcBGAs/s1600/CIrAuxiliarL298.png
OK that's great...
ResponderExcluiris there any track/line to cut or solder ?
(like pict https://3.bp.blogspot.com/-AclhlDshoSo/WX_dU8FJ6YI/AAAAAAAAEsk/SGaV12GJP9UrzzfltHNse5OwJZwt5rhYQCEwYBhgL/s1600/L298_v1_CorteBaixo1.jpg)
Cut , isolation L298N pins 1 and 15.
ExcluirOn modules L298N this pins is conect on GND. Its necessary cut this conection.
In next step pins 1 e 15 are conect in sensor current circuit (LM358 + Resistor 0.15R + Resistor 10K+Resistor 1K ).
Boa tarde, uma duvida, é possivel usar uma fonte de computador com mais de 9 Amperes para a Shield, isso não causa dano ? Vlw Abraço.
ResponderExcluirBoa noite Quinho,
ExcluirPode usar sem problemas, a shield só vai fornecer corrente até o seu limite (+/-1.2A).
Quando o consumo passa desse limite o código do DCC++ desliga a alimentação.
Abraços,
Clederson
Este comentário foi removido pelo autor.
ResponderExcluirBoa noite meu amigo, tudo bem?
ResponderExcluirAntes de mais nada, gostaria de parabenizar e agradecer pelo trabalho de compartilhar essas informações conosco, são de grande valia. Obrigado.
Eu segui todos os passos porém eu comprei um Motor Shield da Robocore
https://www.robocore.net/shields-arduino/arduino-shield-motor-driver-2x2a/
Só que estou achando que é incomparável, apesar de ser muito bem feito.
Já passou ou conhece alguém que passou por esse problema?
A Arduino provavelmente não é pois tenho 2 Uno e 2 Mega e em todos apresenta o mesmo problema.
Obrigado, abraços
Giuliano
giuliano.luz@gmail.com
Boa noite amigo, parabéns pelo seu Blog, muito bom , tem ajudado muita gente inclusive eu que consegui graças a vc montar meu DCC++ que estava funcionando bem até a semana passada, porém quando liguei na segunda feira percebi que não estava acendendo os 4 leds do motor shield, só está acendendo os leds do Prog. O que vai para a linha "A" não acende mais e não alimenta os trilhos, já fiz de tudo, inclusive comprei outro Arduino e o motor shield novos e montei outro , mas o problema continua o mesmo , mesmo com as placas novas, se puder ficaria muito grato pela ajuda para solucionar esse caso, aguardo seu retorno obrigado pela atenção.
ResponderExcluirBoa tarde amigo. Eu passei esse problema ontem. Mas bastou eu acessar ENERGIA no programa do celular android e LIGAR O MOTOR. Foi só ligar. hihi. Veja se não é seu caso. abs
ExcluirApenas hoje 18/01/2022 após 5 anos do seu Blog 2017 tive conhecimento desta possibilidade de fazer usar DCC++ com motor shild R3. Alias no blog é sensacional muito bem explicativo, porem faço a seguinte pergunta: como a tecnologia corre a passos largos, posso seguir hoje o passo a passo usando os mesmo elementos ou ja tem novas versões. Fico deste já grato aguardando a sus resposta
ResponderExcluirOLA. Muito informativo o blog. Parabéns.Gostaria de saber se posso usar uma placa de potência L298N no lugar da motor shield e como ficaria as ligações? Se sim como ficariam as linhas de código do arduino, alteraria alguma coisa?
ResponderExcluirBom dia amigo tudo bem fiz todo processo passo a passo mais , minha MOTOR SHIELD dos 4 leds um não esta acendendo sabe me dizer o que devo fazer ? é o segundo led que fica próximo a saída dos fios da configuração dos trilhos .
ResponderExcluirBoa tarde amigo. Eu segui seu projeto, mas usando outra shield, a L298P. Não consegui encontrar a shield que vc usou a venda no brasil, mas pretendo importá-lá. O problema é que a medição da anergia está em torno de 6 V. A locomotiva só faz uns pequenos barulhos mas não responde. acredito que deveria passar 12 V nos trilhos, certo? vc consegue me ajudar a descobrir o que pode ser? no canal de programação, está passando em torno de 2 V. estou usando uma fonte de 12 V, 2 A.
ResponderExcluirMuito obrigado pela ajuda. Graças a você, estou podendo ter controlador DCC sem vender um rim..kkk
Valeu.
Boa noite. Primeiro parabéns pelo conteúdo. Fiz toda a montagem e funcionou perfeitamente, porém, preciso de mais corrente alguma indicação de outra ponte H ou um circuito equivalente?
ResponderExcluir