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

Biblioteca Arduino de Alto Desempenho para Controle de Motor DC

Componentes e Materiais

ComponenteQuantidade
Arduino UNO1
Transistor NPN de Uso Geral2
Transistor PNP de Uso Geral2
Resistor 1k ohm2
Diodo 1N4007 – Alta Tensão, Alta Corrente4

Aplicativos e Serviços Online

Sobre o Projeto

Apresento aqui uma biblioteca Arduino para controle de motor DC. A biblioteca possui tantas facilidades e flexibilidade que pode controlar qualquer motor DC da maneira requerida. A biblioteca foi projetada conforme requisitos de controle de movimento industrial. A biblioteca possui 16 funcionalidades diferentes para controlar o motor da maneira mais versátil. Aqui está a lista de recursos:

  1. Controla a direção de rotação do motor
  2. Controla a velocidade do motor de 0-100%
  3. Pode fornecer partida suave (soft start) ao motor em tempo especificado – a velocidade do motor aumenta de 0% ao nível desejado no tempo especificado
  4. Pode fornecer parada suave (smooth stop) ao motor em tempo especificado – a velocidade diminui da velocidade atual para 0% no tempo especificado
  5. Pode aplicar controle de jog (jog control) ao motor em qualquer direção – o motor dá um solavanco na direção especificada
  6. Pode aplicar freio DC (DC BRAKE) (parada imediata ou de emergência) ao motor

As breves descrições de todas as funções da biblioteca são dadas aqui. Alguns exemplos são fornecidos posteriormente explicando como o motor é controlado usando esta biblioteca. Há três vídeos demonstrando esses exemplos. Por fim, o circuito sugerido usa um circuito H-Bridge amplamente usado para controlar motores DC.

Para usar esta biblioteca no seu sketch Arduino, basta copiar a pasta DC_Motor para o diretório raiz da pasta de bibliotecas do Arduino, como C:\arduino-1.6.7\libraries.

Descrição das Funções da Biblioteca

  1. DC_Motor(int pin1, int pin2): esta função declara os pinos do Arduino que acionam o motor DC
  2. DC_Motor(int pin1, int pin2, int speed_flag): esta função declara os pinos de saída analógica do Arduino que acionam o motor DC
  3. start_motor(int dir): esta função inicia a rotação do motor na direção especificada. Se direção for 1 – motor gira para frente e vice-versa
  4. forward(): esta função inicia a rotação do motor na direção forward
  5. reverse(): esta função inicia a rotação do motor na direção reverse
  6. dc_break(): esta função para instantaneamente a rotação do motor*
  7. stop_motor(): esta função para a rotação do motor
  8. jogg_full_speed(int dir): esta função aplica um solavanco ao motor por 5 segundos em velocidade máxima na direção requerida
  9. *Nota: esta função só funcionará se o motor DC tiver arranjos internos para tal freio DC. Além disso, o circuito driver apropriado deve ser projetado com resistores de freio dinâmico (DBR) e cuidado total deve ser tomado para que o motor ou circuito não seja danificado.

Todas as funções acima fornecem controle simples ao motor DC. Elas não controlam a velocidade. As próximas 8 funções controlam velocidade e direção. Mas é necessário selecionar pinos de saída analógica do Arduino para usar estas funções. O motor DC deve ser inicializado com a 2ª função junto com a flag de velocidade definida como 1.

  1. set_speed(int speed): esta função define a velocidade do motor DC entre 0 a 100%
  2. forward_with_set_speed(): esta função inicia a rotação do motor DC para frente na velocidade definida
  3. reverse_with_set_speed(): esta função inicia a rotação do motor DC para trás na velocidade definida
  4. run_motor(int dir, int speed): esta função gira o motor DC em qualquer direção na velocidade definida
  5. jogg_set_speed(int dir, int speed): esta função aplica um solavanco ao motor em qualquer direção na velocidade definida
  6. motor_speed_zero()*: a função reduz a velocidade do motor a 0 – ou seja, para o motor
  7. soft_start(int dir, int speed, int time_in_sec): esta função aumenta a velocidade do motor de 0 ao nível desejado no tempo especificado em qualquer direção. O tempo deve ser selecionado em segundos
  8. smooth_stop(int time_in_sec): esta função reduz a velocidade do motor da velocidade atual de funcionamento para 0 no tempo especificado. O tempo deve ser selecionado em segundos
  9. *Nota: não se pode usar a função stop_motor() aqui porque ela dá saída digital enquanto esta função dá saída analógica mínima para tornar a velocidade do motor DC zero. Ao controlar motor DC com velocidade, não apenas pare o motor, mas torne sua velocidade zero.

