Control de motor de corriente continua con transistor


En este proyecto vamos a mover un motor de corriente continua, motor DC, usando un transistor. Los pines del Arduino sólo nos pueden proporcionar 5 V y a lo más 40 miliamperios de corriente, lo cual es insuficiente para motores de este tipo. Si intentamos usar un motor DC directamente desde un pin del Arduino, podríamos dañar el microcontrolador, por lo que vamos a usar un transistor para hacerlo.
Vamos a usar el transistor 2N222 que es un transistor que por sus características y precio es muy utilizado como un switch para el manejo de un motor DC y el montaje será el siguiente:

Para activar el motor vamos a usar un pulsador. Cuando presionemos el pulsador, la placa Arduino activará el transistor, con lo cual girará el motor.


Componentes
  • Arduino
  • Placa protoboard.
  • Transistor 2N222.
  • Resistencia de 220 (rojo, rojo, marrón).
  • Diodo rectificador 1N4001.
  • Pulsador.
  • una resistencia de 10 K (marrón, negro, naranja)


Circuito
El transistor es un componente electrónico con tres patas; el colector, el emisor y la base. 

En el 2N222, viéndolo de frente, la patilla izquierda es el emisor, que conectamos a masa (GND). La patilla central es la base, que conectamos al pin de Arduino y la patilla derecha es el colector, que conectamos al borne del motor.
La conexión al pin de Arduino, usado para activar el transistor, la hacemos a través de una resistencia, para limitar la corriente de salida del este pin. Una resistencia de 220 es suficiente, dado que la tensión de alimentación va a ser de 4,5 V.
El circuito del motor tenemos que conectarlo a una fuente externa de alimentación, ya que no podemos usar el Arduino para esto. Conectaremos uno de los cables del motor al positivo de la fuente de alimentación y el otro cable, como ya habíamos dicho, al colector del transistor, la patilla de la derecha.
Como el circuito que estamos controlando es un motor, al detenerse puede generar un voltaje que dañaría nuestro transistor y también el Arduino, por esto es muy conveniente agregar un diodo, tipo 1N4001 entre el colector y el emisor.

El pulsador para activar el motor lo conectaremos al pin 8 del Arduino con una resistencia pull-down a tierra.



Código

// Control de un motor DC con un transistor
// Activamos y desactivamos con un sensor digital

int pinPulsador = 8; // Declaramos la variable pinPulsador con el número del pin en qué está conectado

int pinMotor = 9;  //Igual para el pin del motor


int estadoPulsador = 0; // para guardar el estado del sensor

void setup() {
   pinMode(pinMotor, OUTPUT); //Inicializa el pin del motor como salida
   pinMode(pinSensor, INPUT); //Inicializa el pin del pulsador como entrada
   digitalWrite(pinMotor, LOW); //Activamos el estado de reposo para el motor
}

void loop() {
   estadoPulsador = digitalRead(pinPulsador); // Lee el valor del pin del pulsador y lo almacena en la variable pinPulsador
   if(estadoPulsador== HIGH) { // Comprueba el estado del pulsador está pulsado
     digitalWrite(pinMotor, HIGH); // Si es así activa el motor
   } else {
     digitalWrite(pinMotor, LOW); // Si no, lo mantiene en reposo
   }
}