- Materiais requisitados
- Compreendendo os motores BLDC
- Por que Drones e outros Multi-copters usam motores BLDC?
- Por que precisamos de um ESC e qual é sua função?
- Alguns termos comuns com BLDC e ESC's:
- Diagrama do circuito de controle do motor Arduino BLDC
- Programa para controle de velocidade BLDC usando Arduino
- Controle de motor Arduino BLDC
Construir coisas e fazer com que funcionem, do jeito que queremos, sempre foi muito divertido. Embora isso sendo acordado, construir coisas que possam voar desafiava um pouco mais a ansiedade entre os amadores e os consertadores de hardware. Sim! Estou falando de planadores, helicópteros, aviões e principalmente multicópteros. Hoje é muito fácil construir um por conta própria devido ao suporte da comunidade disponível online. Uma coisa comum com todas as coisas que voam é que eles usam um motor BLDC, então o que é esse motor BLDC? Por que precisamos para voar as coisas? O que é tão especial sobre isso? Como comprar o motor certo e fazer a interface com o seu controlador? O que é um ESC e por que o usamos? Se você tiver perguntas como essas, este tutorial é a sua solução completa.
Basicamente, neste tutorial, controlaremos o motor sem escova com o Arduino. Aqui, o motor outrunner A2212 / 13T Sensorless BLDC é usado com um Controlador Eletrônico de Velocidade (ESC) 20A. Este motor é comumente usado para construir drones.
Materiais requisitados
- Motor A2212 / 13T BLDC
- ESC (20A)
- Fonte de alimentação (12V 20A)
- Arduino
- Potenciômetro
Compreendendo os motores BLDC
BLDC Motor significa motor Brush Less DC, é comumente usado em ventiladores de teto e veículos elétricos devido ao seu bom funcionamento. O uso de motores BLDC em veículos elétricos é explicado em detalhes anteriormente. Ao contrário de outros motores, os motores BLDC têm três fios saindo deles e cada fio forma sua própria fase, dando-nos, assim, um motor trifásico. Espere o que!!??
Sim, embora os motores BLDC sejam considerados motores CC, eles funcionam com a ajuda de ondas pulsadas. O controlador eletrônico de velocidade (ESC) converte a tensão DC da bateria em pulsos e a fornece aos 3 fios do motor. A qualquer momento, apenas duas fases do motor serão energizadas, de forma que a corrente entre por uma fase e saia pela outra. Durante este processo, a bobina dentro do motor é energizada e, portanto, os ímãs no rotor se alinham com a bobina energizada. Em seguida, os próximos dois fios são energizados pelo ESC, este processo continua para fazer o motor girar. A velocidade do motor depende de quão rápido a bobina é energizada e a direção do motor depende da ordem em que as bobinas são energizadas. Aprenderemos mais sobre ESC posteriormente neste artigo.
Existem muitos tipos de motores BLDC disponíveis, vamos dar uma olhada nas classificações mais comuns.
Motor BLDC In-runner e Out-Runner: Os motores BLDC In-runner funcionam como qualquer outro motor. Ou seja, o eixo dentro do motor gira enquanto a carcaça permanece fixa. Enquanto os motores BLDC out runner são exatamente o oposto, a carcaça externa do motor gira junto com o eixo enquanto a bobina interna permanece fixa. Os motores out runner são muito vantajosos nas bicicletas elétricas, já que a própria carcaça externa (aquela que gira) é transformada em um aro para os pneus e, portanto, evita-se um mecanismo de acoplamento. Além disso, os motores out runner tendem a fornecer mais torque do que nos tipos de runner, portanto, torna-se a escolha ideal em EV e Drones. O que estamos usando aqui também é do tipo out runner.
Nota: Há outro tipo de motor chamado de motores BLDC sem núcleo, que também são usados para Drones de bolso, eles têm um princípio de funcionamento diferente, mas por enquanto vamos pular por causa deste tutorial.
Motor BLDC Sensor e Sensorless: Para um motor BLDC girar sem qualquer solavanco, é necessário um feedback. Ou seja, o ESC tem que saber a posição e o pólo dos ímãs no rotor para energizar o estator de acordo. Essas informações podem ser adquiridas de duas maneiras; um é colocando o sensor Hall dentro do motor. O sensor Hall detectará o ímã e enviará a informação ao ESC. Este tipo de motor é chamado de motor Sensord BLDC e é usado em veículos elétricos. O segundo método é usando o EMF traseiro gerado pelas bobinas quando os ímãs os cruzam, isso não requer hardware ou fios adicionais - o próprio fio de fase é usado como feedback para verificar o EMF traseiro. Este método é usado em nosso motor e é comum para drones e outros projetos de vôo.
Por que Drones e outros Multi-copters usam motores BLDC?
Existem muitos tipos de drones legais por aí, de helicópteros Quad a helicópteros e planadores - tudo tem um hardware em comum. Esses são os motores BLDC, mas por quê? Por que eles usam um motor BLDC que é um pouco caro em comparação com os motores DC?
Existem alguns motivos válidos para isso, um dos principais motivos é que o torque fornecido por esses motores são muito altos, o que é muito importante para ganhar / perder impulso rapidamente para decolar ou pousar em um drone. Além disso, esses motores estão disponíveis como corredores externos, o que novamente aumenta o impulso dos motores. Outra razão para selecionar o motor BLDC é sua operação sem vibração suave, isso é muito ideal para o nosso drone estável no ar.
A relação potência / peso de um motor BLDC é muito alta. Isso é muito importante porque os motores usados nos drones devem ser de alta potência (alta velocidade e alto torque), mas também devem ter menos peso. Um motor DC que pode fornecer o mesmo torque e velocidade de um motor BLDC será duas vezes mais pesado que o motor BLDC.
Por que precisamos de um ESC e qual é sua função?
Como sabemos, todo motor BLDC requer algum tipo de controlador para converter a tensão CC da bateria em pulsos para alimentar os fios de fase do motor. Este controlador é denominado ESC, que significa Electronic Speed Controller. A principal responsabilidade do controlador é energizar os fios de fase dos motores BLDC em uma ordem para que o motor gire. Isso é feito detectando o EMF traseiro de cada fio e energizando a bobina exatamente quando o ímã cruza a bobina. Portanto, há muito brilho de hardware dentro do ESC que está fora do escopo deste tutorial. Mas, para citar alguns , possui controlador de velocidade e circuito eliminador de bateria.
Controle de velocidade baseado em PWM: O ESC pode controlar a velocidade do motor BLDC lendo o sinal PWM fornecido no fio laranja. Ele funciona de forma muito semelhante aos servo motores, o sinal PWM fornecido deve ter um período de 20 ms e o ciclo de trabalho pode ser variado para variar a velocidade do motor BLDC. Visto que a mesma lógica também se aplica aos servo motores para controlar a posição, podemos usar a mesma biblioteca de servo em nosso programa Arduino. Aprenda a usar Servo com Arduino aqui.
Circuito eliminador de bateria (BEC): Quase todos os ESC vêm com um circuito eliminador de bateria. Como o nome sugere, este circuito elimina a necessidade de bateria separada para microcontrolador, neste caso não precisamos de uma fonte de alimentação separada para alimentar nosso Arduino; o próprio ESC fornecerá um + 5V regulado que pode ser usado para alimentar nosso Arduino. Existem muitos tipos de circuito que regula esta tensão, normalmente será a regulação linear nos ESCs baratos, mas você também pode encontrar alguns com circuitos de comutação.
Firmware: Cada ESC possui um programa de firmware escrito pelos fabricantes. Este firmware determina muito como seu ESC responde; alguns dos firmware populares são Traditional, Simon-K e BL-Heli. Este firmware também é programável pelo usuário, mas não entraremos em detalhes neste tutorial.
Alguns termos comuns com BLDC e ESC's:
Se você acabou de começar a trabalhar com motores BLDC, provavelmente já se deparou com termos como Frenagem, Partida suave, Direção do motor, Baixa tensão, Tempo de resposta e Avanço. Vamos dar uma olhada no que esses termos significam.
Frenagem: a frenagem é a capacidade do motor BLDC de parar de girar assim que o acelerador é removido. Esta habilidade é muito importante para multi-helicópteros, já que eles precisam mudar suas RPM com mais freqüência para manobrar no ar.
Partida suave: a partida suave é um recurso importante a ser considerado quando o motor BLDC está associado a uma engrenagem. Quando um motor está com a partida suave habilitada, ele não começará a girar muito rápido de repente, ele sempre aumentará gradualmente a velocidade, não importando a rapidez com que o acelerador foi acionado. Isso nos ajudará a reduzir o desgaste das engrenagens acopladas aos motores (se houver).
Direção do motor: A direção do motor nos motores BLDC normalmente não é alterada durante a operação. Mas, durante a montagem, o usuário pode precisar alterar a direção na qual o motor está girando. A maneira mais fácil de mudar a direção do motor é simplesmente trocando quaisquer dois fios do motor.
Parada de baixa tensão: uma vez calibrado, sempre precisaríamos que nossos motores BLDC funcionassem na mesma velocidade específica para um determinado valor de aceleração. Mas isso é difícil de conseguir porque os motores tendem a reduzir sua velocidade para o mesmo valor de aceleração à medida que a tensão da bateria diminui. Para evitar isso, normalmente programamos o ESC para parar de funcionar quando a tensão da bateria atingir abaixo do valor limite, esta função é chamada de parada de baixa tensão e é útil em drones.
Tempo de resposta: a capacidade do motor de alterar rapidamente sua velocidade com base na alteração do acelerador é chamada de tempo de resposta. Quanto menor for o tempo de resposta, melhor será o controle.
Avanço: Avanço é um problema ou mais parecido com um bug dos motores BLDC. Todos os motores BLDC têm um pouco de avanço. É quando as bobinas do estator são energizadas, o rotor é atraído em sua direção por causa do ímã permanente presente nelas. Depois de ser atraído, o rotor tende a se mover um pouco mais para a frente na mesma direção antes que a bobina seja desenergizada e a seguir energizada. Esse movimento é chamado de “Avanço” e criará problemas como tremulação, aquecimento, ruído, etc. Portanto, isso é algo que um bom ESC deve evitar por conta própria.
Ok, teoria suficiente agora vamos começar com o hardware conectando o motor ao Arduino.
Diagrama do circuito de controle do motor Arduino BLDC
Abaixo está o diagrama do circuito para controlar o motor sem escova com Arduino:
A conexão para fazer a interface do motor BLDC com o Arduino é bastante direta. O ESC precisa de uma fonte de alimentação de cerca de 12 V e 5 A no mínimo. Neste tutorial, usei meu RPS como fonte de alimentação, mas você também pode usar uma bateria Li-Po para alimentar o ESC. Os fios trifásicos do ESC devem ser conectados aos fios trifásicos dos motores, não há ordem para conectar esses fios, você pode conectá-los em qualquer ordem.
Aviso: Alguns ESC não terão conectores neles, nesse caso certifique-se de que sua conexão seja sólida e proteja os fios expostos com fita isolante. Uma vez que haverá alta corrente passando pelas fases, qualquer curto levaria a danos permanentes do ESC e do motor.
O BEC (circuito eliminador de bateria) no próprio ESC regulará um + 5V que pode ser usado para ligar a placa Arduino. Finalmente para definir a velocidade do motor BLDC também usamos um potenciômetro conectado ao pino A0 do Arduino
Programa para controle de velocidade BLDC usando Arduino
Temos que criar um sinal PWM com ciclo de serviço variável de 0% a 100% com uma frequência de 50Hz. O ciclo de trabalho deve ser controlado por meio de um potenciômetro para que possamos controlar a velocidade do motor. O código para fazer isso é semelhante ao controle de servo motores, pois eles também requerem um sinal PWM com frequência de 50 Hz; portanto, usamos a mesma biblioteca servo do Arduino. O código completo pode ser encontrado no final desta página, mais abaixo, eu explico o código em pequenos trechos. E se você for novo no Arduino ou PWM, primeiro use o PWM com o Arduino e controle o servo usando o Arduino.
O sinal PWM pode ser gerado apenas nos pinos que suportam PWM por hardware; esses pinos são normalmente mencionados com um símbolo ~. No Arduino UNO, o pino 9 pode gerar o sinal PWM, então conectamos o pino do sinal ESC (fio laranja) ao pino 9, também mencionamos o mesmo código inn usando a seguinte linha
ESC.attach (9);
Temos que gerar um sinal PWM de ciclo de trabalho variável de 0% a 100%. Para o ciclo de trabalho de 0%, o POT produzirá 0 V (0) e para o ciclo de trabalho de 100% o POT produzirá 5 V (1023). Aqui, o potenciômetro é conectado ao pino A0, então temos que ler a tensão analógica do POT usando a função de leitura analógica conforme mostrado abaixo
acelerador interno = analogRead (A0);
Então temos que converter o valor de 0 a 1023 para 0 a 180 porque o valor 0 gerará 0% PWM e o valor 180 gerará 100% do ciclo de trabalho. Qualquer valor acima de 180 não fará sentido. Portanto, mapeamos o valor para 0-180 usando a função de mapa conforme mostrado abaixo.
acelerador = mapa (acelerador, 0, 1023, 0, 180);
Finalmente, temos que enviar este valor para a função servo para que ela possa gerar o sinal PWM naquele pino. Uma vez que nomeamos o objeto servo como ESC, o código se parecerá com este abaixo, onde o acelerador variável contém o valor de 0-180 para controlar o ciclo de trabalho do sinal PWM
ESC.write (acelerador);
Controle de motor Arduino BLDC
Faça as conexões de acordo com o diagrama de circuito e carregue o código para o Arduino e ligue o ESC. Certifique-se de ter montado o motor BLDC em algo, pois o motor vai pular ao girar. Assim que a configuração for ligada, seu ESC emitirá um tom de boas-vindas e continuará a bipar até que o sinal do acelerador esteja dentro dos limites, simplesmente aumente o POT de 0V gradualmente e o tom de bipe irá parar, isso significa que agora estamos fornecendo PWM sinalize acima do valor limite inferior e conforme você aumenta ainda mais, seu motor começará a girar lentamente. Quanto mais tensão você fornecer, mais velocidade o motor irá pegar; finalmente, quando a tensão atingir acima do limite superior, o motor irá parar. Você pode então repetir o processo.
O funcionamento completo deste controlador Arduino BLDC também pode ser encontrado no link de vídeo abaixo. Se você enfrentou qualquer problema para fazer isso funcionar, sinta-se à vontade para usar a seção de comentários ou os fóruns para obter mais ajuda técnica.