Como Funciona o DCC
Como Funciona o DCC
Como Funciona o DCC
Hoje não é mais um mistério no mundo do ferromodelismo a possibilidade de ter uma central
DCC utilizando o Arduino o famoso DCC++.
Objetivo destes artigos é apresentar de forma prática como funciona o sistema DCC++.
A placa do Arduino gera um sinal elétrico de 5V de baixa potência, que não pode ser ligado
diretamente aos trilhos da maquete, precisamos de um circuito eletrônico para gerar o sinal
elétrico para os trilhos com 12V a 15V com vários Amperes para alimentar nossos trens.
O driver mais utilizado é a placa Shield Motor Versão R3. Esta placa pode ser facilmente
conectada a uma placa Arduino Uno ou Mega e possui duas saídas, uma para o trilho principal
e outra para o trilho de programação dos Decoders.
O maior problema é que poucas placas de potência (módulos) são compatíveis com um circuito
DCC com Arduino, por isso muitos que tentam montar um sistema DCC não tem sucesso e
acabam desistindo dessa alternativa.
A interface mais utilizada com o DCC++ é o software JMRI em um computador. Este software
dispõe muitos recursos para controle e programação dos decoder's.
Antes de falar sobre o Arduino e o DCC++ vamos entender como funcionam os sinais elétricos
do DCC para então compreender como o Arduíno irá gerar esse sinal:
O sinal DCC tem a tensão da fonte é invertida em vários ciclos por segundo conforme o
comando enviado da Central para os Decoders:
Para que o sinal seja válido é necessário que os pulsos se alternem de positivo para negativo
sem nenhum intervalo com tensão zero na transição.
Se entre os pulsos positivos e negativos ocorrem intervalos com zero volts o sinal DCC será
inválido.
Em resumo para gerar o sinal DCC, a central DCC precisa inverter a polaridade da alimentação
dos trilhos conforme a codificação sem intervalo de transição da polaridade;
Na eletrônica existe um circuito chamado Ponte H que faz essa "alternância de polaridade"
necessário para gerar o sinal DCC. Ele funciona como duas chaves duplas S1 e S2 que vamos
chamar de Direção:
Situação 1: Quando o circuito está desativado as chaves S1 e S2 estão desligadas;
Situação 2: Quando é acionada a chave S1, vamos dizer Direção 1, a energia flui através da
chave S1a, em direção a chave S1b geram um sinal Positivo na Saída.
Situação 3: Quando é acionada a chave S2, vamos dizer Direção 2,o sinal de a energia flui
através da chave S2b em direção a chave S2a, gerando um sinal Negativo na Saída;
Para que o sistema DCC funcione, precisamos de um Driver de Potencia (Placa) que utilize um
circuito de Ponte H em que as chaves S1 e S2 sejam alternadas simultaneamente. Se isso não
ocorrer teremos um intervalo entre o Sinal Positivo e Sinal Negativo que ira invalidar a
codificação DCC.
Isso só é possível se o Driver de Potencia (Placa) tiver um único pino para controle da
Direção (Chaves S1 e S2).
2) Leitura de Corrente
A leitura de corrente consumida nos trilhos tem duas finalidades: a) Proteção do Circuito b)
Retorno Valor de CVs de Decoders.
a) No trilho de Operação a leitura de corrente que está sendo consumida serve para proteger o
circuito de sobrecargas que poderiam queimar a fonte ou o Driver de Potencia.
SHIELD MOTOR R3
A placa Shield Motor R3 é o Driver de Potência recomendado para DCC++. Ela foi a placa
escolhida pelo criador do DCC++ Gregg E. Berman por atender aos requisitos citados acima: 1)
Um único pino para controle da Direção e 2) Retorno da Corrente consumida na saída e poder
ser conectada diretamente as placas Arduino UNO e Arduino MEGA.
No próximo post vamos ver como enviar comandos DCC diretamente do Arduino com DCC++
Na primeira parte deste Artigo falamos um pouco sobre os componentes do sistema DCC++
agora vamos apresentar como Sketch o DCC++ funciona.
Basicamente o DCC++ recebe comandos via porta serial (Cabo USB) e transforma em um
comando DCC, quando utilizamos um software como o JMRI conectado ao DCC++
basicamente ele envia esses comandos seriais para o Arduino;
A grande genialidade do DCC++ é que ele permite que qualquer um crie uma interface para
controle, seja via computador ou outro Arduino já que os comandos de controle são facilmente
enviados via serial.
2. Conecte aos trilhos o Multímetro e coloque o mesmo para Leitura de Tensão Corrente
Alternada (AC):
3. Na caixa de digitação do Monitor Serial digite o comando "<1>" (sem as aspas conforme na
imagem abaixo) e tecle ENTER. Esse comando irá ligar o DCC++.
Observe na tela que o Arduino deve ter retornado "<p1>" sinalizado que está ativo:
4. Observe seu multímetro, ele deverá apresentar uma tensão um pouco mais baixa que o
valor da sua fonte (+/- 11.5 para 12V e +/- 14.5 para 15V):
Coloque o seguinte código no monitor serial: <f DECODER 145>, troque a palavra
DECODER pelo endereço do decoder da sua locomotiva, no caso a minha é 1363, então o
comando será "<f 1363 145>".
Enviou o comando? Acendeu a luz da locomotiva? O comando que enviamos foi o F0 e o
F1.
O numero que que enviamos de comando (145 e depois 128) são calculados conforme a
função a ser ativada.
Montei a planilha ComandosDCC++.xlsx que faz esses cálculos conforme a função que quiser
ativar o movimentar a locomotiva:
Para utilizar a planilha, preencha o endereço da sua locomotiva e os valores para as funções
que quer ativar/desligar:
3. Envie o comando: <R 1 0 0>. Este comando está solicitando ao decoder o valor do CV1:
4. Sua locomotiva deve piscar a luz e dar um pequeno "pulo". No Monitor Serial você deverá
receber o retorno do valor de CV1 (Endereço Primário do Decoder). No caso da minha
locomotiva o retorno foi "<r0|0|1 3>", onde 1 é o numero do CV que está sendo exibido e 3 o
valor do CV:
Para ver o valor de outro CV é só trocar no comando <R 1 0 0> o numero 1 pelo numero do CV
que deseja ler o valor, por exemplo CV8 (Código do Fabricante do Decoder): <R 8 0 0>.
Central DCC++ com Arduino
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;
Material Necessário:
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.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.
Por padrão a Shield Motor R3 alimenta o Arduino pelo pino "Vin", porém isso não é
recomendado quando utilizamos fontes acima de 12V pois existe o risco de danificar a placa do
Arduino. Como vamos utilizar ele conectado a porta USB do computador sua alimentação será
feita por esse cabo sem a necessidade de uma segunda fonte para o Arduino.
1.2. Agora pode "espetar" a Shield sobre o Arduino. Para isso alinhe seus pinos aos conectores
do Arduino e pressione para encaixar:
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.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++:
Nos arquivos exibidos, selecione a pasta "DCCpp_Uno" e de um clique duplo sobre ela para
exibir os arquivos:
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":
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.
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.
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:
Pronto, agora o JMRI está configurado e sua central DCC++ está pronta para ser utilizada.
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”
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)
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:
Bom amigo ferromodelista, se tiverem dúvidas entre em contato que será um prazer ajuda-los!!!