fbpixel
Etiquetas: , , , ,

Uno de los principales objetivos de la robótica es que el robot se mueva. Por un rotación continua en cuanto a las ruedas de un robot se puede utilizar un motor de corriente continua. En este tutorial, prorgamamos un Arduino para que pueda manejar la velocidad y la dirección de rotación de un motor cc.

Prerrequisitos: Programa con Arduino 

Material

  • Ordenador
  • Arduino UNO
  • Cable USB
  • SN754410
  • Breadboard
  • Motor CC
  • jumper cables

Motor CC

Los motores de corriente continua a menudo se usan con una caja de engranajes para aumentar el torque mientras se mantienen las pequeñas dimensiones. El motor DC es bastante simple de usar. Para que funcione, lo único que hay que hacer es aplicarle voltaje. La señal y el nivel de voltaje determinarán la velocidad y la dirección de rotación.

dcmotor-robotbase-ttgm Controla un motor CC con Arduino

Para modular el señal de voltaje applicada al motor se puede usar un puente de transistores o H-bridge.

H-bridge

El H-bridge es un semiconductor que puede distribuar el voltaje según las señales en sus entradas.Se puede representar como cuatro interruptores que redireccionan la corriente.

h-bridge-sn754410 Controla un motor CC con Arduino
pont-h Controla un motor CC con Arduino

El componente usada en este tutorial es le semiconductor SN754410NE. Tiene dos salidas que le permiten conducir dos motores. .

sn754410-connections-500x500 Controla un motor CC con Arduino

Desripción de los pines.:

  • GND están conectados entre sí y al proyecto.
  • + 5V recibe la energía para el circuito lógico, generalmente connectado a la salida 5V de Arduino
  • M1 Enable y M2 Enable se utilizan para activar los puentes. Recibieron un voltaje ALTO(HIGH) / BAJO(LOW) del Arduino.
  • M1 / M2 Forward, M1 / ​​M2 Reverse recibe las señales PWM y corresponde a las direcciones del motor.
  • Pin +Motor Power IN recibe la alimentación (5,6, 7V, etc.)
  • Pines de motor 1 y el motor 2 están conectados a los cables dellos motores.

al seleccionar un componente, siempre preste atención a los límites de voltaje y corriente de operación

N.B.: Hay tarjetas disponibles para facilitar la conexión, como el módulo L298N.

Diagrama de conexión

Arduino puede ser alimentada por la computadora.

dcmotor-sketch-bb-1 Controla un motor CC con Arduino

Programación

Código básico

Para controlar el motor, el H-bridge debe estar activado y una señal PWM debe ser enviada a los pines Forward o Reverse según la dirección de rotación.

// Constants
const int enableBridge1 = 2;
const int MotorForward1 = 3;
const int MotorReverse1 = 5;

// Variables
int Power = 80; //Motor velocity between 0 and 255

void setup(){
  pinMode(MotorForward1,OUTPUT);
  pinMode(MotorReverse1,OUTPUT);
  pinMode(enableBridge1,OUTPUT);
}

void loop(){
  digitalWrite(enableBridge1,HIGH); // Active pont en H

  // Tourne dans le sens direct pendant 2 secondes
  
  analogWrite(MotorReverse1,0);
  analogWrite(MotorForward1,Power);
  delay(2000);
  
  // Tourne dans le sens indirect pendant 3 secondes
  analogWrite(MotorForward1,0);
  analogWrite(MotorReverse1,Power);
  delay(3000);
  
  //Arrête le moteur pendant 1 seconde
  analogWrite(MotorForward1,0);
  analogWrite(MotorReverse1,0);
  digitalWrite(enableBridge1,LOW); 
  delay(1000);
}

Funciones

Cuando una systema tiene varios dispositivos similares, es una buena práctica crear sub-funciones para aclarar el código principal.

// Constants
const int enableBridge = 2;
const int MotorForward = 3;
const int MotorReverse = 5;

// Variables
int Power = 80; //Vitesse du moteur entre 0 et 255

void setup(){
  dcBegin();
}

void loop(){
  dcForward(Power);
  delay(2000);
  
  dcReverse(Power);
  delay(3000);
  
  dcStop();
  delay(1000);
}

void dcBegin(){
  // Initialise les pines utilisées pour le moteur
  pinMode(MotorForward,OUTPUT);
  pinMode(MotorReverse,OUTPUT);
  pinMode(enableBridge,OUTPUT);
  }

void dcForward(int P){
  digitalWrite(enableBridge,HIGH); // Active pont en H
  // Tourne dans le sens Forward à la vitesse spécifiée par P
  analogWrite(MotorReverse,0);
  analogWrite(MotorForward,P);
}

void dcReverse(int P){
  digitalWrite(enableBridge,HIGH); // Active pont en H
  // Tourne dans le sens Reverse à la vitesse spécifiée par P
  analogWrite(MotorForward,0);
  analogWrite(MotorReverse,P);
}

void dcStop(){
  // Arrête le moteur et désactive le pont en H
  analogWrite(MotorForward,0);
  analogWrite(MotorReverse,0);
  digitalWrite(enableBridge,LOW); 
}

Puede contralar cualquier motor cc con este código. Modifícalo para obtener la función deseada

Fuentes

Encuentre otros tutoriales y ejemplos en el generador de código automático
Arquitecto de Código