sexta-feira, 12 de fevereiro de 2016

Controlo de motores de passo com Snap4Arduino

Ao tempo que eu queria experimentar motores de passo (motores passo a passo ou step motor)! Numa das minhas deambulações pelo aliexpress, dei com este lote de dois motores de passo e respetivo controlador a 3,07€ (agora está por metade do preço) e não resisti. Vieram cá para casa dois motores 28BYJ - 48 (tensão de alimentação: 5V) e duas placas com o driver ULN2003 preparadas para ligar ao Arduino.



O motor de passo é controlado através de um sinal digital e pode ser uma boa escolha sempre que se pretender movimentos precisos. O ponto forte de um motor de passo não é a sua força(torque) nem a sua capacidade de desenvolver grandes velocidades, mas a possibilidade de controlar movimentos de forma precisa.

Encontrei um tabela comparativa entre os motores dc, motores de passo e servo motores num artigo muito interessante de Filipe Brites e Vinicius Santos:


Há vários tipos de motores de passo: os bipolares (4 fios), os unipolares (5 fios), os unipolares / bipolares (série) (6 fios) e os unipolares / bipolares (série/paralelo) (7 fios). Como aquele com que trabalhei foi um unipolar, será sobre esse que incidirá este estudo.

Um motor unipolar tem dois enrolamentos por fase. Os extremos das bobinas correspondem aos quatro fios de controlo; o 5º fio é ligado geralmente à terra (com o controlador que usei, não tive de me preocupar com essa ligação).

O controlo do motor é feito através de combinações digitais de 4 bits. O motor pode operar em passo completo ou em meio passo. A exploração de cada uma das formas de operação encontra-se feita na apresentação que se segue.

Quanto à programação, existem já uma série de livrarias e programas em C para trabalhar com o Arduino, muitas delas disponíveis no próprio software do Arduino (no menu File --> Example). Mas como o intuito deste blog é explorar linguagens gráficas...a minha primeira opção foi experimentar o S4A. Tal como previ, a velocidade de comunicação entre o S4A e o Arduino, não permitia o movimento do motor. Foi então que me deparei com o Snap4Arduino e fui à aventura...com uma atualização dos estados dos atuadores e dos sensores feita a cada 15 ms (contra os 75 ms do S4A), foi possível explorar o controlo do motor de passo com uma linguagem gráfica (comprometendo, claro, a velocidade do motor, que é muito baixa usando este tipo de plataformas).

A adaptação ao Snap4Arduino foi perfeitamente pacífica. O único contratempo foi não conseguir ligar um dos interruptores à entrada 1, não percebi porque motivo - o Snap4Arduino desconectava repetidamente a placa. Acabei por ligar os interruptores às entradas 2 e 3 e não tive nenhum problema.

Deixo então a minha proposta de trabalho para controlo de motores de passo recorrendo ao Snap4Arduino...


...o circuito esquemático do último exercício proposto...




...e um pequeno vídeo com o "circuito de controlo de estores" em funcionamento:


Sem comentários:

Enviar um comentário