InΓ­cioβ€ΊBreadboardβ€ΊTransΓ­stor como Interruptor
⬀ Intermédio

πŸ”Œ TransΓ­stor como Interruptor

⏱️ 40 min🧩 BC547 NPN Β· ResistΓͺncia de base Β· LED alta corrente

Nesta pΓ‘gina

πŸ“‹
Usar um transΓ­stor NPN como interruptor controlado pelo Arduino. O Arduino fornece no mΓ‘ximo 40 mA por pino β€” para cargas maiores (motores, LEDs de potΓͺncia, relΓ©s), o transΓ­stor amplifica a corrente.

πŸ”¬ O TransΓ­stor NPN como Interruptor

O BC547 tem 3 terminais: Base (B), Coletor (C) e Emissor (E). Quando a Base recebe corrente suficiente, o transΓ­stor satura β€” age como interruptor fechado entre C e E, permitindo corrente fluir da carga para GND.

CondiΓ§Γ£oEstado do transΓ­storCarga (LED)
Vbase = 0V (pino LOW)Corte β€” interruptor abertoApagado
Vbase = 5V via Rb (pino HIGH)SaturaΓ§Γ£o β€” interruptor fechadoAceso
PWM na baseLiga/desliga rapidamenteBrilho proporcional ao duty cycle
ℹ️
BC547 identificaΓ§Γ£o dos pinos (vista pela marca impressa): Emissor (E), Base (B), Coletor (C) β€” da esquerda para a direita. Verifica sempre com o datasheet β€” pinagem varia entre transistores.

πŸ“ Calcular a ResistΓͺncia de Base

Para saturar o BC547 e controlar uma carga de atΓ© 100 mA:

Rb = (Vcc βˆ’ Vbe) / Ib_sat    onde Ib_sat = Ic / hFE
BC547: hFE β‰₯ 110, Vbe β‰ˆ 0.7V
Exemplo: Ic=50mA β†’ Ib=0.45mA β†’ Rb = (5βˆ’0.7)/0.45e-3 β‰ˆ 9.6 kΞ© β†’ usa 10 kΞ©
πŸ’‘
Na prΓ‘tica, usa 1/10 do hFE mΓ­nimo para garantir saturaΓ§Γ£o com margem. Para o BC547 a controlar cargas atΓ© 100 mA, uma resistΓͺncia de base de 1–10 kΞ© funciona na grande maioria dos casos.

πŸ”Œ Circuito na Breadboard

1

Carga (LED)

Fio 5V β†’ LED (Γ’nodo) β†’ resistΓͺncia 100Ξ© β†’ Coletor (C) do BC547.

2

Emissor ao GND

Emissor (E) do BC547 β†’ GND da breadboard.

3

ResistΓͺncia de base

Fio D9 (pino PWM do Arduino) β†’ resistΓͺncia 10kΞ© β†’ Base (B) do BC547.

4

Verificar pinagem

Confirma com o datasheet do BC547: da esquerda (face marcada) β€” Emissor, Base, Coletor.

πŸ’» Controlar com PWM (Brilho VariΓ‘vel)

ex_transistor.ino
#define BASE_PIN 9   // Pino PWM β†’ resistΓͺncia de base

void setup() { pinMode(BASE_PIN, OUTPUT); }

void loop() {
  // Aumentar brilho gradualmente
  for (int b = 0; b <= 255; b++) {
    analogWrite(BASE_PIN, b);
    delay(8);
  }
  // Diminuir brilho
  for (int b = 255; b >= 0; b--) {
    analogWrite(BASE_PIN, b);
    delay(8);
  }
}
πŸ’‘
Com PWM na base, o transΓ­stor liga e desliga muito rapidamente. O LED parece ter brilho variΓ‘vel (persistence of vision). Isto funciona para qualquer carga: motores DC, solenΓ³ides, relΓ©s.

πŸ† Para ir mais longe

PR.FT7_5 Β· Protoshield Β· Arduino UNO Rev3 Β· InΓ­cio Β· led.dge.medu.pt