Por Fernando Koyanagi
Controlando um motor de passo (Vídeo da montagem)
Características principais Não possuem escovas ou comutadores aumentando a vida útil. Permitem o controle de velocidade e posicionamento mais precisos. Necessitam de um controle mais complexo para operação. Rotaciona em ângulos discretos e sequenciais (chamados passos). Seu ponto forte é a precisão e não a velocidade ou torque, ao contrário dos outros tipos de motores.
Extraindo o motor do Scanner...
Extraindo o motor do Scanner...
Extraindo o motor do Scanner...
Extraindo o motor do Scanner...
Motor do Scanner
Configuração das bobinas ( Tipos ) As bobinas internas de um motor de passo podem aparecer em duas configurações básicas: UNIPOLAR e BIPOLAR. A forma como as bobinas são ligadas determinará a forma de controle do motor e o tipo de driver que poderá ser utilizado. BIPOLAR UNIPOLAR
Motor BIPOLAR As bobinas internas de um motor de passo BIPOLAR são independentes (A+A- e B+B-). Normalmente possuem 4 fios. Para identificar os pares (A+A- ou B+B-), podemos utilizar um ohmímetro. A resistência elétrica apresentada pelas bobinas é baixa (na ordem de alguns ohms). Se ao medir, detectarmos algum valor de resistência, temos um par. A identificação de qual bobina é A ou B não é importante neste caso. Ao montar o circuito de ativação, perceberemos se alguma das bobinas ficou invertida (+ e -), porque o motor ao invés de girar irá oscilar de um lado para o outro. Basta inverter os fios de alguma das bobinas. - Motores Bipolares precisam de um driver capaz de inverter a polaridade da tensão aplicada nas bobinas (normalmente uma ponte H).
Motor BIPOLAR BRANCO e VERMELHO NÃO formam uma bobina (circuito aberto) BRANCO e VERDE NÃO formam uma bobina (circuito aberto) Branco e Amarelo formam uma bobina (resistência baixa) VERMELHO e VERDE formam uma bobina (resistência baixa)
Eletrônica digital e motores de passo Para controlar os motores de passo, utilizamos circuitos digitais para determinar a sequencia de acionamento das bobinas. E a partir disso, determinar sua velocidade de rotação, direção e posicionamento. Para isso, vamos programar um Arduino UNO para efetuar o acionamento na sequencia e rapidez que desejamos.
Eletrônica digital e motores de passo Para motores BIPOLARES em modo FULL STEP: Passo/Bobina A + A - B + B - 1 + - - - 2 - + - - 3 - - + - 4 - - - + 5 + - - - 6 - + - - 7 - - + - 8 - - - + - No modo FULL STEP as bobinas são ativadas e tem suas polarizações invertidas sequencialmente.
Conhecendo o motor... Com o número de modelo do motor, procuramos pela sua respectiva folha de dados. Encontramos uma série próxima. Nela pudemos utilizar uma tabela de comprimentos para encontrar o motor mais próximo. Como o motor possui 30mm de comprimento, a série mais próxima é a 17PM K2.
Conhecendo o motor... Precisamos obter mais informações de nosso motor para poder caracterizá-lo. Uma medida que pode ajudar e é importante é a resistência das bobinas e o número de fios. - Nosso motor possui 4 fios. - Medindo o resistência do enrolamento encontramos 2,7 ohms aproximadamente. Dos dois motores da série 17PM K2, um deles apresenta uma resistência similar, O 17PM K249U. Este pode ser o substituto mais atual do nosso motor.
MAS ATENÇÃO!!! NOSSA INVESTIGAÇÃO NOS LEVOU A UM MOTOR PARECIDO COM NOSSO MOTOR, MAS NÃO SIGNIFICA QUE SEJA O MESMO MOTOR. ISSO SERVIRÁ APENAS COMO NOSSO PONTO DE PARTIDA, ONDE NOS ORIENTAREMOS, MAS NUNCA JULGAREMOS QUE ESTAS INFORMAÇÕES SÃO REALMENTE RELATIVAS A NOSSO MOTOR. O MAIS ADEQUADO SEMPRE É TER A FOLHA DE DADOS QUE REALMENTE CORRESPONDA AO COMPONENTE.
Datasheet do motor... Utilizando a folha de dados de nosso motor, encontramos as seguintes informações: - Número de passos por revolução: 200 (1,8 graus por passo) - Corrente de operação: possivelmente 800mA - Tensão de alimentação: possivelmente até 24V - Configuração das bobinas: bipolar (4 fios) Estas informações servirão apenas para uma orientação preliminar.
Escolhendo o driver para controle. Não podemos utilizar o Arduino para controlar diretamente as bobinas do motor. Para isso será necessário utilizar um circuito intermediário capaz de fornecer as tensões e correntes adequadas. No caso, um circuito chamado de driver. Sua função será ajustar os sinais de controle enviados pelo Arduino para os níveis adequados.
Escolhendo o driver para controle. Para nosso tipo de motor usaremos o L298N, que possui 2 pontes H internamente onde ligaremos cada uma das bobinas e ele será responsável pela polarização correta e o fornecimento de corrente. O L298N pode suprir 2 ampères por canal. Nossa expectativa é que o motor tenha um consumo por volta de 800mA. Como utilizaremos uma fonte ajustável de tensão para alimentar o motor e monitoraremos a corrente drenada da fonte, poderemos realizar a montagem com segurança. Faremos isso aumentando a tensão de alimentação e monitorando a corrente até que o motor apresente o torque adequado.
Escolhendo o driver para controle. Descrição dos pinos. Pinos Função Motor A Saída para Motor A +12V Alimentação do driver L298 GND Comum +5V Saída de 5V (opcional) ENA In_1 In_2 In_3 In_4 ENB Motor B Habilita a saída de Motor A 1ª entrada de controle de polaridade (A) 2ª entrada de controle de polaridade (A) 3ª entrada de controle de polaridade (B) 4ª entrada de controle de polaridade (B) Habilita a saída de Motor B Saída para Motor B
Escolhendo o driver para controle. In _1 Sequencia de ativação. In _2 In _3 In _4 Motor A+ Motor A- Motor B+ Motor B- 1 0 0 0 + - - - 0 1 0 0 - + - - 0 0 1 0 - - + - 0 0 0 1 - - - +
Montagem do circuito Conexões ARDUINO, REGULADOR E MOTOR FIO Pino 2 - Arduino AZUL In_1 Pino 3 - Arduino AZUL In_2 Pino 4 - Arduino LARANJA In_3 Pino 5 - Arduino LARANJA In_4 GND - Arduino PRETO GND Saída do Regulador AMARELO +12V GND do Regulador PRETO GND Módulo L298 A+ VERMELHO Motor A A- PRETO Motor A B+ VERMELHO Motor B B- PRETO Motor B
Código Fonte do Arduino Declarações Globais: Começamos definindo constantes que representarão os pinos D2, D3, D4, D4 e D5 do Arduino. Estes pinos serão os responsáveis pela transmissão da sequencia de acionamento para o driver. Criamos também uma variável chamada velocidade, que podemos utilizar para alterar a velocidade motor. Criamos como uma variável para poder explorar, caso desejássemos, a velocidade do motor utilizando o próprio código.
Código Fonte do Arduino Setup Ajustando o Arduino Na função void setup(), ajustamos a função dos pinos de comando como saídas digitais.
Código Fonte do Arduino Loop Executando a sequencia de ativação Será na função void loop() onde executaremos o acionamento sequencial das portas de comando, que transmitirão esta sequencia para o driver L298N que consequentemente ativará as bobinas. O código simplesmente ativa os pinos como mostrado na tabela para cada um dos passos. Vamos ver em detalhes.
Código Fonte do Arduino Detalhe do loop Passo 1 Detalhe do loop Passo 2
Código Fonte do Arduino Detalhe do loop Passo 3 Detalhe do loop Passo 4
Entendendo o programa
Entendendo o programa
Entendendo o programa
Próximo tutorial Montando um super servo com motor de passo e arduino Em www.fernandok.com Download arquivo PDF dos diagramas Download arquivo INO do código fonte