O que é um transistor? Como funciona, NPN vs PNP e uso com Arduino
O que é um transistor e como ele funciona? NPN vs PNP, cálculo do resistor de base, BC547, 2N2222A e TIP120 comparados e circuitos de motor e relé com Arduino.
Um transistor é um componente semicondutor de três terminais que usa uma corrente pequena para controlar outra muito maior. Ele tem duas funções básicas: ligar e desligar uma carga como uma chave eletrônica e atuar como amplificador, deixando um sinal fraco mais forte. Um pino do Arduino só fornece com segurança cerca de 20 mA; isso basta para um LED, mas não para um motor, um relé ou uma fita de LED de 12 V. É aí que entra o transistor: com alguns miliampères vindos do pino, ele controla centenas de miliampères ou até vários ampères.
O transistor foi inventado em 1947 nos Bell Labs por John Bardeen, Walter Brattain e William Shockley; ele substituiu as válvulas e colocou os computadores no nosso bolso. Hoje o processador do seu celular tem bilhões de transistores minúsculos, e o ATmega328P, o coração de um Arduino, também é feito de uma quantidade enorme deles. Neste artigo você vai aprender a diferença entre NPN e PNP, o que fazem a base, o coletor e o emissor, como calcular o resistor de base, como BC547, 2N2222A e TIP120 se comparam, como acionar motores, relés e fitas de LED com Arduino, ESP32 e Raspberry Pi Pico e como identificar os terminais com um multímetro.

