Página inicial / Notícias / Notícias da indústria / Motor BLDC com Arduino: Guia de fiação, código e controle
Notícias da indústria
Nossa pegada abrange o globo.
Fornecemos produtos e serviços de qualidade aos clientes de todo o mundo.

Motor BLDC com Arduino: Guia de fiação, código e controle

Como um ESC permite que o Arduino controle um motor BLDC

Um Arduino não pode acionar as três fases de um motor BLDC diretamente - ele não tem a capacidade de corrente ou a lógica de comutação incorporada. Esse trabalho cabe ao ESC (Controlador Eletrônico de Velocidade), que fica entre o Arduino e o motor, convertendo um sinal PWM simples na comutação trifásica cronometrada que realmente gira o rotor.

Da perspectiva do Arduino, um ESC se parece exatamente com um servo RC padrão. Ele espera um pulso entre aproximadamente 1.000 e 2.000 microssegundos, repetido a cada 20 milissegundos, onde a largura do pulso é mapeada para a posição do acelerador. É por isso que o mesmo Biblioteca servo usado para servos de hobby funciona para controle ESC - o Arduino não está se comunicando com o motor, está se comunicando com o microcontrolador integrado do ESC, que lida com a comutação real.

Conectando um Arduino a um motor BLDC via ESC

Os três fios do motor de bitola pesada conectam-se do motor BLDC diretamente às saídas trifásicas do ESC - a ordem do conector não importa para a direção neste estágio, já que a troca de quaisquer dois fios apenas inverte a rotação. A energia do motor (normalmente uma bateria LiPo compatível com a tensão nominal do motor) é conectada aos cabos de entrada do ESC, não ao Arduino.

O lado do sinal é mais simples: um único fio PWM de um pino digital do Arduino até a entrada de sinal do ESC, além de um aterramento compartilhado entre o Arduino e o ESC. A maioria dos ESCs inclui um BEC (Circuito Eliminador de Bateria) nesse conector de sinal, que fornece 5 V regulados de volta ao Arduino - o que significa que uma fonte de alimentação separada para a placa geralmente não é necessária, desde que a saída BEC do ESC seja classificada para o consumo de corrente do Arduino.

Código Arduino para controle básico de velocidade

Com a fiação instalada, o código em si é curto. A biblioteca Servo trata o ESC como um servo motor e a velocidade é mapeada na mesma faixa de 0-180 que a biblioteca usa para ângulo:

  • Conecte o pino de sinal ESC usando ESC.attach(9, 1000, 2000) , definindo explicitamente o intervalo de largura de pulso
  • Leia um potenciômetro em um pino analógico para controle manual de velocidade
  • Mapeie a leitura analógica de 0-1023 até a faixa de 0-180 que o ESC espera
  • Escreva esse valor mapeado com ESC.write(velocidade) dentro do loop principal

Este padrão funciona porque o formato do sinal subjacente é idêntico ao de um servo de hobby, conforme documentado no Referência da biblioteca Arduino Servo , que explica o tempo de pulso e as restrições de pinos nas quais a biblioteca depende.

Armando e calibrando o ESC

A maioria dos ESCs não gira o motor imediatamente após a inicialização - eles esperam primeiro uma sequência de armamento, geralmente acionada mantendo o sinal do acelerador no mínimo por um ou dois segundos após a inicialização. Ignorar esta etapa é o motivo mais comum pelo qual um motor parece dar partida brevemente na inicialização e depois parar: o ESC está aguardando um sinal válido de aceleração baixa antes de aceitar comandos.

A calibração define a compreensão do ESC sobre a largura de pulso mínima e máxima para corresponder ao que o Arduino realmente envia. Ligue o ESC com o sinal do acelerador já no máximo, aguarde os bipes de confirmação, depois diminua para o mínimo e espere novamente - isso ensina ao ESC os pontos de extremidade exatos que seu código produz, em vez de confiar nos padrões de fábrica que podem não corresponder ao intervalo mapeado do seu potenciômetro.

BLDC com sensor e sem sensor: por que isso muda a configuração do Arduino

Tudo acima pressupõe um motor BLDC sem sensor emparelhado com um ESC pronto para uso – a configuração mais comum para amadores e a razão pela qual a maioria dos tutoriais é padrão para ele. O ESC detecta a posição do rotor a partir do back-EMF gerado na fase sem alimentação, o que funciona bem quando o motor está girando, mas significa que o motor precisa de uma breve rampa de inicialização em circuito aberto antes que o ESC possa travar no tempo do BEMF.

Um motor BLDC sensorizado adiciona três sensores de efeito Hall que informam diretamente a posição do rotor, mesmo em zero RPM. Isso elimina a rampa de inicialização e proporciona um controle mais suave de baixa velocidade, mas também significa que o ESC ou controlador deve ter entradas de sensor Hall – um ESC simples sem sensor não tem nenhuma fiação para eles. Se um projeto precisar de torque preciso em baixa velocidade ou partidas e paradas frequentes, adquirir um motor sensorizado e um controlador compatível com Hall desde o início evita refazer a configuração do controle posteriormente.

R5 Fast response Brushless DC Motor Controller

Do protótipo Arduino ao controle de motor de nível de produção

Um ESC baseado em PWM é a ferramenta certa para provar um conceito – é barato, bem documentado e não precisa de software de configuração. Mas também tem limites reais: nenhum feedback de corrente para o Arduino, lógica de proteção mínima e uma resolução de controle vinculada a uma janela de pulso de 1.000 a 2.000 microssegundos que não se adapta bem quando o controle de torque, a regulação de velocidade em circuito fechado ou o relatório de falhas se tornam requisitos.

Quando um projeto passa da prototipagem em direção a um produto em campo, o próximo passo usual é um controlador que se comunique por meio de um barramento digital em vez de uma única linha PWM. uma interface de depuração UART-TTL usada para configurar controladores de motor de produção desempenha aqui um papel semelhante ao monitor serial do Arduino - permite ler parâmetros e ajustar o comportamento diretamente, em vez de adivinhar apenas as larguras de pulso.

Para equipes que estão superando os ESCs de hobby, um ponto de entrada nos controladores de motor BLDC programáveis por barramento CAN da APT oferece o tipo de limitação de corrente configurável e diagnóstico que um ESC básico simplesmente não expõe. Aplicações que necessitam de respostas mais precisas – braços robóticos, mecanismos acionados, qualquer coisa com uma carga que muda rapidamente – são melhor atendidas por um controlador BLDC de resposta rápida desenvolvido para aplicações de circuito fechado em tempo real em vez de um ESC de hobby de circuito aberto.

Como as especificações do controlador e do motor precisam estar alinhadas quanto à tensão, corrente e compatibilidade do sensor Hall, vale a pena revisar orientação de emparelhamento do controlador e do motor para combinar a eletrônica do inversor com as especificações do motor antes de se comprometer com o hardware para uma execução de produção. Também vale a pena entender como as camadas de software estão remodelando o controle motor moderno , já que o ajuste no nível do firmware é cada vez mais o que separa um bom controlador de produção de um meramente adequado.



Interessado em cooperação ou tem dúvidas?
  • Enviar solicitação {$config.cms_name}