domingo, 17 de setembro de 2017

Controle 8 AMV's Com Servos & Arduino

Este projeto pode ser utilizado pelos colegas Ferromodelistas para controlar AMVs de uma maquete com chaves ou pelo JMRI utilizando o Arduino UNO/Arduino Nano/Arduino Pro.



Você vai precisar para esse projeto: Arduino, Servos e as Chaves para acionamento.

O código pode ser baixado no link abaixo e transferido para o Arduino utilizando o IDE:




Os pinos para conexão do dos Servos e Controles são:

Pino Servo Pino Controle
AMV 1 2 6
AMV 2 3 7
AMV 3 4 8
AMV 4 5 9
AMV 5 A0 10
AMV 6 A1 11
AMV 7 A2 12
AMV 8 A3 A5



As chaves de controle precisam de apenas dois fios, um ligado ao GND e outro ao seu respectivo pino de controle:


Exemplo Ligação do Servo 1


Para alimentação dos servos é recomendada uma fonte separada e o uso do PowerOnDelay para evitar o “pulo” dos servos quando a fonte for ligada.



Ajustes nas Configurações:

Eventualmente será necessário algum ajuste nas configurações dos servos ou do tempo de movimento. Para fazer esses ajustes seguem algumas orientações:



1. Tempo de Movimento do AMV

Para ajustar o tempo de movimento do AMV altere da variável “TempoPulso”. Quanto maior, maior será o tempo do movimento:

//Milisegundos para avanço por grau 
#define TempoPulso 100


2. Posição Inicial e Final do AMV

Para alterar a posição Inicial e Final do AMV você precisa alterar os valores das variáveis valIniServo e/ou valFimServo.  
Os valores entre chaves nas linhas abaixo representam os valores para cada servo na sequencia (Servo 1 a 8):

//Angulo Minimo dos Servos
byte valIniServo[8] {5, 5, 5, 5, 5, 5, 5, 5};  
//Angulo Maximo dos Servos
byte valFimServo[8] {60, 60, 60, 60, 60, 60, 60, 60};


Exemplo: Para alterar os valores do Servo 5, configurado o valor Inicial para 10 e o valor final para 50:

//Angulo Minimo dos Servos
byte valIniServo[8] {5, 5, 5, 5, 10, 5, 5, 5};  
//Angulo Maximo dos Servos
byte valFimServo[8] {60, 60, 60, 60, 50, 60, 60, 60};




Fixação do Servos sobre a Maquete: 

Para fixação dos servos na maquete você pode confeccionar um suporte utilizando estireno de 3mm e de 1mm cortado nas medidas abaixo:





1. Monte o suporte de fixação colando as tiras de 20mm sobre as tiras de 45mm:


2. Deixe uma distancia para colocar o servo, ele precisa entrar em diagonal por causa do fio;



3. Faça os furos para fixação do servo:


4. Faça os furos de fixação da base e de passagem do arame do AMV. Os furos de fixação maiores facilitam ajustes do AMV sobre a maquete e o furo de passagem do arame precisa ter um diametro bem superior ao arame para permitir a sua curvatura (Veja o item 8):


6. Antes de colar a Base alinhe o Braço do Servo com o final do Furo do arame:


7. Faça uma curva “Z” na ponta do arame para fixa-lo ao braço do servo:


8. Faça um furo o menor possível na tira de estireno de 1mm o suficiente para passar o arame que ira acionar os AMV, isso evitara folgas e o funcionamento correto do mecanismo:
Tira "guia" do Arame

A tira de 1 mm ira definir o ponto de inclinação do arame. Se tiver muita folga o mecanismo não irá funcionar corretamente. Já o furo na base precisa permitir a inclinação total do arame.


9. Pronto, agora é só fixar sob a maquete e fazer os eventuais ajustes no ângulo inicial e final do servo;




Veja o vídeo de funcionamento desse controle e o suporte para servos:


2 comentários:

  1. Olá Clederson.

    Boa tarde.

    Antes de mais nada eu gostaria de agradecer muito os projetos publicados aqui no Expresso Arduíno. Segui o passo a passo e montei sem muita dificuldade tanto o controlador DCC++ quanto esse projeto de controle dos AMVs com os servo motores. Muito obrigado. Valeram demais as dicas.

    Pergunto apenas no caso desse projeto dos AMVs se você dispõe do passo a passo para permitir que os desvios sejam controlados a partir dos sistemas de controle JMRI. O programa do Arduíno disponibilizado permite o acionamento dos AMVs por meio de chaves conectadas ao Arduíno, mas eu gostaria muito de implementar o controle por meio do PanelPro do JMRI. Agradeceria muito se você pudesse indicar onde posso conseguir o código do Arduino para o controle a partir do JMRI. Grato. Renato Guedes

    ResponderExcluir
  2. O código controle servos está bloqueado e não se consegue acessar.
    Favor liberar

    ResponderExcluir