Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Tutorial de controle de motor sem escova do Arduino | ESC | BLDC


Neste tutorial vamos aprender como controlar um motor brushless usando Arduino e ESC. Caso queira mais detalhes sobre o funcionamento dos motores BLDC, consulte o outro artigo ou assista ao vídeo a seguir, que contém explicações sobre o princípio de funcionamento de um motor sem escovas e como controlá-lo usando Arduino e ESC.

Visão geral


Para este exemplo, tenho um motor BLDC outrunner com as seguintes especificações:tem uma classificação KV de 1000, pode ser alimentado com bateria LiPo 2S, 3S ou 4S e requer 30A ESC. A classificação KV em um motor sem escova define a RPM do motor por volt sem carga.

Neste caso, os 1000KV significam que, por exemplo, se alimentarmos o motor com bateria 2S LiPo que tem uma tensão de 7,4 volts, o motor pode atingir RPM máxima de 7,4 vezes 1000, ou seja, 7400 RPM.

Os motores brushless consomem muita energia e o método mais comum para alimentá-los é usando baterias LiPo. O número “S” de uma bateria LiPo indica quantas células a bateria possui e cada célula possui uma tensão de 3,7V.

Para este exemplo, usarei a bateria 3S LiPo que tem 3 células e é 11,1V. Então, posso esperar que meu motor atinja o RPM máximo de 11100.

Por fim, aqui está um ESC de 30A que usarei para este exemplo e combinará com os requisitos do motor. De um lado o ESC possui três fios que controlam as três fases do motor e do outro possui dois fios, VCC e GND, para alimentação.

Há também outro conjunto de três fios saindo do ESC e essa é a linha de sinal, +5V e terra. Esse recurso do ESC é chamado de Circuito Eliminador de Bateria e, como o nome sugere, elimina a necessidade de uma bateria separada para um microcontrolador. Com isso, o ESC fornece 5V regulados que podem ser usados ​​para alimentar nosso Arduino.

Podemos notar aqui que esta conexão é realmente a mesma que vemos nos servo motores.

Portanto, controlar um motor sem escova usando ESC e Arduino é tão simples quanto controlar um servo usando o Arduino. Os ESCs usam o mesmo tipo de sinal de controle que o servo e esse é o sinal PWM padrão de 50Hz.

Isso é muito conveniente, porque, por exemplo, ao construir um avião RC, geralmente precisamos tanto de servos quanto de motores brushless e, desta forma, podemos controlá-los facilmente com o mesmo tipo de controlador.

Então, usando o Arduino só temos que gerar o sinal PWM de 50Hz e dependendo da largura dos pulsos ou da duração do estado alto que deve variar de 1 milissegundo a 2 milissegundos, o ESC acionará o motor do mínimo ao máximo.

Controle de motor sem escova do Arduino – diagrama de circuito


Aqui está o diagrama de circuito para este exemplo. Além do ESC usaremos apenas um potenciômetro simples para controlar a velocidade do motor.

Você pode obter os componentes necessários para este tutorial do Arduino nos links abaixo:
  • Motor sem escova ………………………
  • ESC 30A ……………………………………….
  • Bateria Li-Po ……………….…..……
  • Placa Arduino ……………………………
  • Potenciômetro …………………………….
  • Breadboard e jump wires …

Código Arduino para controle de motor BLDC


O código do Arduino é realmente simples com apenas algumas linhas de código.
/*
        Arduino Brushless Motor Control
     by Dejan, https://howtomechatronics.com
*/

#include <Servo.h>

Servo ESC;     // create servo object to control the ESC

int potValue;  // value from the analog pin

void setup() {
  // Attach the ESC on pin 9
  ESC.attach(9,1000,2000); // (pin, min pulse width, max pulse width in microseconds) 
}

void loop() {
  potValue = analogRead(A0);   // reads the value of the potentiometer (value between 0 and 1023)
  potValue = map(potValue, 0, 1023, 0, 180);   // scale it to use it with the servo library (value between 0 and 180)
  ESC.write(potValue);    // Send the signal to the ESC
}Code language: Arduino (arduino)

