Controlando um motor de passo - Animoby Games · As bobinas internas de um motor de passo podem...

31
Por Fernando Koyanagi

Transcript of Controlando um motor de passo - Animoby Games · As bobinas internas de um motor de passo podem...

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).

BRANCO e VERMELHO

NÃO formam uma

bobina

(circuito aberto)

Branco e Amarelo

formam uma bobina

(resistência baixa)

BRANCO e VERDE

NÃO formam uma

bobina

(circuito aberto)

VERMELHO e VERDE

formam uma bobina

(resistência baixa)

Motor BIPOLAR

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.

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 Habilita a saída de Motor A

In_1 1ª entrada de controle de polaridade (A)

In_2 2ª entrada de controle de polaridade (A)

In_3 3ª entrada de controle de polaridade (B)

In_4 4ª entrada de controle de polaridade (B)

ENB Habilita a saída de Motor B

Motor B Saída para Motor B

Descrição dos pinos.

Escolhendo o driver para controle.

In

_1

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 - - - +

Sequencia de ativação.

Montagem do circuito

ARDUINO, REGULADOR E

MOTOR

FIO Módulo L298

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

A+ VERMELHO Motor A

A- PRETO Motor A

B+ VERMELHO Motor B

B- PRETO Motor B

Conexões

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