Crea, comparte, aprende y disfruta
Controlar motores de CC con 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
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
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
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); } } |
Deja una respuesta