Se você está pensando em montar um aeromodelo ou quadcóptero com o Arduino, vamos ver neste artigo como utilizar o Motor Brushless Emax CF2822, um motor com ótimo torque e muito leve (apenas 39g), ideal para essas aplicações.
Esse tipo de motor não pode ser ligado diretamente à fonte de alimentação, ele precisa de um controlador, conhecido como ESC (Electronic Speed Control), Na imagem abaixo, temos o ESC 30A com BEC interno, que vamos usar para testar o motor brushless:
A função do ESC, como o próprio nome diz, é controlar eletronicamente a velocidade do motor, variando, no caso do motor sem escovas (brushless), a transição entre as diversas fases desse tipo de motor. O ESC também pode ter outras funções, como freio, variação lenta da velocidade do motor e função de localização de aeronaves perdidas, entre outras.
Esse ESC, além disso, também tem um componente (circuito ?) chamado BEC (Battery Eliminator Circuit), um dispositivo que converte a tensão de entrada do ESC (que vai de 5,6 à 16,8V) em 5 ou 6V para alimentar o receptor e os servos de um aeromodelo.
Para ter mais informações sobre motores brushless, ESC e BEC, recomendo a leitura deste artigo.
Conexões do ESC
Na imagem acima você viu que o ESC tem 8 fios. Estes fios seguem o seguinte esquema de ligação:
- Os 3 fios azuis são ligados ao motor (não se preocupe com a ordem de ligação)
- O fio preto e o fio vermelho (mais grossos), são para ligação à bateria (geralmente de lítio ou Ni-MH NiMH / NiCd)
- Dos 3 fios mais finos que estão juntos em um conector, o preto é ligado ao GND do Arduino, e o branco ao pino de saída do Arduino, que irá comandar o ESC. O fio vermelho é saída 5V e não será utilizado, pelo menos no nosso teste com o Arduino
Realizando as conexões acima e adicionando um potenciômetro de 10K que vai controlar a velocidade do motor, teremos o seguinte circuito:
Lembre-se de utilizar uma bateria que forneça a tensão e a corrente adequadas ao motor que você está utilizando.
Controlando o motor brushless com o Arduino
Vamos controlar a velocidade do motor brushless usando o potenciômetro ligado à porta analógica 5 do Arduino. Para controlar o ESC usamos PPM(Pulse Position Modulation), por meio da biblioteca Servo do Arduino.
O programa converte os valores lidos do potenciômetro, entre 0 e 1023, para um valor entre 0 e 179. Para isso utilizamos o comando map (linha 27 do programa). O valor 0 corresponde ao motor parado, e 179 à velocidade máxima.
//Programa: Controle de motor brushless EMAX CF2822 //Autor : Arduino e Cia #include <Servo.h> Servo ServoMotor; //Pino do potenciometro int pino_pot = A5; //Pino de controle do motor int pino_motor = 6; int valor; void setup() { Serial.begin(9600); ServoMotor.attach(pino_motor); Serial.println("Aguardando 5 segundos...."); delay(5000); } void loop() { //Le o valor do potenciometro valor = analogRead(pino_pot); //Converte o valor para uma faixa entre 0 e 179 valor = map(valor, 0, 1023, 0, 179); //Mostra o valor no serial monitor Serial.print("Potenciometro: "); Serial.println(valor); //Envia o valor para o motor ServoMotor.write(valor); }
Recomendo iniciar o teste do motor com o potenciômetro na posição “zero”, girando o potenciômetro totalmente para a esquerda, e depois aumentar a velocidade aos poucos. Uma outra recomendação é fixar o motor em alguma base, pois como comentei no início do post este é um motor bem forte e pode facilmente se deslocar durante os testes.
Gostou? Confira outros posts com motores aqui mesmo no Arduino e Cia!