Transistor 2N2222 como interruptor con Arduino UNO
El Transistor 2N2222 puede ser usado como un switch para controlar una carga a un voltaje distinto del Arduino. También puede administrar más corriente que la que se podría obtener de cualquier pin de Arduino (25mA). En este tutorial aprenderemos a configurar al transistor como interruptor usando un Arduino.
Introducción 2N2222
Básicamente, el 2N2222, es un transistor de unión bipolar NPN, por lo tanto, de baja potencia de uso general. Ten en cuenta que sirve tanto para aplicaciones de amplificación como de conmutación. Por tanto, puede amplificar pequeñas corrientes a tensiones pequeñas o medias; por lo tanto, sólo puede tratar potencias bajas . Puede trabajar a frecuencias medianamente altas.
El 2N2222 es fabricado en diferentes encapsulados los más comunes son los TO-92, TO-18, SOT-23, y SOT-223. Por lo general, se utiliza y en este tutorial usaremos el transistor 2N2222 encapsulado TO-92 como switch o interruptor que es controlado por medio de la salida digital 13 de nuestro Arduino UNO.
Puedes descargar su hoja de datos en el siguiente enlace: Datasheet PDF.
Materiales
Primeramente, ten en cuenta que puedes adquirir los materiales en nuestra tienda virtual, el transitor 2N2222 no es el único que sirve para este proyecto. Básicamente puedes utilizar cualquier NPN de pequeña señal, como el 3904 por ejemplo:

Circuito esquemático
En este tutorial vamos a armar un circuito con el 2n2222 y Arduino, la salida digital 13 de nuestro Arduino uno va ir conectada una resistencia de 1 KOhm y posteriormente a la base del transistor, el emisor va directo a tierra y el colector es la salida vamos a conectar la tierra del componente que vamos a manejar y el positivo al positivo de la batería, en este casos vamos a poner de ejemplo un buzzer. Resumidamente, la batería representa el voltaje que vamos a manejar pero en nuestro caso vamos a usar 12 Volts DC.
*ATENCIÓN: Las siguientes figuras fueron tomadas de la hoja de datos de nuestro 2N2222, favor de revisar el que tengas a la mano y corroborar con tu hoja de datos ya que este dato puede cambiar en función al fabricante.


Programación Arduino
Primeramente, como se observa el código es muy sencillo ya que solo manejamos una entrada digital de Arduino pero esto nos puede servir. Por ejemplo, podemos estar monitoreando la temperatura por medio de un sensor y podemos activar un ventilador de 12 V a la temperatura que uno desee.