O que é um transistor e como ele funciona?
Você pode pensar no transistor como uma torneira: girar a manopla exige pouquíssima força, mas muita água passa pelo cano. No transistor, a manopla é a corrente de base e a água no cano é a corrente principal que flui do coletor para o emissor. A razão entre as duas é o ganho de corrente do transistor, escrito como hFE ou β (beta) nos datasheets: IC = hFE × IB. Por exemplo, se você injetar 0,1 mA na base de um BC547 com hFE de 200, até 20 mA podem passar pelo coletor. Para um transistor de silício começar a conduzir, é preciso surgir cerca de 0,6–0,7 V entre a base e o emissor; essa é a tensão de limiar da sua junção, que se comporta como um diodo. A corrente que sai pelo emissor é a soma das duas: IE = IC + IB.
| Terminal | Símbolo | Função | Onde vai em uma chave NPN |
|---|---|---|---|
| Base | B | Terminal de controle; a corrente pequena entra aqui | No pino do Arduino, através de um resistor |
| Coletor | C | A corrente da carga entra aqui | No lado negativo da carga |
| Emissor | E | A corrente total sai por aqui (IE = IC + IB) | No GND |
Transistores NPN vs PNP
Os transistores bipolares de junção (BJTs) são feitos de três camadas semicondutoras. Em um transistor NPN, a fina camada P do meio é a base; quando a base fica cerca de 0,7 V mais positiva que o emissor, a corrente flui do coletor para o emissor. Em um transistor PNP tudo se inverte: o emissor vai ao positivo da alimentação e, quando a base é puxada cerca de 0,7 V abaixo do emissor, a corrente flui do emissor para o coletor. O jeito fácil de lembrar o símbolo é a seta no emissor: no NPN ela aponta para fora, no PNP aponta para dentro. O NPN é bem mais comum em projetos com Arduino, porque o emissor vai direto ao GND e o transistor liga quando o pino vai a HIGH; a carga fica entre o positivo da alimentação e o coletor. Isso se chama chaveamento do lado baixo (low-side).
| Característica | NPN | PNP |
|---|---|---|
| Seta no símbolo | Aponta para fora do emissor | Aponta para dentro do emissor |
| O emissor vai ao | GND (negativo) | Positivo da alimentação (+) |
| Para ligar, a base fica | ≈0,7 V acima do emissor (pino HIGH) | ≈0,7 V abaixo do emissor (pino LOW) |
| Sentido da corrente principal | Do coletor para o emissor | Do emissor para o coletor |
| Posição da carga | Entre o + e o coletor (lado baixo) | Entre o coletor e o GND (lado alto) |
| Modelos comuns | BC547, S8050, 2N2222A, BC337, TIP120 | BC557, S8550, 2N2907A, BC327, TIP125 |
Regiões de operação: corte, ativa e saturação
| Região | Condição | Corrente de coletor | VCE | Usada para |
|---|---|---|---|---|
| Corte | VBE < ≈0,6 V, sem corrente de base | Quase zero | Perto da tensão de alimentação | Chave DESLIGADA |
| Região ativa | VBE ≈ 0,65–0,7 V, corrente de base moderada | IC = hFE × IB | Algum valor intermediário | Amplificador |
| Saturação | IB bem maior que IC / hFE | Limitada pela carga e pela alimentação | 0,1–0,3 V (0,8–2 V em um Darlington) | Chave LIGADA |
Quando você usa um transistor como chave, ele fica só em dois extremos: totalmente desligado (corte) ou totalmente ligado (saturação). A região ativa, entre os dois, serve para amplificadores e é indesejada em uma chave, porque a potência que o transistor dissipa é P = VCE × IC. Um 2N2222A saturado derruba no máximo 0,3 V a 150 mA e gera só 45 mW de calor; se ele ficar meio ligado com a mesma corrente e derrubar 3 V, dissipa 450 mW. Isso está muito perto do limite de 625 mW do encapsulamento TO-92, e o transistor fica quente demais para tocar. Por isso os circuitos de chaveamento sempre fornecem à base corrente suficiente para levar o transistor com folga à saturação.
O transistor como amplificador
Quando um transistor é mantido na região ativa, ele amplia pequenas variações na base em variações maiores no coletor. Por exemplo, em um transistor com hFE de 200, um aumento de 10 µA na corrente de base eleva a corrente de coletor em 2 mA; sobre um resistor de coletor de 2,2 kΩ, isso dá uma variação de 4,4 V. Pré-amplificadores de microfone, rádios e amplificadores de áudio funcionam com esse princípio. O circuito mais comum é o amplificador emissor comum: um divisor de tensão coloca a base no meio da região ativa, um resistor no emissor (RE) mantém o circuito estável diante da temperatura e o ganho de tensão é aproximadamente RC / RE, cerca de 10 vezes com 4,7 kΩ e 470 Ω. Até os microfones de eletreto têm um transistor minúsculo (um JFET) que reforça o sinal. Em projetos com Arduino, normalmente se usam CIs prontos para amplificar sinais de sensores; veja O que é um amplificador operacional? para isso. O resto deste artigo foca no chaveamento, que é o que você mais vai precisar com Arduino.
Como ligar uma chave transistorizada ao Arduino
O circuito que você vai usar com mais frequência é uma chave do lado baixo com um transistor NPN. O lado positivo da carga (motor, bobina do relé, fita de LED) vai ao terminal positivo da fonte externa, e o lado negativo vai ao coletor do transistor. O emissor vai ao GND. O pino do Arduino se liga à base sempre através de um resistor; esse resistor limita tanto a corrente tirada do pino quanto a corrente de base. Um resistor de 10 kΩ entre a base e o GND impede que o transistor ligue sozinho enquanto o pino fica flutuando durante a energização ou um reset. Nessa montagem o transistor só abre e fecha o caminho da carga até o GND, então a carga pode funcionar com 12 V enquanto o Arduino funciona com 5 V.
| Ligação | Arduino Uno | ESP32 | Raspberry Pi Pico |
|---|---|---|---|
| Pino de controle (entrada do resistor de base) | D9 (PWM) ou D7 | GPIO 18 | GP15 |
| Resistor de pull-down da base ao GND | 10 kΩ | 10 kΩ | 10 kΩ |
| Emissor | GND | GND | GND |
| Coletor | Negativo da carga (−) | Negativo da carga (−) | Negativo da carga (−) |
| Positivo da carga (+) | + da fonte externa (ex.: 12 V) | + da fonte externa (ex.: 12 V) | VBUS (5 V) ou + da fonte externa |
| Negativo da fonte externa (−) | GND do Arduino (GND comum) | GND do ESP32 (GND comum) | GND do Pico (GND comum) |
Como calcular o resistor de base: hFE e saturação
Para escolher o resistor de base você precisa de duas coisas: a corrente que a carga consome (IC) e o hFE mínimo do datasheet do transistor. Mesmo dentro do mesmo modelo, o hFE varia muito de peça para peça e com a temperatura e a corrente; no BC547 ele vai de 110 a 800. Por isso você calcula com o valor mínimo, não com o típico, e multiplica o resultado por um fator de segurança de 2 a 10. As fórmulas são: IB = (IC / hFE) × fator de segurança e RB = (Vpino − VBE) / IB. Vpino é 5 V no Arduino Uno e 3,3 V no ESP32 e no Pico; VBE é cerca de 0,7 V em um transistor comum e cerca de 1,4 V em um Darlington como o TIP120. Um atalho comum é supor um hFE de 10 para a saturação (beta forçado); os datasheets especificam a tensão de saturação exatamente nessa condição.
- Descubra a corrente da carga: um relé de 5 V com bobina de 70 Ω consome 5 / 70 ≈ 71 mA, pela lei de Ohm. Você pode usar a ferramenta Lei de Ohm para o cálculo.
- Escolha o transistor: 71 mA está muito perto do limite de 100 mA do BC547; o 2N2222A, especificado para 600 mA, é a escolha mais segura.
- Calcule a corrente de base: com um beta forçado de 10, IB = 71 / 10 ≈ 7 mA.
- Calcule o resistor: no Uno, RB = (5 − 0,7) / 0,007 ≈ 614 Ω; escolha o próximo valor comercial acima, 680 Ω, que dá uma corrente de base de cerca de 6,3 mA.
- Repita para placas de 3,3 V: em um ESP32 ou Pico, RB = (3,3 − 0,7) / 0,007 ≈ 371 Ω. O próximo valor comercial, 390 Ω, ou o mais comum 470 Ω (cerca de 5,5 mA) servem; isso ainda é um beta forçado de cerca de 13.
- Confira de novo: a corrente do pino deve ficar abaixo de 20 mA, a corrente nominal do transistor deve ser pelo menos 1,5 vez a corrente da carga e a potência dissipada (VCE(sat) × IC ≈ 0,2 V × 71 mA ≈ 14 mW) deve ficar bem abaixo do limite do encapsulamento.
| Carga (corrente) | Transistor sugerido | Arduino Uno (5 V) | ESP32 / Pico (3,3 V) |
|---|---|---|---|
| Grupo de LEDs, buzzer (20–50 mA) | BC547, S8050 | 2,2 kΩ (≈2 mA) | 1,2 kΩ (≈2,2 mA) |
| Bobina de relé de 5 V (70–90 mA) | 2N2222A, BC337, S8050 | 680 Ω (≈6,3 mA) | 470 Ω (≈5,5 mA) |
| Motor CC pequeno, fita de LED curta (0,3–1 A) | TIP120 | 1 kΩ (≈3,6 mA) | 470 Ω (≈4 mA) |
| Acima de 1,5 A (motor grande, fita de LED longa) | MOSFET de nível lógico | IRLZ44N; 220 Ω no gate, 10 kΩ do gate ao GND | IRLB8721; 220 Ω no gate, 10 kΩ do gate ao GND |
BC547, 2N2222A e TIP120: transistores populares comparados
| Modelo | Tipo / encapsulamento | VCEO | IC contínua | hFE | Ordem dos pinos | Uso típico |
|---|---|---|---|---|---|---|
| BC547 | NPN / TO-92 | 45 V | 100 mA | 110–800 (grupos A, B, C) | C-B-E | LEDs, buzzers, chaveamento de sinais |
| BC557 | PNP / TO-92 | 45 V | 100 mA | 125–800 | C-B-E | Par PNP do BC547, chaveamento do lado alto |
| S8050 | NPN / TO-92 | 25 V | 500 mA | 85–300 (conforme o grupo) | E-B-C | Kits iniciantes, módulos relé |
| 2N2222A | NPN / TO-92 | 40 V | 600 mA | 100–300 (a 150 mA) | E-B-C | Relés, motores pequenos, ventoinhas |
| BC337 | NPN / TO-92 | 45 V | 800 mA | 100–630 | C-B-E | Relés, grupos de LEDs, motores de vibração |
| TIP120 | NPN Darlington / TO-220 | 60 V | 5 A | No mínimo 1000 | B-C-E | Motores CC, fitas de LED, solenoides |
A ordem dos pinos é lida da esquerda para a direita, com a face plana impressa virada para você e os terminais para baixo. Atenção: o BC547 e o 2N2222A têm ordens opostas (C-B-E e E-B-C), então, se trocar um pelo outro, você precisa inverter coletor e emissor. Os 2N2222 em cápsula metálica (TO-18) e as cópias de outros fabricantes podem usar outra ordem; na dúvida, confira com um multímetro. O TIP120 é um transistor Darlington: ele tem dois transistores em cascata, por isso o ganho é de no mínimo 1000 e ele pode ser acionado direto por um pino do Arduino através de um resistor de 1 kΩ. O preço é uma queda de 1–2 V sobre ele e o calor que vem junto: a 1 A ele dissipa cerca de 1 W, e um encapsulamento TO-220 sem dissipador sobe cerca de 60 °C acima da temperatura ambiente. As placas de driver prontas também são feitas de transistores: a placa ULN2003 do motor de passo 28BYJ-48 tem sete Darlingtons, e o módulo L298N tem duas pontes H feitas de transistores.
Como acionar um motor CC com Arduino: TIP120 e diodo de roda livre
Agora vamos ajustar a velocidade de um pequeno motor CC de 6–12 V com um potenciômetro. O pino PWM 9 do Arduino vai à base do TIP120 através de um resistor de 1 kΩ, e o motor fica entre o positivo da fonte externa e o coletor do TIP120; o emissor vai ao GND. Os terminais externos do potenciômetro vão ao 5V e ao GND, e o cursor vai ao A0. Um diodo de roda livre (1N4007, ou o mais rápido 1N5819) vai em paralelo com o motor, invertido: a ponta do cátodo, com a faixa, fica virada para o positivo da alimentação, e a outra ponta para o coletor. O sinal PWM liga e desliga o transistor centenas de vezes por segundo, e o motor gira mais devagar ou mais rápido conforme a tensão média.
1// TIP120 ile DC motor hız kontrolü / DC motor speed control with a TIP120
2const int MOTOR_PIN = 9; // PWM pini, 1 kΩ ile TIP120 beyzine / PWM pin, to the TIP120 base via 1 kΩ
3const int POT_PIN = A0; // potansiyometre orta ucu / potentiometer wiper
4
5void setup() {
6 pinMode(MOTOR_PIN, OUTPUT);
7 Serial.begin(9600);
8}
9
10void loop() {
11 int pot = analogRead(POT_PIN); // 0–1023
12 int speed = map(pot, 0, 1023, 0, 255); // PWM değerine çevir / convert to a PWM value
13 if (speed < 40) speed = 0; // çok düşükte motor yalnızca vızıldar / too low, the motor only hums
14 analogWrite(MOTOR_PIN, speed);
15 Serial.println(speed);
16 delay(50);
17}
Como acionar um relé: um relé de 5 V com um 2N2222A
Os módulos relé prontos já trazem este circuito: um transistor pequeno, um resistor de base e um diodo de roda livre. Se você estiver usando um relé de 5 V avulso, monte o mesmo circuito: a bobina do relé fica entre o 5V e o coletor do 2N2222A, um diodo 1N4007 vai invertido em paralelo com a bobina e o pino D7 se liga à base através de 680 Ω. O código abaixo aciona o relé quando você digita 1 no Monitor Serial e o solta quando você digita 0. Antes de chavear a tensão da rede pelos contatos do relé, leia sem falta as regras de segurança em O que é um módulo relé?.
1// 2N2222A ile 5 V röle sürme / Driving a 5 V relay with a 2N2222A
2const int RELAY_PIN = 7; // 680 Ω ile transistör beyzine / to the transistor base via 680 Ω
3
4void setup() {
5 pinMode(RELAY_PIN, OUTPUT);
6 digitalWrite(RELAY_PIN, LOW); // açılışta kapalı / off at startup
7 Serial.begin(9600);
8 Serial.println("1: röle açık / relay on, 0: röle kapalı / relay off");
9}
10
11void loop() {
12 if (Serial.available() > 0) {
13 char c = Serial.read();
14 if (c == '1') {
15 digitalWrite(RELAY_PIN, HIGH); // transistör doyumda, röle çeker / transistor saturated, relay pulls in
16 Serial.println("Röle açık / relay on");
17 } else if (c == '0') {
18 digitalWrite(RELAY_PIN, LOW); // transistör kesimde, röle bırakır / transistor cut off, relay releases
19 Serial.println("Röle kapalı / relay off");
20 }
21 }
22}Como usar transistores com ESP32 e Raspberry Pi Pico
Os pinos do ESP32 e do Pico fornecem 3,3 V, então você precisa calcular o resistor de base para 3,3 V; um resistor de 1 kΩ escolhido para 5 V dá a um TIP120 só 1,9 mA em 3,3 V. O exemplo de ESP32 abaixo acende e apaga suavemente uma fita de LED de 12 V com PWM no GPIO 18. Uma fita 5050 com 60 LEDs por metro consome cerca de 1,2 A por metro; para um pedaço de 1 m, um TIP120 com resistor de base de 470 Ω basta, mas não esqueça um pequeno dissipador. A fita de LED não tem bobina, então não precisa de diodo de roda livre. O código usa as funções ledcAttach e ledcWrite da versão 3.x do core Arduino do ESP32; a versão 2.x, mais antiga, usava ledcSetup e ledcAttachPin no lugar delas.
1// ESP32 ile 12 V LED şerit parlaklığı (TIP120) / 12 V LED strip brightness with ESP32 (TIP120)
2const int STRIP_PIN = 18; // 470 Ω ile TIP120 beyzine / to the TIP120 base via 470 Ω
3
4void setup() {
5 ledcAttach(STRIP_PIN, 1000, 8); // 1 kHz, 8 bit (0–255); çekirdek 3.x / core 3.x
6}
7
8void loop() {
9 for (int d = 0; d <= 255; d++) { // yavaşça aydınlan / fade in
10 ledcWrite(STRIP_PIN, d);
11 delay(10);
12 }
13 delay(1000);
14 for (int d = 255; d >= 0; d--) { // yavaşça karar / fade out
15 ledcWrite(STRIP_PIN, d);
16 delay(10);
17 }
18 delay(1000);
19}Acionar um transistor a partir de um Raspberry Pi Pico em MicroPython funciona do mesmo jeito. O código abaixo lê o sensor de temperatura interno do Pico; quando a temperatura chega a 32 °C, ele liga uma pequena ventoinha de 5 V através de um transistor no GP15 e a desliga quando cai para 29 °C. Usar dois limites separados (histerese) evita que a ventoinha fique ligando e desligando rapidamente em torno do limite. A ventoinha é alimentada pelo pino VBUS (os 5 V do USB); para uma ventoinha de cerca de 100 mA, um BC337 ou 2N2222A com resistor de 1 kΩ basta, e de novo um diodo vai em paralelo com a ventoinha. A temperatura do chip fica alguns graus acima da ambiente; em um projeto real, um sensor como o DS18B20 é mais preciso.
1# Pico yonga sıcaklığına göre fan / Fan controlled by the Pico's chip temperature
2from machine import Pin, ADC
3import time
4
5fan = Pin(15, Pin.OUT, value=0) # 1 kΩ ile transistör beyzine / to the transistor base via 1 kΩ
6sensor = ADC(4) # yonga içi sıcaklık sensörü / on-chip temperature sensor
7ON_C, OFF_C = 32, 29 # açma ve kapama eşikleri / switch-on and switch-off thresholds
8
9while True:
10 v = sensor.read_u16() * 3.3 / 65535
11 temp = 27 - (v - 0.706) / 0.001721 # RP2040 veri sayfası formülü / RP2040 datasheet formula
12 if temp >= ON_C:
13 fan.value(1) # transistör iletimde, fan döner / transistor on, fan spins
14 elif temp <= OFF_C:
15 fan.value(0) # transistör kesimde, fan durur / transistor off, fan stops
16 print("{:.1f} C, fan: {}".format(temp, fan.value()))
17 time.sleep(1)Como identificar os terminais do transistor com um multímetro
- Tire o transistor do circuito e coloque o multímetro no modo teste de diodo (o símbolo do diodo).
- Segure a ponta de prova vermelha em um terminal e toque os outros dois, um de cada vez, com a ponta preta. Se as duas leituras ficarem entre 0,5 e 0,8 V, o terminal sob a ponta vermelha é a base e o transistor é NPN.
- Se não encontrar esse terminal, inverta as pontas: se, com a ponta preta fixa em um terminal, os outros dois lerem 0,5–0,8 V, esse terminal é a base e o transistor é PNP.
- Compare as leituras entre a base e os outros dois terminais: a um pouco mais alta (por exemplo 0,65 V contra 0,62 V) é o emissor, a mais baixa é o coletor. Se a diferença for mínima, confie no datasheet.
- Entre coletor e emissor você deve ver OL (circuito aberto) nos dois sentidos; o sentido inverso das leituras da base também deve mostrar OL.
- Se o seu multímetro tiver um soquete de hFE, encaixe o transistor no slot NPN ou PNP usando a ordem de pinos que você encontrou; o display mostra o ganho de corrente.
Em transistores Darlington como o TIP120, há duas junções e resistores internos (cerca de 8 kΩ e 120 Ω) entre a base e o emissor, então as leituras não seguem essa regra; confirme a ordem dos pinos no datasheet. Se você vir uma leitura perto de zero entre coletor e emissor nos dois sentidos, o transistor está em curto; se a base não mostrar leitura para os outros terminais em nenhum sentido, uma junção interna se abriu. Para conhecer as escalas do multímetro em detalhe, dê uma olhada em Como usar um multímetro.
Ideias de projetos com transistores
- Luz noturna automática: quando um LDR detectar escuridão, acenda uma fita de LED de 12 V com um TIP120.
- Ventoinha inteligente: conforme a temperatura medida por um DHT11 sobe, aumente a velocidade da ventoinha com PWM e um transistor.
- Irrigação automática: quando um sensor de umidade do solo detectar terra seca, ligue uma pequena bomba d'água através de um transistor.
- Fechadura com senha: quando a senha certa for digitada em um teclado matricial, abra uma fechadura solenoide de 12 V com um TIP120 e um diodo.
- Alerta silencioso: acione um motor de vibração com um BC337 para montar um dispositivo de notificação vestível.
- Alarme alto: quando um sensor PIR detectar movimento, faça soar, através de um transistor, uma sirene de 12 V que um pino do Arduino não conseguiria acionar sozinho.
Erros comuns e como corrigi-los
| Sintoma | Causa provável | Solução |
|---|---|---|
| A carga não funciona de jeito nenhum | Sem GND comum ou terminais invertidos | Una os negativos das fontes e confira a ordem dos pinos |
| O transistor esquenta muito | Ele não satura (pouca corrente de base) ou a corrente nominal foi excedida | Diminua o resistor de base, escolha um transistor mais forte ou um MOSFET |
| O Arduino reinicia ou o transistor queima quando o motor para | Sem diodo de roda livre | Coloque um 1N4007 ou 1N5819 invertido em paralelo com a carga, faixa no lado positivo |
| A carga funciona mesmo com o pino em LOW | Transistor queimado (curto C-E) ou base flutuando | Teste o transistor com um multímetro e adicione 10 kΩ da base ao GND |
| O transistor PNP nunca desliga | O emissor está em 12 V, mas o pino só chega a 5 V | Acione a base do PNP com um NPN ou chaveie a carga no lado baixo com um NPN |
| O pino do Arduino foi danificado | O pino foi ligado direto à base, sem resistor | Use sempre um resistor de base e mantenha a corrente do pino abaixo de 20 mA |
| A carga funciona fraca com ESP32 ou Pico | O resistor foi escolhido para 5 V, ou o MOSFET não liga totalmente com 3,3 V | Calcule o resistor de base para 3,3 V e escolha um MOSFET compatível com 3,3 V |
O transistor é a chave para controlar cargas grandes com um sinal pequeno, ou seja, para conectar o seu Arduino ao mundo real. Quando o cálculo do resistor de base, o GND comum e o diodo de roda livre fazem sentido, motores, bombas e fitas de LED deixam de assustar. No app BlueGrays você pode explorar passo a passo, com esquemas do circuito e código, projetos como luz noturna com LDR, buzzer, LED com fade por PWM, motor de passo e controle de lâmpada da rede elétrica.
Perguntas frequentes
Para que serve um transistor?
Um transistor faz duas funções básicas: funciona como chave eletrônica, que liga e desliga uma corrente grande com uma pequena, e como amplificador, que deixa um sinal fraco mais forte. Em projetos com Arduino, ele é usado principalmente para controlar cargas que um pino não consegue acionar sozinho, como motores, relés, ventoinhas e fitas de LED.
Qual é a diferença entre transistores NPN e PNP?
Em um transistor NPN o emissor vai ao GND e ele conduz quando a base fica cerca de 0,7 V acima do emissor; a corrente flui do coletor para o emissor. Em um PNP o emissor vai ao positivo da alimentação e ele liga quando a base é puxada 0,7 V abaixo do emissor. O NPN é mais fácil para chavear uma carga no lado do GND com um Arduino.
Como identificar os pinos de um transistor?
O jeito mais confiável é o datasheet: com a face impressa virada para você, da esquerda para a direita a ordem é C-B-E no BC547, E-B-C no 2N2222A e B-C-E no TIP120. Sem datasheet, você encontra a base e o tipo com o modo de diodo do multímetro e distingue o emissor porque a leitura base-emissor é um pouco mais alta que a base-coletor.
Qual transistor devo usar com Arduino?
Para cargas de até 50 mA, como LEDs e buzzers, um BC547 basta. Para bobinas de relé de 5 V (70–90 mA) e motores pequenos de até 500 mA, use um 2N2222A ou BC337, e para motores e fitas de LED de cerca de 1 A use um TIP120. Em correntes maiores, um MOSFET de nível lógico trabalha mais frio.
Qual valor de resistor de base devo usar em um transistor?
O resistor de base é calculado com RB = (Vpino − VBE) / IB; em transistores comuns, um décimo da corrente da carga é um bom ponto de partida para IB. Com um Arduino Uno, os valores típicos são 680 Ω para um relé de 5 V, 2,2 kΩ para cargas de 20–50 mA, como LEDs e buzzers, e 1 kΩ para um TIP120.
Por que o meu transistor esquenta?
O calor que um transistor gera é P = VCE × IC. Se a corrente de base for baixa demais, o transistor não satura, sobram volts sobre ele e ele esquenta; o mesmo acontece se a corrente da carga passar da nominal. Diminua o resistor de base, escolha um transistor mais forte ou um MOSFET e use dissipador acima de 1 A.
Projetos para montar depois desta leitura
Ver todos os projetos
Luz noturna com LDR
Uma pequena luz noturna que acende sozinha quando escurece e apaga ao amanhecer. Um sensor de luz mede a luminosidade do quarto, e o Arduino acende o LED quando está escuro o suficiente e apaga quando