Exemplos

1) Girar motor DC para frente e ré em velocidade máxima (sem controle de velocidade)

/* Este programa girará o motor DC para frente por 5 seg
   depois para por 2 seg e novamente gira o motor ré por
   5 seg, para por 2 seg continuamente
   criado por A M Bhatt (+91-9998476150), Gujarat, INDIA
   em 12/10/2016
*/
#include 

DC_Motor motor(8, 12);

void setup() {}

void loop() {
  motor.forward();
  delay(5000);
  motor.stop_motor();
  delay(2000);
  motor.reverse();
  delay(5000);
  motor.stop_motor();
  delay(2000);
}

2) Girar motor DC para frente e ré em velocidade definida (com controle de velocidade)

/* Este programa girará o motor DC para frente por 5 seg
   a 40% de velocidade, depois para por 2 seg e novamente gira o motor ré por
   5 seg a 80% de velocidade continuamente
   criado por A M Bhatt (+91-9998476150), Gujarat, INDIA
   em 12/10/2016
*/
#include 

DC_Motor motor2(9, 10, 1);

void setup() {}

void loop() {
  motor2.set_speed(40);
  motor2.forward_with_set_speed();
  delay(5000);
  motor2.motor_speed_zero();
  delay(2000);
  motor2.set_speed(80);
  motor2.reverse_with_set_speed();
  delay(5000);
  motor2.motor_speed_zero();
  delay(2000);
}

3) Aplicar jog ao motor em ambas direções com e sem controle de velocidade

/* Este programa aplica jog a dois motores DC diferentes
 * aplica jog ao 1º motor em velocidade máxima em ambas direções
 * e depois fornece jog ao 2º motor com 80% velocidade na direção ré
 * e 30% velocidade na direção forward
 * criado por Ashutosh M Bhatt (+91-9998476150), Gujarat (INDIA)
 * em 22/10/2016
*/
#include 

DC_Motor motor(8, 12);
DC_Motor motor2(9, 10, 1);

void setup() {}

void loop() {
  motor.jogg_full_speed(1);
  motor.jogg_full_speed(0);
  motor2.jogg_set_speed(0, 80);
  motor2.jogg_set_speed(1, 30);
}

4) Aplicar partida suave e parada suave ao motor

/* Este programa dará partida suave ao motor e aumentará sua velocidade
   de 0 a 90% em 10 seg na direção forward
   depois dá parada suave de 90% a 0 em 5 seg
   novamente partida suave de 0 a 50% em 6 seg na direção reverse
   e finalmente parada suave de 50% a 0 em 3 seg
   criado por A M Bhatt (+91-9998476150), Gujarat, INDIA
   em 12/10/2016
*/
#include 

DC_Motor motor2(9, 10, 1);

void setup() {}

void loop() {
  motor2.soft_start(1, 90, 10);
  delay(3000);
  motor2.smooth_stop(5);
  motor2.soft_start(0, 50, 6);
  delay(3000);
  motor2.smooth_stop(3);
}

Código

Biblioteca de Controle de Motor DC (C Header File)

Esta biblioteca controla velocidade e direção de todos os tipos de motores DC.

Sem preview (apenas download).

Esquemáticos

Arduino UNO e driver H-bridge usados para controlar Motor DC

Biblioteca Arduino de Alto Desempenho para Controle de Motor DC

Processo de manufatura

  1. Crie Efeitos de Áudio Controlados por Sensores com o Kit Satellite CCRMA
  2. Construa Sua Própria Máquina de Escrever Deveres de Casa (Plotter de Caneta) em Casa
  3. Robô de Detecção Humana Baseado em Arduino Uno: Integração de Sensores Passo a Passo
  4. Biblioteca Completa para Motor de Passo Bipolar com Arduino
  5. Veículo Remoto Controlado por Android com Raspberry Pi e Motor Shield
  6. Robô Desviador de Obstáculos com Servo: Construa com Arduino e HC-SR04
  7. Criar Robô Seguidor de Linha Autônomo com Arduino UNO
  8. Controlar Roomba Create 2 com Arduino e Android: Guia Passo a Passo
  9. Arduino e MPU6050: Controle Preciso de Servomotores SG90 e MG996R
  10. Kit de Robô de Navegação Interna Inteligente para Projetos Arduino