Descrição: Então, precisamos definir a biblioteca Servo, pois com a biblioteca servo podemos gerar facilmente o sinal PWM de 50Hz, caso contrário os sinais PWM que o Arduino gera estão em frequências diferentes. Em seguida, precisamos criar um objeto servo para o controle ESC e definir uma variável para armazenar a entrada analógica do potenciômetro. Na seção de configuração, usando a função attach(), definimos para qual pino do Arduino é o sinal de controle do ESC conectado e também definimos a largura mínima e máxima dos pulsos do sinal PWM em microssegundos.

Na seção de loop, primeiro lemos o potenciômetro, mapeamos seu valor de 0 a 1023 para o valor de 0 a 180. Em seguida, usando a função write(), enviamos o sinal para o ESC ou geramos o sinal PWM de 50Hz. Os valores de 0 a 180 correspondem aos valores de 1.000 a 2.000 microssegundos definidos na seção de configuração.

Então, se carregarmos este código para o nosso Arduino e, em seguida, ligarmos tudo usando a bateria, podemos controlar a velocidade do motor sem escova de zero ao máximo usando o potenciômetro.

No entanto, há algumas coisas que devemos observar aqui. Ao energizar inicialmente o motor, o valor do sinal deve ser igual ou inferior ao valor mínimo de 1 milissegundo. Isso é chamado de armamento do ESC, e o motor emite um bipe de confirmação para que saibamos que está armado corretamente. Caso tenhamos um valor maior ao ligar, o que significa que temos um acelerador, o ESC não dará partida no motor até reduzirmos o valor mínimo correto. Isso é muito conveniente em termos de segurança, porque o motor não liga caso tenhamos um acelerador ao ligar.

Calibração do ESC


Por fim, vamos explicar como funciona a calibração do ESC. Cada ESC tem seus próprios pontos altos e baixos, e eles podem variar um pouco. Por exemplo, o ponto baixo pode ser 1,2 milissegundos e o ponto alto pode ser 1,9 milissegundos. Nesse caso, nosso acelerador não fará nada nos primeiros 20% até atingir esse valor de ponto baixo de 1,2 milissegundos.

Para resolver este problema, podemos calibrar o ESC ou definir os pontos alto e baixo como quisermos. Para isso, antes de alimentar o ESC, primeiro precisamos acelerar nosso potenciômetro ao máximo ou um valor pelo menos maior que o ponto médio atual. Então podemos ligar o ESC, e ouviremos alguns bipes do motor que realmente confirmam que definimos o novo ponto alto.

Então, após 2 segundos, devemos mover nosso potenciômetro para a posição onde determinamos o novo ponto baixo. Ouviremos novamente os bipes de confirmação e com isso finalizamos a calibração do ESC. Agora nosso acelerador responderá imediatamente e podemos controlar o motor dentro desses dois novos pontos.

Isso é praticamente tudo para este tutorial. Caso você queira aprender a fazer sem fio este controle de motor sem escova do Arduino, você pode conferir meu vídeo anterior onde eu construo um transmissor RC baseado em Arduino e expliquei como controlar motores BLDC usando-o.

Espero que tenham gostado deste tutorial e aprendido algo novo. Sinta-se à vontade para fazer qualquer pergunta na seção de comentários abaixo e não se esqueça de verificar minha coleção de projetos do Arduino.

Processo de manufatura

  1. Tutorial de bloqueio RFID do Arduino
  2. Aceitar moeda de controle com Arduino
  3. Arduino Control Center
  4. Arduino com Bluetooth para controlar um LED!
  5. Robô seguidor de linha
  6. Controle do umidificador Arduino
  7. Plataforma de treinamento Arduino
  8. Arduino Tutorial 01:Começando
  9. BLDC Motores e Automação
  10. Uma introdução ao motor BLDC