¿Qué determina cuánta corriente puede fluir a través de un 2N2222 A?

He estado jugando con un motor de CC con escobillas, un 2N2222 y un PWM de arduino para obtener diferentes velocidades de mi motor. Ahora, según un video tutorial que vi en YouTube, se recomendó colocar un resistor de 1k Ohm entre el pin PWM y la base, aparentemente para proteger el arduino en caso de que el transistor fallara. Hice lo que me dijeron que hiciera, siguiendo este esquema (Mi fuente de alimentación es 1.5V y R1 es 1K, no 220)Mi fuente de alimentación es 1.5V y R1 es 1K

Pero el motor no giraba cuando el pin del microcontrolador emitía 5V (funcionamiento completo). Entonces pensé, bueno, no me dejes perder el tiempo con mi arduino en caso de que ese fuera el problema, así que conecté la base, a través de la resistencia de 1k, a los mismos 1.5V que alimentan el motor... todavía nada... puse un nueva resistencia de 1k... todavía nada... así que quité la resistencia de 1k Ohm y conecté mi base directamente a la fuente de 1.5v y el motor comenzó a girar.

¿Puede alguien explicarme por qué es eso? Por lo que he estado leyendo, ¿no es el voltaje en la base lo que determina la corriente que fluye desde el colector hasta el emisor? -_- <-- Cara confundida

¿Estás seguro de que tienes el cableado del transistor correcto?
¿El motor funciona con 9 V o 1,5 V?
Un BJT es un dispositivo "controlado por corriente", mientras que un FET es un dispositivo "controlado por voltaje". La reducción de la corriente base mediante la adición de la resistencia reducirá la corriente del emisor.
Además de la respuesta de Ignacio, me gustaría recomendar este sitio web para aprender "Cómo usar un transistor como interruptor": Uso de Transistor como interruptor Yo mismo aprendí cómo usar un transistor como interruptor en esta página web.

Respuestas (3)

El motor necesita una cierta cantidad de corriente para girar. La cantidad de corriente que se permite pasar a través del transistor desde el colector hasta el emisor y, por lo tanto, a través del motor, está controlada por la corriente que pasa a través del transistor desde la base hasta el emisor multiplicada por la ganancia de corriente del transistor, conocida como "h fe " . La resistencia base redujo esta corriente a un valor demasiado bajo para permitir que el motor girara incluso cuando el transistor lo amplificaba. Use lo que sabe sobre la corriente requerida del motor, el voltaje a través del transistor desde la base hasta el emisor durante la saturación, el voltaje desde el pin MCU hasta el emisor y la vida del transistor para calcular el valor máximo correcto de la resistencia a usar. P.ej:

300mA (I motor ) / 70A/A (h fe ) = 4.2mA
(5V (V MCU ) - 0.7V (V BE(SAT) ) )/4.2mA = 1.024 kohm

Tenga en cuenta que el suministro de voltaje del motor no está involucrado en estos cálculos, pero aun así debe ser lo suficientemente alto después de restar el voltaje del colector al emisor según las especificaciones del motor.

El uso de una ganancia de 70 en los cálculos dará como resultado una corriente de base que no saturará el transistor (lo que se desea cuando se usa el transistor como interruptor) y dará como resultado una mayor caída de voltaje colector-emisor. La regla general para saturar el transistor es impulsar la base con una corriente de aproximadamente 1/10 a 1/20 de la corriente de salida. Los voltajes de saturación de la hoja de datos 2N2222 se dan para una ganancia de 10.

Al igual que con cualquier transistor NPN, debe limitar la corriente en la base de su 2N2222, por lo que se requiere R1, porque los transistores NPN son partes operadas por corriente (como los LED).

Cuando use un transistor NPN como interruptor, querrá usarlo en modo saturado, porque minimiza la caída de voltaje en el colector (cf. V_CE(sat)). Para eso, debe limitar la corriente en la base a 1/10 de I_C, es decir, la corriente con la que desea impulsar su motor.

De lo contrario, sin saturación, su transistor podría calentarse demasiado/producir una caída de voltaje demasiado alta.

Tenga en cuenta que un pin GPIO en su Arduino (ATmega328p) solo puede suministrar hasta 20 mA. Por lo tanto, está limitado a 200 mA para su motor. que puede ser insuficiente.

Al calcular el valor R1, debe tener en cuenta la caída de voltaje en la base (es decir, V_BE(sat)) y la caída de voltaje en el pin GPIO (a 20 mA, cf. V_OHfrente a las cifras de corriente de salida en la hoja de datos ATmega328p).

Consulte también, digamos, la hoja de datos de Onsemi 2N2222A para las cifras de V_CE (sat) y V_BE (sat).

Una alternativa al uso de un transistor NPN para cambiar su motor es usar un MOSFET de nivel lógico en su lugar. A diferencia de un transistor NPN, está controlado por voltaje, por lo que es más eficiente energéticamente. Además, con un MOSFET, puede cambiar cargas mucho más altas con la pequeña corriente disponible en un pin GPIO.

El OP podría usar dos transistores 2N2222 como un par Darlington para superar el límite de 200 mA sugerido aquí.
@AndrewMorton Sí, esa es otra alternativa. Ver también ¿Hay alguna razón para usar transistores de unión o Darlington para aplicaciones de energía? para algunos pros/contras. En particular, un par Darlington sería bastante ineficiente.

Voy a aventurarme y asumir que cuando enchufaste la base del transistor a la fuente de alimentación de 1.5V, en realidad lo enchufaste a través del motor. Esto explicaría por qué el comportamiento fue como lo describiste.

Suponiendo que su implementación del circuito fue correcta y que el transistor no está al revés (me molesta todo el tiempo; vale la pena verificarlo dos veces), el problema con este circuito es casi seguro el voltaje de su fuente de alimentación. El transistor cortará aproximadamente 0,6 V en la unión de la base al emisor, y probablemente más cerca de 0,8 V entre el colector y el emisor, dependiendo de qué tan saturado esté. 5V a 1K darán 5 mA, que con una h fe de alrededor de 100 (bastante estándar) da un máximo de 500 mA de corriente a través del colector.

Esto debería ser suficiente para un motor de juguete pequeño, pero no obtendrá 500 mA a través de un motor con una fuente de alimentación de 1,5 V-0,8 V = 0,7 V, especialmente si es solo una batería o dos. Al igual que Markrages sugerido en los comentarios, debería considerar una fuente de alimentación más parecida a su diagrama, 9V. 5V sería un mínimo, diría yo, o tal vez 3V.

La resistencia de 1K es importante, no porque proteja a su Arduino de la retroalimentación (aunque también la hay), sino porque evita que cortocircuite sus 5V a través del transistor, lo que podría quemar una cosa u otra (aunque la corriente suministrada por un Arduino es limitado, creo que menos de 100 mA). Definitivamente deberías usarlo siempre .

Finalmente, dependiendo de cómo alimente el Arduino, podría compartir su fuente de alimentación con el motor. Si lo está alimentando desde el conector de barril, estoy 80% seguro de que puede conectarse directamente a esa fuente de alimentación usando el enchufe V que está al lado de 5V y 3.3V y todos ellos (me imagino un Uno ). Esta línea no pasará por ninguna regulación (nuevamente, 80% seguro), por lo que no tendría que preocuparse por sobrecargar los componentes de Arduino. Por el contrario, puede obtener una fuente de alimentación decente y alimentar el motor y el Arduino con ella haciendo lo contrario y conectando el pin V del Arduino al voltaje de la fuente como debe ser...

Buena suerte; Espero que ayude.