⬀ Intermédio
π TransΓstor como Interruptor
β±οΈ 40 minπ§© BC547 NPN Β· ResistΓͺncia de base Β· LED alta corrente
π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Γ§Γ£o | Estado do transΓstor | Carga (LED) |
| Vbase = 0V (pino LOW) | Corte β interruptor aberto | Apagado |
| Vbase = 5V via Rb (pino HIGH) | SaturaΓ§Γ£o β interruptor fechado | Aceso |
| PWM na base | Liga/desliga rapidamente | Brilho 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
- Substitui o LED por um motor DC de 5V β que muda no circuito? Que riscos hΓ‘?
- Calcula a resistΓͺncia de base para controlar uma carga de 200 mA com BC547
- Mede a tensΓ£o Vce (coletorβemissor) em saturaΓ§Γ£o com multΓmetro β deve ser < 0.3V
- Pesquisa 'flyback diode' β porque Γ© essencial quando a carga Γ© um motor ou relΓ©?