• No se han encontrado resultados

CONTROL VELOCIDAD Y SENTIDO DE MOTOR DC. (de

N/A
N/A
Protected

Academic year: 2021

Share "CONTROL VELOCIDAD Y SENTIDO DE MOTOR DC. (de"

Copied!
7
0
0

Texto completo

(1)

CONTROL VELOCIDAD Y SENTIDO DE MOTOR DC

(de http://diymakers.es/control-velocidad-y-sentido-de-motor-dc/)

En este tutorial vamos a controlar la velocidad y el sentido de un motor DC a través de un potenciómetro desde Arduino.

Material

-Arduino Uno, Motor DC, Potenciómetro, L293D (driver 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.

(2)

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.

(3)

Nosotros usaremos la parte de la izquierda (los diodos externos en el L293D están dentro). Cómo se aprecia en la imagen, los pins 3 y 6 son las salidas y se conectan a los bornes del motor. Y los pins 2 y 7 son las entradas donde conectaremos las salidas del Arduino. Dependiendo que valor ponemos entre los pins 2 y 7 el motor girará en un sentido o en otro.

Control velocidad a través de PWM

Hasta este punto sabemos cómo controlar el sentido de giro del motor DC a través del L293D. Pero ¿y la velocidad de giro? En este proyecto lo que haremos es controlar la velocidad y el giro del motor con un solo potenciómetro.

Para hacerlo utilizaremos el PWM (véase PWM). Sabemos que hay que atacar los pins 2 y 7 del L293D desde dos salidas del Arduino. En estas dos salidas habrá un PWM a cada una. Pero tenemos que invertir un PWM. ¿Qué quiere decir invertir? Pues que cuando en

(4)
(5)
(6)

-Pins 4,5,12,13 del L293D a masa.

-Juntar las masas del Arduino y de la fuente de alimentación externa.

-Pin 8 del L293D a 9V de la fuente de alimentación externa. Es el voltaje que proporciona al motor.

-Pin 16 del L293D a 5V. Es la alimentación del L293D, pude alimentarse directamente desde la alimentación que proporciona el Arduino.

(7)

PROGRAMA

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 /* www.diymakers.es by A.García

Control velocidad y sentido motor DC

Tutorial en: http://diymakers.es/control-velocidad-y-sentido-de-motor-dc/ */

intpin2=9; //Entrada 2 del L293D intpin7=10; //Entrada 7 del L293D intpote=A0; //Potenciómetro

intvalorpote; //Variable que recoge el valor del potenciómetro intpwm1; //Variable del PWM 1

intpwm2; //Variable del PWM 2

voidsetup() {

//Inicializamos los pins de salida pinMode(pin2,OUTPUT); pinMode(pin7, OUTPUT); } voidloop() {

//Almacenamos el valor del potenciómetro en la variable valorpote=analogRead(pote);

//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. //Por esta razón tenemos que mapear el número de un rango a otro usando este código. pwm1 = map(valorpote, 0, 1023, 0, 255);

pwm2 = map(valorpote, 0, 1023, 255, 0); //El PWM 2 esta invertido respecto al PWM 1

//Sacamos el PWM de las dos salidas usando analogWrite(pin,valor) analogWrite(pin2,pwm1);

analogWrite(pin7,pwm2);

Referencias

Documento similar

This Bachelor’s Thesis explains the early development of the game Star Quest: Treasure Time, a multiplayer metroidvania starring two main characters with various different

Fuente de emisión secundaria que afecta a la estación: Combustión en sector residencial y comercial Distancia a la primera vía de tráfico: 3 metros (15 m de ancho)..

Entre nosotros anda un escritor de cosas de filología, paisano de Costa, que no deja de tener ingenio y garbo; pero cuyas obras tienen de todo menos de ciencia, y aun

Cada época, a través de la poesía, avanza sus propias reivindicaciones, y el lector de este libro, ante todo, descubrirá cuán fecunda es hoy en día la lectura de José

o Si dispone en su establecimiento de alguna silla de ruedas Jazz S50 o 708D cuyo nº de serie figura en el anexo 1 de esta nota informativa, consulte la nota de aviso de la

Unas investigaciones realizadas por nosolros en los libros de registros del Tribunal de Madrid nos lian proporcionado textos más amplios sobre el tema que tratamos. Por

Tras establecer un programa de trabajo (en el que se fijaban pre- visiones para las reuniones que se pretendían celebrar los posteriores 10 de julio —actual papel de los

se mondan los conductos de un regadío para que el agua corra con libertad; al pez cogido en la red, a la avecilla enjaulada se les suelta y se les da la libertad; se trata a un