Como ligar um motor brushless ao Arduino

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.

Motor brushless Emax CF2822

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:

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!

4.9/5 - (41 votos)

Related posts

Como montar e usar uma garra robótica com Arduino

by Arduino e Cia
4 anos ago

Controle de motor DC com o L293D Ponte H

by Arduino e Cia
11 anos ago

Como usar o Servo Motor Shield 16 canais Adafruit

by Arduino e Cia
9 anos ago
Sair da versão mobile