Uso do buzzer
Já se perguntou como uma campainha ou um alarme produz som? O Arduino faz um pequeno buzzer emitir bipes em intervalos curtos: bipe, pausa, bipe, pausa. Você vê como a eletricidade produz som e dá o p

Variação gradual do brilho do LED com PWM no ESP32
Varie suavemente o brilho do LED de 0 ao máximo e do máximo a 0. Controlamos o PWM com analogWrite(), como no Arduino. A mesma sintaxe funciona sem problemas com ESP32 Arduino Core 3.0+. Basta definir o pino e usar pinMode e analogWrite.

Raspberry Pi Pico: variação de brilho do LED com PWM (efeito de respiração)
O LED não só pisca — ele respira! Com o PWM (modulação por largura de pulso) do Raspberry Pi Pico, o brilho do LED aumenta e diminui lentamente, como a luz de um MacBook em repouso. Aprenda a usar a classe machine.PWM, duty_u16() (brilho de 16 bits, de 0–65535), frequência PWM (freq(1000) — 1.000 ciclos de ligar/desligar por segundo, sem cintilação visível), laços com passos usando range() (crescentes e decrescentes) e saída semelhante à analógica em um pino digital.

Uso do motor de passo
Um motor que gira passo a passo, exatamente o quanto você quer, como o ponteiro de um relógio. Por meio de uma placa de acionamento, o Arduino gira um pequeno motor de passo uma volta completa em uma

