Control de Motores DC Con ARDUINO PDF
Control de Motores DC Con ARDUINO PDF
Control de Motores DC Con ARDUINO PDF
con ARDUINO
/*
*/
int IN3 = 5;
int IN4 = 4;
void setup()
{
pinMode (IN4, OUTPUT); // Input4 conectada al pin 4
pinMode (IN3, OUTPUT); // Input3 conectada al pin 5
}
void loop()
{
// Motor gira en un sentido
digitalWrite (IN4, HIGH);
digitalWrite (IN3, LOW);
delay(4000);
// Motor no gira
digitalWrite (IN4, LOW);
delay(500);
// Motor gira en sentido inverso
digitalWrite (IN3, HIGH);
delay(4000);
// Motor no gira
digitalWrite (IN3, LOW);
delay(5000);
}
Código en Arduino
El programa controla la velocidad de un motor DC aplicando PWM al pin ENB
del módulo L298N.
int IN3 = 5; // Input3 conectada al pin 5
int IN4 = 4; // Input4 conectada al pin 4
int ENB = 3; // ENB conectada al pin 3 de Arduino
void setup()
{
pinMode (ENB, OUTPUT);
pinMode (IN3, OUTPUT);
pinMode (IN4, OUTPUT);
}
void loop()
{
//Preparamos la salida para que el motor gire en un sentido
digitalWrite (IN3, HIGH);
digitalWrite (IN4, LOW);
// Aplicamos PWM al pin ENB, haciendo girar el motor, cada 2 seg aumenta la velocidad
analogWrite(ENB,55);
delay(2000);
analogWrite(ENB,105);
delay(2000);
analogWrite(ENB,255);
delay(2000);
// Apagamos el motor y esperamos 5 seg
analogWrite(ENB,0);
delay(5000);
}
Control de un motor paso a paso bipolar
Los motores paso a paso pueden ser bipolares o unipolares. En este ejemplo
trabajamos con un motor paso a paso bipolar, sin embargo este driver es capaz
de controlar un motor paso a paso unipolar si se conecta en configuración
bipolar, obviando los cables del tab central de las bobinas del motor. El máximo
consumo permitido es de 2 amperios.
Esquema de conexión
/*
Stepper Motor Control - one revolution
Este programa impulsa un motor paso a paso unipolar o bipolar.
El motor está conectado a los pines digitales 8 - 11 de la Arduino.
El motor debe girar una vuelta en una dirección, a continuación,
una revolución en la otra dirección.
*/
#include <Stepper.h>
const int stepsPerRevolution = 48; // cambie este valor por el numero de pasos de su motor
void setup() {
// establece la velocidad en 60rpm
myStepper.setSpeed(60);
// inicializa el puerto serial
Serial.begin(9600);
}
void loop() {
// gira una vuelta en una direccion
Serial.println("clockwise");
myStepper.step(stepsPerRevolution);
delay(500);
void Forward()
{
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
Serial.print("Motor 1 Forward");
Serial.println();
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
Serial.println("Motor 2 Forward");
Serial.println();
}
void Reverse()
{
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
Serial.print("Motor 2 Reverse");
Serial.println();
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
Serial.println("Motor 2 Reverse");
Serial.println();
}
void Stop()
{
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
Serial.print("Motor 1 Stop");
Serial.println();
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
Serial.println("Motor 2 Stop");
Serial.println();
}