Trastejant

Crea, comparte, aprende y disfruta

Controlar motores de CC con TA8050P

TA8050P

El TA8050P es un controlador de motores de corriente continua, gracias a él podremos controlar el sentido de giro de un motor.

Además este tipo de integrados nos evita otro problema que existe a la hora de controlar este tipo de motores desde un microcontrolador, como puede ser un Arduino, un Pingüino, un PIC.. etc. Y es que todos estos dispositivos entregan en sus salidas 5V, insuficientes para mover un motor. En cambio el TA8050P entregará en su salida la tensión suministrada por su patilla 7. El fabricante nos recomienda que esta sea de entre 6 y 16 V, pero deberemos tener en cuenta también cuanto pueden soportar nuestros motores.

Por si todo esto fuera poco, también nos evita que el consumo de los motores pueda dañar nuestros microcontroladores, estos por lo general entregan a su salida unos poco miliAmperios, mientras que nuestro TA8050P puede entregar hasta 1.5A

Terminales del TA8050P

TA8050P pinout

Pin Función Descripción
1 Di1 Pin de control 1
2 Di2 Pin de control 2
3 Salida 1 se conecta a uno de los polos del motor
4 GND Conectado a tierra
5 Salida 2 Conectado al polo del motor que queda libre
6 NC No se usa.
7 Alimentación Aquí conectaremos la alimentación que queremos que llegue a los motores.

Funcionamiento del TA8050P

El TA8050P funciona según la siguiente tabla de verdad:

 

Entradas Salidas
DI1 DI2 M(+) M(-)
1 1 0 0
0 1 1 0
1 0 0 1
0 0 0 0

O lo que es lo mismo:

 

Entradas Salida
DI1 DI2 Motor
1 1 Parado
0 1 Movimiento
1 0 Movimiento Inverso
0 0 Parado

El TA8050P cuenta además con medidas de seguridad para evitar quemarse o dañar otros componentes. Como un protección de sobre-voltaje en los pines de entrada o detección de cortocircuitos en los de salida.

Montajes

Control de un motor de CC con Arduino y TA8050P

Ta8050P con Arduino

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
//Declaramos el nombre de los pines 
int dl1 = 11; 
int dl2 = 10; 
 
void setup(){ 
 //declaramos que el pin 10 y 11 son salidas 
 pinMode(dl1,OUTPUT); 
 pinMode(dl2,OUTPUT); 
} 
 
void loop(){ 
 //avanza 3 segundos 
 digitalWrite(dl1, HIGH); 
 digitalWrite(dl2, LOW); 
 delay (3000); 
 
 //Se para 3 segundos 
 digitalWrite(dl1, HIGH); 
 digitalWrite(dl2, HIGH); 
 delay(3000); 
 
 //retrocede 3 segundos 
 digitalWrite(dl1, LOW); 
 digitalWrite(dl2, HIGH); 
 delay(3000); 
 
 //Se para 6 segundos 
 digitalWrite(dl1, LOW); 
 digitalWrite(dl2, LOW); 
 delay(6000); 
}

Control de un motor de CC con Pinguino y TA8050P

TA8050P y Pinguino

 

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
void setup(){ 
 pinMode(11,OUTPUT); 
 pinMode(12,OUTPUT); 
} 
 
void loop(){ 
 //giro en un sentido 
 digitalWrite(11,HIGH); 
 digitalWrite(12,LOW); 
 delay(2000); 
 
 //gira en el otro sentido 
 digitalWrite(11,LOW); 
 digitalWrite(12,HIGH); 
 delay(2000); 
 
 //para el giro motor 
 digitalWrite(11,LOW); 
 digitalWrite(12,LOW); 
 delay(2000); 
 
 //acelerar 
 for(int i=0; i<=255; i++){ analogWrite(11, i); } //decelerar for(int i=255; i>0; i--){ 
 analogWrite(11, i); 
 } 
 
 //acelerar en sentido inverso 
 for(int i=0; i<=255; i++){ analogWrite(12, i); } //decelerar en sentido inverso for(int i=255; i>0; i--){ 
 analogWrite(12, i); 
 } 
}

También te puede interesar...

No hay temas relacionados

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.