Motor Arduino
Motor Arduino
-Arduino Uno
-Motor DC
-Potenciómetro
-L293D (drivers motores)
-Fuente alimentación externa
Motor DC
Un motor de corriente continua convierte la energía eléctrica en mecánica. Se
compone de dos partes: el estator y el rotor.
El estator es la parte mecánica del motor donde están los polos del imán.
El rotor es la parte móvil del motor con devanado y un núcleo, al que llega la corriente
a través de las escobillas.
Cuando la corriente eléctrica circula por el devanado del rotor, se crea un campo
electromagnético. Este interactúa con el campo magnético del imán del estator. Esto
deriva en un rechazo entre los polos del imán del estator y del rotor creando un par de
fuerza donde el rotor gira en un sentido de forma permanente.
Si queremos cambiar el sentido de giro del rotor, tenemos que cambiar el sentido de la
corriente que le proporcionamos al rotor; basta con invertir la polaridad de la pila o
batería.
L293D
Para controlar un motor DC desde Arduino, tendremos que usar un driver para
motores para proporcionarle más corriente al motor ya que las salidas del Arduino sólo
dan 40mA. De esta manera, con el driver podemos alimentar el motor con una fuente
de alimentación externa.
El L293D es un integrado para controlar motores DC que usa el sistema puente en H.
¿Qué es el puente en H? Es un sistema para controlar el sentido de giro de un motor
DC usando cuatro transistores. En la imagen vemos que los transistores se comportan
como interruptores y dependiendo que transistores conducen y cuáles no cambia la
polarización del motor, y con esto el sentido de giro.
El L293D tiene dos puentes H y proporciona 600mA al motor y soporta un voltaje entre
4,5V y 36V tal y cómo pone en el datasheet.
En el datasheet también hay el esquema que vamos a usar.
PROGRAMA
1 int pin2=9; //Entrada 2 del L293D
2 int pin7=10; //Entrada 7 del L293D
3 int pote=A0; //Potenciómetro
4 int valorpote; //Variable que recoge el valor del potenciómetro
5 int pwm1; //Variable del PWM 1
6 int pwm2; //Variable del PWM 2
7 void setup()
8 {
//Inicializamos los pins de salida
9 pinMode(pin2,OUTPUT);
10 pinMode(pin7, OUTPUT);
11 }
12 void loop()
13 {
14
//Almacenamos el valor del potenciómetro en la variable
15 valorpote=analogRead(pote);
16
17 //Como la entrada analógica del Arduino es de 10 bits, el rango va de 0 a 1023.
//En cambio, la salidas del Arduio son de 8 bits, quiere decir, rango entre 0 a 255.
18 //Por esta razón tenemos que mapear el número de un rango a otro usando este código.
19 pwm1 = map(valorpote, 0, 1023, 0, 255);
20 pwm2 = map(valorpote, 0, 1023, 255, 0); //El PWM 2 está invertido respecto al PWM 1
21 //Sacamos el PWM de las dos salidas usando analogWrite(pin, valor)
22 analogWrite(pin2,pwm1);
23 analogWrite(pin7,pwm2);
24
}
http://diymakers.es/control-velocidad-y-sentido-de-motor-dc/