Tutorial: Controlando motores de CC con

TA8050P

Tutoriales: El integrado 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 Pinguino, 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 recomienta 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

Sus Terminales
Patillaje 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

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 sobrevoltaje 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
Montaje para el control de un motor.
	    //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
Montaje para el control de un motor.
	 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);    
    }    
}  
	
Plantilla Basada en la obra de © 2011 Ansimuz.