Acender uma lâmpada de 220V com botão de pressão
Enquanto você mantém o botão pressionado, uma lâmpada de 220 volts fica acesa e apaga assim que você solta. O sinal fraco do Arduino não consegue acender a lâmpada diretamente, então um relé, que é um

Estação de irrigação inteligente
Um jardineiro que rega suas plantas sozinho para que elas não sequem enquanto você está de férias. Um sensor de umidade do solo mede o quanto a terra está úmida; quando ela seca, o Arduino aciona a bo

Iluminação inteligente com ESP32 (PIR + LDR + relé + OLED)
Transforme a iluminação do corredor, banheiro ou despensa em iluminação inteligente com ESP32! Com um sensor de movimento PIR, um sensor de luz LDR e um módulo relé, montamos o cenário clássico de "acender a luz ao detectar movimento no escuro" — se o ambiente já estiver claro, o movimento NÃO aciona a luz, economizando energia durante o dia. A luz fica acesa por 30 segundos; se o movimento continuar, o temporizador reinicia e a luz permanece acesa por mais tempo.
Mais artigos
App BlueGrays
Monte este circuito passo a passo pelo celular
Esquema do circuito, código e lista de componentes em uma só tela. Mais de 200 projetos com Arduino, ESP32 e Pico prontos para montar.
Escaneie com seu celular
Aponte a câmera para o código para abrir a loja de aplicativos do seu celular.
ou abrir a loja

