Descripción
MOTOR SHIELD
La motor shield con dos L293D permite controlar 4 cargas inductivas + 2 servos conectados al timer dedicado de alta resolución de Arduino para un control sin jitter. Para el caso de motores, en cada canal se puede controlar tanto la velocidad como la dirección de giro independientemente. Posibilita el control desde proyectos sencillos hasta de media complejidad.
Controlador de motores. Posee dos drivers L293D, manejados por un conversor serial a paralelo 74HC595. El Shield es compatible con Arduino Uno, Mega y Leonardo. El conversor expande 3 pines de Arduino a 8 pines necesarios para manejar la dirección de los drivers. Las señales «Enable» de los drivers están conectadas directamente a pines PWM de Arduino, permitiendo controlar la velocidad de los motores.
ADVERTENCIAS: Las salidas para los servos toman su alimentación directamente de los 5 V de la placa Arduino, por lo que esta bien utilizar pequeños servos tipo hobby. Si quiere emplear servos grandes de alto consumo de corriente, se recomienda que corte la pista alimentación V+ en la shield ó el cable positivo del servo y provea su propia fuente a estos (No olvide conectar las tierras).
La alimentación de las 4 salidas para motores u otras cargas inductivas M1, M2, M3 y M4 se tiene que suministrar con una fuente externa. Se puede proveer de la fuente externa conectada al jack DC del Arduino (Pin Vin) ó de una fuente externa conectada al conector de tornillo «EXT_PWR» en la shield; seleccionable mediante el jumper «PWR» (Si el jumper está colocado se utiliza fuente externa del Arduino conectada al jack DC, y si no está colocado se utiliza el conector de tornillo de la shield). Si utiliza el conector de tornillo de la shield tenga en cuenta la polaridad, ya que esta entrada no cuenta con diodo de protección de polaridad y una conexión errada resultará en el daño de la shield y la placa Arduino. Tampoco conecte la salida regulada de 5 V ó 3.3 V de la placa Arduino a esta entrada.
En cualquier caso la corriente de la fuente externa de voltaje debe ser superior al consumo máximo de las cargas.
Se pueden controlar motores de 4.5 V a 25 V. Si provee alimentación con fuente externa conectada a la placa Arduino consulte el voltaje recomendado que admite esta entrada, en el UNO por ej. debe ir de 6 V a 12 V, por lo que podrá controlar motores solo de 4.5 V hasta 10 V aprox. según el voltaje de la fuente.
Características:
Incopora 2 circuitos integrados L293D proporcionando 4 puentes-H completos
Protección contra sobre carga térmica
Diodos de protección contra voltajes inversos generados por las cargas inductivas
4 canales (M1, M2, M3 y M4) para controlar igual número de cargas inductivas como motores DC, solenoides, relés, ó 2 motores paso a paso unipolares o bipolares de entre 4.5 V y 25 V
En el caso de motores es posible controlar tanto su velocidad como su dirección de giro
Control de velocidad de motores DC con resolución de 8 bits
Control de motores paso a paso con 1 y 2 bobinas en modo sencillo, doble (mayor torque), intercalado (medio paso) y micro pasos
2 conectores independientes para controlar 2 servos pequeños de 5 V (Pines digitales 9 y 10)
Corriente máxima continua en cada una de las salidas M1, M2, M3 y M4: 600 mA (0.6 A)
Corriente máxima pico no repetitivo en cada una de las salidas M1, M2, M3 y M4: 1.2 A
Resistores de pull-down que mantienen los motores deshabilitados durante el encendido
Requiere fuente externa para la alimentación de las cargas en las salidas M1, M2, M3 y M4. Puede ser empleada una fuente externa conectada a la placa Arduino o a la shield con selección mediante el jumper «PWR»
Bloques de terminales de tornillo para calibres 18 a 26 AWG
Botón de reset para la placa Arduino
Compatibilidad probada con Arduino Diecimila, Duemilanove, UNO y Mega 1280 & 2560
Diagrama de conexión
Código
#include <AFMotor.h>
AF_DCMotor motor(4);
void setup()
{
//Set initial speed of the motor & stop
motor.setSpeed(200);
motor.run(RELEASE);
}
void loop()
{
uint8_t i;
// Turn on motor
motor.run(FORWARD);
// Accelerate from zero to maximum speed
for (i=0; i<255; i++)
{
motor.setSpeed(i);
delay(10);
}
// Decelerate from maximum speed to zero
for (i=255; i!=0; i–)
{
motor.setSpeed(i);
delay(10);
}
// Now change motor direction
motor.run(BACKWARD);
// Accelerate from zero to maximum speed
for (i=0; i<255; i++)
{
motor.setSpeed(i);
delay(10);
}
// Decelerate from maximum speed to zero
for (i=255; i!=0; i–)
{
motor.setSpeed(i);
delay(10);
}
// Now turn off motor
motor.run(RELEASE);
delay(1000);
}
Valoraciones
No hay valoraciones aún.