Resistencias entre el pin Arduino y el transistor

Estoy tratando de activar un relé usando un Arduino Uno. La mayoría de los esquemas que he visto en la web incluyen dos resistencias entre el pin Arduino y el transistor 2N3904.

¿Cuál es la razón para eso?

Circuito de relé con resistencias resaltadas

[como un aparte] Para la protección flyback, use un diodo Schottky. El pico de EMF de la bobina del relé es rápido. (Vea también los comentarios aquí ).
@NickAlexeev. Tengo que llamar a BS sobre la necesidad de diodos Schottky para un escenario de conducción directa como este. Un 1N4004 como se muestra tiene una gran capacitancia de unión y esto absorbe la energía inicial. El 1N4004 estaría bien, y en este escenario no necesita una recuperación inversa rápida o un voltaje directo bajo.
Mis comentarios sobre un diodo Schottky estaban relacionados con la conducción de una carga inductiva directamente con una salida CMOS push-pull. Más sobre mantener Vf bajo para que la corriente indebida no fluya a través de la red de protección interna que sobre la velocidad.

Respuestas (3)

La resistencia base en serie (R9) es para limitar la corriente base extraída del pin de salida Arduino.

La resistencia entre la base y GND (R10) es para conducir la corriente de fuga del pin de E/S cuando es de tres estados. Este será el caso después de que su circuito se encienda (cuando el reinicio configure el pin de E/S como una entrada), hasta que la CPU de Arduino esté fuera del reinicio y su software configure el pin de E/S como una salida. La corriente de fuga puede ser suficiente para que su transistor conduzca. El valor de la resistencia puede ser mucho más alto que el que tiene, con un lugar común de 10 K a 47 K. Calcúlelo a partir de R=Vilg/Ilk, donde Vilg es el voltaje de entrada desde un nivel bajo lógico bueno (se recomienda 0,1 V) e Ilk es la corriente de fuga de entrada del pin de E/S (consulte siempre la hoja de datos).

Es poco probable que la corriente de fuga resulte problemática, pero para muchas MCU, los pines digitales/de opción se configuran como entradas durante el reinicio y pueden tener una resistencia pullup de forma predeterminada... esto puede activar un búfer de E/S BGT o FET inesperadamente.
Hola, @JackCreasey, de hecho, he visto este problema en placas muchas veces con este estilo de pin de E/S en un BJT, entre la corriente de fuga de entrada y el comportamiento del transistor con una base flotante. Arduino no tiene un pull-up predeterminado (la mayoría de los modernos no parecen... ¿solo 8051 duplicados lo tenían?), Por lo tanto, Arduino responde.
Cuando dice "el valor de la resistencia puede ser mucho mayor", ¿se refiere a R9 o R10 o ambos?
@AdrianMcCarthy, el primer párrafo solo habla de R9, el segundo solo de R10.
  • R9

    La resistencia está aquí para limitar la corriente. En su aplicación, desea que el transistor se encienda cuando el pin arduino esté ALTO. Para calcular ese valor de resistencia, debe saber cuánta corriente fluirá a través del transistor cuando se sature ( I C ). Luego puede determinar la corriente necesaria que proviene del arduino para alternar el transistor: H F mi = I C I b con I b la corriente entregada por el arduino. Conocimiento I b , puede determinar el valor de la resistencia.

  • R10

    Esta resistencia está aquí para establecer un valor predeterminado en la base del transistor, comúnmente llamada "resistencia desplegable". Cuando el arduino recién se enciende, el nivel de voltaje del pin es incierto, es por eso que necesita una resistencia de este tipo.

@TonyM No estaba al tanto. nunca uso arduino...
Yo tampoco. Pero encontrar la hoja de datos y verificar tomó 2 minutos :-)
@TonyM Después de unos segundos, me doy cuenta de que en la mayoría de los µC, subir o bajar son programables. No hay un "estado de pin predeterminado"
@M.Ferru: sería muy raro que una MCU no tuviera un estado predeterminado al reiniciar el bloque GPIO. La hoja de datos de ATmega328p especificará qué es. El cargador de arranque de Arduino, que generalmente se ejecuta primero, podría haberse escrito para cambiar eso, pero probablemente no lo fue.

R9 está ahí para proteger el controlador lógico. Considere el siguiente esquema. Sin una resistencia en serie, cuando eleva el pin, básicamente está cortocircuitando el riel Vcc a tierra a través de un diodo. Esto excederá la corriente máxima que el pin puede entregar y, en última instancia, provocará daños en el dispositivo.

La resistencia debe ser lo suficientemente grande para realizar esa función y lo suficientemente pequeña para proporcionar suficiente corriente de base para impulsar el transistor lo suficientemente fuerte como para alimentar la carga. Esta es una de las razones por las que los MOSFET, que son impulsados ​​por voltaje, y a menudo se prefieren para esta función.

esquemático

simular este circuito : esquema creado con CircuitLab

Se requiere R10 para garantizar que la base del transistor se mantenga baja mientras el micro se inicializa y tiene su pin en un estado de alta impedancia.