Paso 4: Ard-e en el Auto: usando el Ardunio para conducir los motores DC
El chip tiene básicamente tres entradas, una entrada PWM que ajusta la velocidad del motor y da vuelta encendido y apagado y dos entradas que determinan la dirección en que gira el motor. El pin PWM es el activar el L293, los dos pasadores que determinan la dirección de las vueltas del motor son las entradas 1A y 2A. Los motores están conectados a la salidas 1Y y 2 Y. El L293 puede controlar dos motores DC por lo que una vez que lo enganchó hasta el Arduino Ard-e puede conducir él mismo.
La hoja de datos para el L293 se puede encontrar en http://www.datasheetcatalog.com/datasheets_pdf/L/2/9/3/L293.shtml
Terminé ordenando a dos de los chips de L293 de www.mouser.com y me cuestan cerca de $7. Después de unas horas de ensayo y error conseguí finalmente Arduino para manejar ambos Ard-motores profesionales. No he leído la hoja de datos con bastante cuidado porque originalmente estaba usando 3V para tratar de ejecutar el L293 cuando él obviamente (ahora por lo menos es obvio) necesita al menos 5 volts. Así que después de numerosos viajes a www.Arduino.cc aquí está el código que usé para poner a prueba unidad de Ard-motores de café:
int diraPin = 10;
int dirbPin = 9; Estos dos tienen que estar enfrente de valores digitales para hacer girar el motor, si son altas o ambas bajas entonces el motor se frena realmente.
int enablePin = 11; Este pin ajusta la velocidad del motor y debe ser un pin PWM.
int dira2Pin = 2;
int dirb2Pin = 3;
int enable2Pin = 5; Estos se utilizan de la misma manera para conducir el segundo motor.
int val = 0; Variable usada para establecer la velocidad de los motores.
void setup() {}
pinMode (diraPin, salida);
pinMode (dirbPin, salida);
pinMode (enablePin, salida);
pinMode (dira2Pin, salida);
pinMode (dirb2Pin, salida);
pinMode (enable2Pin, salida); Declara todos los pines como salidas.
}
void loop() {}
Val = 175; Un valor para ajustar la velocidad del motor, alrededor del 70% de su velocidad.
Girar motor 1 hacia atrás por un segundo
analogWrite (enablePin, val); Ajustar la velocidad de los motores con PWM
digitalWrite (diraPin, bajo);
digitalWrite (dirbPin, HIGH);
girar el motor 2 hacia atrás por un segundo
analogWrite (enable2Pin, val);
digitalWrite (dira2Pin, bajo);
digitalWrite (dirb2Pin, HIGH);
Delay(1000); Si cambias que perno de dirección es alto y que es baja el motor girará una dirección diferente.
girar a motor 1 hacia delante por un segundo
digitalWrite (diraPin, HIGH);
digitalWrite (dirbPin, bajo);
girar el motor 2 hacia adelante para un segundo
digitalWrite (dira2Pin, HIGH);
digitalWrite (dirb2Pin, bajo);
Delay(1000);
parada por un segundo
Val = 0;
analogWrite (enablePin, val);
analogWrite (enable2Pin, val);
Delay(1000);
}
Así que para comprobarlo en Ard-e terminé colocando una placa en la adición que había ocupado anteriormente el sistema de giro e inclinación. También moví la derecha Arduino junto a la placa de prototipos fácil. También tuve que agregar otro dos pilas AA el el L293 tendría 6V necesita para alimentar los motores.
Aquí está un vídeo rápido de Ard-e ejecutar este programa. Uno de los motores gira más rápido que el otro así que él se inclina hacia la cámara cerca del final de la misma. Realmente no sé por qué esto sucede...
Así que una vez escribir todo el código y reorganizar los componentes para hacer el Arduino boss alrededor del L293 y conseguir los molestos motores bajo control Ard-café posible utiliza aumento dramáticamente. Todo lo que necesitas ahora son algunos sensores.