Hola, muy buen tutorial, solo como observación te hacen falta colocar punto y coma al final de cada instrucción digitalWrite, así como al declarar el pin 13 como salida.
gracias por la observación ya corregi los errores saludos
Hola, disculpa ¿cómo es posible en el código monitorear una temperatura para después activar un ventilador? ¿Qué es lo que se debe agregar en el código?
Cristian, checa nuestros otros tutoriales, tenemos unos de sensores de temperatura. Saludos.
te hago una consulta podria hacer eso con cualquier transitor npn? por que necesito manejar mayor potencia
Podrias verificarlo con la hoja de datos del trasistor que usaras, pero no habira problema
Hola, ante todo muchas gracias por compartir conocimiento con los demás.
Tengo un problema que me tiene un poco loco y no se si me podrías ayudar.
Estoy montando un ejercicio de clase con Arduino, y estamos empezando a construir los controles de un coche con sensores. Algo bastante básico para empezar.
Estuvimos probando a activar un transistor 2n2222 (el que viene en el kit). Bueno, lo conseguimos, pero usando el voltaje del arduino para darle chicha al motor (por problemas de logística). Al final sacamos una pila de 9v del cajón desastre y decido cambiar la alimentación del motor para que tenga más vida (con la del Arduino iba a pedales, normal).
Cambio el circuito, meto tierra al motor desde la pila y alimento el colector desde el otro borne. Y nada.
Es como si el transistor dejara de funcionar.
¿Es porque el 2n2222 no tira con 9v? En otros ejemplos he visto que lo usaban.
Intenté usar el Mosfet que viene en los kits (el que emplean en el ejemplo) y lo que me pasa es que se queda abierto el circuito todo el tiempo. Independientemente del voltaje que ponga en la base.
Raul, igual no me queda muy claro como es que conectas los transistores.
raul tengo el mismo problema que tu, solucionaste? yo lo simulo en proteus y funciona y luego al llevarlo al fisico no funciona…
Hola Raul Atreides, a mi tampoco me funcionaba con la batería de 9V, el secreto es que la tierra del arduino tiene que estar unida a la tierra (o polo negativo) de la batería de 9V, de esa manera si funciona.
No te funciona porque la distribución de pines mostrada es incorrecta.
Hay un error en el dibujo del transistor, la pata 1 corresponde al emisor y la pata 3 al colector
Es cierto, porfa mencionen eso, ya q lo realice como estaba en el digrama y si me genera los 12v al colocar un 1 en la base, pero al conectar un cero, el voltaje de salida me da 4v aprox.
Octavio, la imagen la tomamos de la hoja de datos. Ya pusimos una leyenda que revisen su modelo en particular. Saludos y gracias.
Octavio, según el datasheet del 2n2222 está correcto la imágen adjuntada, a lo mejor tu transistor tiene otra configuración o bien es otro modelo. Saludos.
La distribución de pines está mal, chequen fuentes más confiables.
Hola Raul Atreides, a mi tampoco me funcionaba con la batería de 9V, el secreto es que la tierra del arduino tiene que estar unida a la tierra (o polo negativo) de la batería de 9V, de esa manera si funciona.
No es secreto, es sentido común: todas las tierras deben estar unidas.
es correcto, en los simuladores diseñando asi como tal el diseño de esta publiacaion la mayoria funciona pero al llevarlo al fisico neeel y ahi te quedas con tu cara de que paso,,, justo como lo dice el compañero alex ordonez y el compañero xavier es que las tierras como de la bateria y del arduino awuevooo tienen que estar unidas
¿Estás seguro que esa es la distribución correcta de pines para el 2N2222? Espero lo corrijas para aquellos que no lo saben.
Hola Xavier, la distribución de pines que mostramos, es la que indica la hoja del fabricante para el transistor que se utilizó. Hay otras matriculas como el 2n2222A que puede tener una distribución distinta, te paso la hoja de datos en la que se baso el tutorial, saludos. https://www.onsemi.com/pub/Collateral/P2N2222A-D.PDF
Perdón, me refería a que se uso la del 2n2222A, a lo mejor esa es la confusión, ya estamos trabajando para agregar la información. Saludos.
Amigo se puede aplicar tu ejemplo para encender un led a traves de ethernet con la shield del arduino? Como lo harías?
Juan, interesante propuesta, no tenemos un código tal cual pero mira tenemos uno con WiFi que lee un dato del ADC https://hetpro-store.com/TUTORIALES/lm35-esp8266-monitoreo-servidor-web/
tengo un dilema, tengo un sensor de temperatura de un motor diesel que trabaja de la siguiente manera: al estar en 4.3v esta el motor frio y no activa un rele para el ventilador, cuando esta motor caliente emite un voltaje de 0.95v para activar dicho rele; como hago para activar el rele con un transistor y /o arduino pero utilizando esta variacion de voltaje
Cuidado con el pin out de los transistores
El que está en este articulo es el P2N2222 cuyos pines son CBE, sin embargo el 2N2222 es EBC
Jorge, gracias por el dato. Saludos.
En la línea 12 sobra un paréntesis: digitalWrite(13,LOW));// apagamos el pin 13 del arduino
para que utilizas la resistencia es necesario ?
Hola, si es necesario, la corriente maxima por pin del arduino es de 25mA, si la sobre pasas puedes dañar al pin.