ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Controlar dos motores con arduino


Enviado por   •  12 de Marzo de 2015  •  Trabajos  •  1.921 Palabras (8 Páginas)  •  368 Visitas

Página 1 de 8

Controlar dos motores con arduino.

Del video anterior la rutina que se programo en el Arduino es muy simple, solo se mandan salidas altas o bajas dependiendo de como queremos que se comporte el motor.

La función del driver esta descrita en la tabla que publiqué anteriormente en la descripción del driver para manejar los motores.

En estas entradas también es muy útil inyectar una señal PWM en lugar de solo un 1 lógico para así controlar la velocidad del motor, la condición de motor bloqueado es para frenar el motor y mantenerlo sin movimiento, esto es mediante un campo magnético generado dentro del motor que evita que el rotor gire.

A continuación coloco el programa hecho para un arduino uno rev. 3, este programa solo controla la dirección de los motores, si se desea controlar la velocidad hay que cambiar las salidas lógicas por salidas PWM, la frecuencia que debe manejar el PWM debe ser alta por encima del rango de frecuencias audibles (mayor a 20KHz) para evitar que nuestros motores emitan sonidos molestos y al final del dia terminemos con dolor de cabeza (lo digo por experiencia propia XD)

int E1 = 0; //Habilita o desablita la primera mitad del driver

int E2 = 1; //Habilita o desablita la segunda mitad del driver

int m11 = 2; //m11 y m12 son los bits de control del motor uno (en la tabla PIN5 PIN7)

int m12 = 3;

int m21 = 4; //m21 y m22 son los bits de control del motor dos (en la tabla PIN10 PIN12)

int m22 = 5;

void setup() {

}

// the loop routine runs over and over again forever:

void loop() {

digitalWrite(E1, HIGH); //ACTIVAR DRIVER

digitalWrite(E2, HIGH);

digitalWrite(m11, LOW); //ADELANTE

digitalWrite(m12, HIGH);

digitalWrite(m21, LOW);

digitalWrite(m22, HIGH);

delay(1500);

digitalWrite(m11, LOW); //ALTO

digitalWrite(m12, LOW);

digitalWrite(m21, LOW);

digitalWrite(m22, LOW);

delay(500);

digitalWrite(m11, LOW); //IZQUIERDA 90°

digitalWrite(m12, HIGH);

digitalWrite(m21, HIGH);

digitalWrite(m22, LOW);

delay(500);

digitalWrite(m11, LOW); //ALTO

digitalWrite(m12, LOW);

digitalWrite(m21, LOW);

digitalWrite(m22, LOW);

delay(500);

digitalWrite(m11, LOW); //ADELANTE

digitalWrite(m12, HIGH);

digitalWrite(m21, LOW);

digitalWrite(m22, HIGH);

delay(1500);

digitalWrite(m11, LOW); //ALTO

digitalWrite(m12, LOW);

digitalWrite(m21, LOW);

digitalWrite(m22, LOW);

delay(500);

digitalWrite(m11, HIGH); //DERECHA 90°

digitalWrite(m12, LOW);

digitalWrite(m21, LOW);

digitalWrite(m22, HIGH);

delay(500);

digitalWrite(m11, LOW); //ALTO

digitalWrite(m12, LOW);

digitalWrite(m21, LOW);

digitalWrite(m22, LOW);

delay(500);

digitalWrite(m11, LOW); //ADELANTE

digitalWrite(m12, HIGH);

digitalWrite(m21, LOW);

digitalWrite(m22, HIGH);

delay(1500);

digitalWrite(m11, LOW); //IZQUIERDA

digitalWrite(m12, HIGH);

digitalWrite(m21, LOW);

digitalWrite(m22, LOW);

delay(1500);

digitalWrite(m11, LOW); //DERECHA

digitalWrite(m12, LOW);

digitalWrite(m21, LOW);

digitalWrite(m22, HIGH);

delay(1500);

digitalWrite(m11, LOW); //ALTO

digitalWrite(m12, LOW);

digitalWrite(m21, LOW);

digitalWrite(m22, LOW);

delay(500);

digitalWrite(m11, HIGH);

...

Descargar como (para miembros actualizados)  txt (10.2 Kb)  
Leer 7 páginas más »
Disponible sólo en Clubensayos.com