Manual
do
Maker
.
com
Como controlar motor de passo com HBS860H? - Essa pode ser uma dúvida para quem está partindo para projetos mais robustos com motor de passo grande, como o Nema34. Nesse artigo veremos como fazer esse controle usando o Nema32 para 45kgf.cm.
Se precisa calcular torque, confira esse artigo dedicado. Se está procurando por algo mais simples, tem esse tutorial com easydriver. Claro, como já estamos à beira dos mil artigos, já escrevi sobre um mesmo tema de diferentes modos. Tem um artigo bem interessante usando EasyDriver e PCF8574, vale muito a pena conferir. Um outro artigo com código básico e boas explicações sobre os passos do motor pode ser encontrado no artigo "Controlando motor de passo com Arduino". Se quer controlar motor de passo com ESP32, eis. Para o driver A4988 também tem alguns artigos. Também com ULN2003, que são esses motores de passo mais básicos e baratos. Não tem desculpa para não fazer o seu funcionar, hum?
Se está procurando por projetos com motor de passo, tem essa mini CNC com drive de DVD, bastante elaborado. Fiz também uma impressora matricial de 1 cabeça usando visão computacional para converter o desenho, é um projeto interessante também. Fiz um relógio cuco, explicando também a história do relógio, é uma agradável leitura. Tem alguns outros, basta dar uma procurada na caixa de pesquisa no canto superior direito ou então através do google, adicionando a palavra "dobitaobyte".
É muito simples chegar a um resultado apenas se guiando por um tutorial, e normalmente assim é feito, pois a maioria das pessoas não estão interessadas em conceitos técnicos, ou presume-se que esses conceitos técnicos já são conhecidos pelo leitor. Desse modo o artigo fica muito mais sucinto, mas iniciantes perdem a oportunidade de entender mais profundamente sobre o tema. Sempre procuro detalhar em pelo menos um artigo, para que ele sirva de referência para outros artigos, por isso citei todas as leituras dos parágrafos anteriores.
No circuito de malha aberta temos:
MCU -> Driver -> Motor
O circuito de malha aberta trabalha "em linha"; a MCU interage com o driver (qualquer um dos supracitados) e do driver sai o controle do motor. O comportamento é presumido no código, pois em malha aberta não há "observação" do que está acontecendo. No modelo de malha aberta também podemos controlar o micro passo, avanço, recuo, porém não temos como garantir que não houve perda de passo. Se, por exemplo, ocorrer uma falha na conexão ou mesmo no motor e o movimento não acontecer, o controlador não tem como saber que houve uma falha.
No circuito de malha fechada temos um componente adicional; o encoder, que vai acoplado ao motor de passo e devolve o sinal para o driver, que deve ser um driver com suporte a encoder, para poder atuar sobre o motor utilizando essa informação. Assim sendo, se determinamos que o motor deve dar 431 passos, o driver garantirá que os 431 passos aconteçam. O driver mantém a memória de posição. Isso significa que se houver um esforço manual sobre o motor e ele for deslocado, o driver corrigirá sua posição para a posição que deveria estar quando parado.
No circuito de malha fechada temos um consumo menor, graças à inteligência do driver, que controla adequadamente o acionamento e alimentação no momento correto. Com isso o motor de passo trabalhará a uma temperatura menor e com menos dissipação.
O wiring pode variar conforme o motor de passo. Muitos modelos vem com um adesivo indicando os pares das bobinas e, quando integrados a um encoder, também consta no adesivo (ou em outro adesivo) o wiring do encoder. Se seu motor está sem essa informação, procure pelo vendedor ou fabricante para obter essas informações.
Esse motor que estou utilizando é ideal para aplicações de rotação entre 500 e 1200 RPM. Trata-se de um Nema34 para até 45kgf.cm, mas outras características devem ser observadas em relação aos esforços mecânicos aplicados ao motor. Uma relação das principais características:
Motor Nema 34
Eixo Diâmetro 14mm com Chaveta
Comprimento Total da carcaça motor: 99 mm
Corrente: 5 Amperes
Holding Torque: 4,5Nm (45Kg.cm)
Resistência: 0.3 ±10% Ω
Indutância: 3.9 ±20% mH
Inércia: 1.8 Kg.cm2
Máxima Temperatura: 80℃
Máxima carga radial: 450 gramas
Máxima carga axial: 920 gramas
Quantidade de Fios: 4
isolação: Classe B
Peso: 3,6Kg
Alimentação recomendada do driver: 30 a 80 VDC
Resolução do Encoder: 4000 PPR
Resolução do Driver motor de passo com HBS860H : Ajustável de 800 a 40.000 PPR
Outra informação importante é: Não bate o encoder ou o eixo, nem deixe o motor "em pé", apoiado sobre o encoder.
O encoder tem um cabo com conexão de saída DB9 fêmea com 6 pinos utilizados sendo EGND, VCC, EA-, EA+, EB-, EB+.
Do motor saem as duas bobinas, sendo 2 pares de fios.
Esse driver é bem elaborado, mas não é complexo. Vamos começar pela identificação dos configuradores.
Temos 8 switches do lado direito do driver HBS860H. Do switch 1 ao 4 temos pulso por revolução. O switch 5 é a direção do motor; o switch 6 liga ou desliga o encoder - mas nesse caso, adeus malha fechada, adeus precisão, adeus garantia de funcionamento adequado.
Essa parte é o controle tradicional, sendo os pulsos, direção e enable e é o lugar que conectaremos nosso controle, seja Arduino, ESP ou RPi. Usaremos o pulso e direção, mas não precisamos nos preocupar com o ENABLE nesse caso.
Todos os detalhes serão mostrados adiante, apenas entenda o que é cada conjunto de configuração nesse momento.
Se houver sobrecarga no sistema, o driver gera um alarme e acende um LED vermelho ao lado dos bornes. Na saída signal podemos pegar um sinal para atuar em um alarme externo. Essa saída serve de retorno para a MCU e também veremos em detalhes como utilizá-la.
Nessa seção é onde ligamos as bobinas A e B do motor. A parte curiosa aqui é onde está escrito AC. Ele funciona tanto com corrente alternada quanto com corrente contínua, porém corrente continua tem polaridade, certo? - Bem, coloquei o positivo no AC superior e o GND no AC inferior, mas presumo que tenha uma ponte de diodos internamente. Não vou brincar com a sorte.
Em VAC podemos usar uma tensão entre 20 e 80V. Se algum fornecedor tiver um variac e quiser enviar para fazer artigos, será um prazer. Entre em contato pelo email djames.suhanko @ gmail.com.
Em VDC podemos usar tensões entre 30 e 110V. Uma pela outra, quanto maior a tensão, maior a potência. Em contrapartida, a eficiência de dissipação deve cair, portanto é ideal dimensionar sua carga. Se pretende fazê-lo de forma empírica, comece pela menor tensão e vá subindo até que passe uns 10% do suficiente, considerando carga de pico.
O padrão é 400ppr. Como o motor é de 1.8o e uma volta equivale a 360o , temos 360/1.8 = 200ppr. 200 passos é a configuração do motor. O primeiro micro passo do driver é 400ppr, chamado Default na tabela gravada sobre a carcaça. Depois, a combinação dos switches de 1 a 4 definem a quantidade de micro passos por revolução. Os switches para baixo estão em ON, então supondo 1000ppr, devemos deixar os switches ON ON ON OFF. Fácil, seguindo a tabela.
Motor de passo não é ideal para altas velocidades, portanto é bom utilizar na velocidade que seja satisfatória para evitar perda de precisão. Por mais que o driver trabalhe na correção, há margem para falhas.
Feita a apresentação, podemos seguir para a próxima fase, já testando seu funcionamento. Porém isso ficará para outro artigo e esse será a referência de especificações e wiring. Já adianto: Não é o projeto de uma CNC, mas é uma automação industrial!
O vídeo ficará também para o próximo artigo, mas se não é inscrito, aproveite para se inscrever em nosso canal DobitaobyteBrasil no youtube. Aproveite para marcar o sininho, recebendo assim a notificação de novos vídeos!
Inscreva-se no nosso canal Manual do Maker no YouTube.
Também estamos no Instagram.
Autor do blog "Do bit Ao Byte / Manual do Maker".
Viciado em embarcados desde 2006.
LinuxUser 158.760, desde 1997.