Fundamentos · 15 min de leitura

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.

Transistor NPN S8050 e seu símbolo no circuito
Transistor NPN S8050 em encapsulamento TO-92: com a face impressa virada para você, os terminais são emissor (1), base (2) e coletor (3), da esquerda para a direita. No símbolo NPN à direita, a seta no emissor aponta para fora.

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.

TerminalSímboloFunçãoOnde vai em uma chave NPN
BaseBTerminal de controle; a corrente pequena entra aquiNo pino do Arduino, através de um resistor
ColetorCA corrente da carga entra aquiNo lado negativo da carga
EmissorEA 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ísticaNPNPNP
Seta no símboloAponta para fora do emissorAponta para dentro do emissor
O emissor vai aoGND (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 principalDo coletor para o emissorDo emissor para o coletor
Posição da cargaEntre o + e o coletor (lado baixo)Entre o coletor e o GND (lado alto)
Modelos comunsBC547, S8050, 2N2222A, BC337, TIP120BC557, S8550, 2N2907A, BC327, TIP125

Regiões de operação: corte, ativa e saturação

RegiãoCondiçãoCorrente de coletorVCEUsada para
CorteVBE < ≈0,6 V, sem corrente de baseQuase zeroPerto da tensão de alimentaçãoChave DESLIGADA
Região ativaVBE ≈ 0,65–0,7 V, corrente de base moderadaIC = hFE × IBAlgum valor intermediárioAmplificador
SaturaçãoIB bem maior que IC / hFELimitada pela carga e pela alimentação0,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çãoArduino UnoESP32Raspberry Pi Pico
Pino de controle (entrada do resistor de base)D9 (PWM) ou D7GPIO 18GP15
Resistor de pull-down da base ao GND10 kΩ10 kΩ10 kΩ
EmissorGNDGNDGND
ColetorNegativo 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)
O erro mais comum é esquecer o GND comum: se o negativo da fonte externa não estiver ligado ao GND do Arduino, a corrente de base não consegue fechar o circuito e a carga simplesmente não funciona. O segundo erro é ligar o pino à base sem resistor; como a junção base-emissor se comporta como um diodo, o pino fica quase em curto e tanto o pino quanto o transistor podem ser danificados. Não alimente um motor ou uma fita de LED pelo pino 5V do Arduino; use uma fonte externa.

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.

  1. 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.
  2. 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.
  3. Calcule a corrente de base: com um beta forçado de 10, IB = 71 / 10 ≈ 7 mA.
  4. 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.
  5. 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.
  6. 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 sugeridoArduino Uno (5 V)ESP32 / Pico (3,3 V)
Grupo de LEDs, buzzer (20–50 mA)BC547, S80502,2 kΩ (≈2 mA)1,2 kΩ (≈2,2 mA)
Bobina de relé de 5 V (70–90 mA)2N2222A, BC337, S8050680 Ω (≈6,3 mA)470 Ω (≈5,5 mA)
Motor CC pequeno, fita de LED curta (0,3–1 A)TIP1201 kΩ (≈3,6 mA)470 Ω (≈4 mA)
Acima de 1,5 A (motor grande, fita de LED longa)MOSFET de nível lógicoIRLZ44N; 220 Ω no gate, 10 kΩ do gate ao GNDIRLB8721; 220 Ω no gate, 10 kΩ do gate ao GND
Esses valores são um ponto de partida; confira a corrente nominal e a ordem dos pinos do seu transistor na ferramenta Pinagem de transistores. Com o circuito montado, medir a tensão coletor-emissor com um multímetro é a melhor verificação: se ela estiver abaixo de 0,3 V em um transistor comum ou abaixo de 1,5 V em um Darlington, o transistor está saturado.

BC547, 2N2222A e TIP120: transistores populares comparados

ModeloTipo / encapsulamentoVCEOIC contínuahFEOrdem dos pinosUso típico
BC547NPN / TO-9245 V100 mA110–800 (grupos A, B, C)C-B-ELEDs, buzzers, chaveamento de sinais
BC557PNP / TO-9245 V100 mA125–800C-B-EPar PNP do BC547, chaveamento do lado alto
S8050NPN / TO-9225 V500 mA85–300 (conforme o grupo)E-B-CKits iniciantes, módulos relé
2N2222ANPN / TO-9240 V600 mA100–300 (a 150 mA)E-B-CRelés, motores pequenos, ventoinhas
BC337NPN / TO-9245 V800 mA100–630C-B-ERelés, grupos de LEDs, motores de vibração
TIP120NPN Darlington / TO-22060 V5 ANo mínimo 1000B-C-EMotores 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.

C++ (Arduino IDE)
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}
Diodo retificador usado como diodo de roda livre
Diodo retificador em encapsulamento DO-41 (tipo 1N4007): ligado invertido em paralelo com cargas indutivas, ele protege o transistor do pico de tensão no desligamento. A ponta do cátodo é marcada pela faixa no corpo.
Cargas indutivas como motores, relés, solenoides e ventoinhas liberam a energia guardada na bobina como um pico de tensão reversa no instante em que a corrente é cortada (V = L × di/dt). Esse pico pode chegar a dezenas ou até centenas de volts; sem diodo, ele perfura o transistor ou faz o Arduino reiniciar. Se você colocar o diodo ao contrário, a fonte entra em curto assim que o transistor liga. Cargas sem bobina, como fitas de LED e resistores, não precisam de diodo. Para saber mais sobre os tipos de diodo, leia O que é um diodo?.

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é?.

C++ (Arduino IDE)
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.

C++ (Arduino IDE)
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.

MicroPython
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

  1. Tire o transistor do circuito e coloque o multímetro no modo teste de diodo (o símbolo do diodo).
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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

SintomaCausa provávelSolução
A carga não funciona de jeito nenhumSem GND comum ou terminais invertidosUna os negativos das fontes e confira a ordem dos pinos
O transistor esquenta muitoEle não satura (pouca corrente de base) ou a corrente nominal foi excedidaDiminua o resistor de base, escolha um transistor mais forte ou um MOSFET
O Arduino reinicia ou o transistor queima quando o motor paraSem diodo de roda livreColoque um 1N4007 ou 1N5819 invertido em paralelo com a carga, faixa no lado positivo
A carga funciona mesmo com o pino em LOWTransistor queimado (curto C-E) ou base flutuandoTeste o transistor com um multímetro e adicione 10 kΩ da base ao GND
O transistor PNP nunca desligaO emissor está em 12 V, mas o pino só chega a 5 VAcione a base do PNP com um NPN ou chaveie a carga no lado baixo com um NPN
O pino do Arduino foi danificadoO pino foi ligado direto à base, sem resistorUse sempre um resistor de base e mantenha a corrente do pino abaixo de 20 mA
A carga funciona fraca com ESP32 ou PicoO resistor foi escolhido para 5 V, ou o MOSFET não liga totalmente com 3,3 VCalcule o resistor de base para 3,3 V e escolha um MOSFET compatível com 3,3 V
Se a carga passar de 1,5 A, ou se o transistor esquentar mesmo com dissipador, um MOSFET de nível lógico trabalha bem mais frio, porque é acionado por tensão em vez de corrente e quase não derruba tensão. Para a ligação e a escolha, leia Como usar um MOSFET com Arduino.

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.

Ver todos os projetos
Luz noturna com LDR
#12Iniciante

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

4.8(102)
205
Uso do buzzer
#13Iniciante

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

4.7(89)
161
Variação gradual do brilho do LED com PWM no ESP32
#110Iniciante

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.

4.8(36)
54
Raspberry Pi Pico: variação de brilho do LED com PWM (efeito de respiração)
#160Iniciante

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.

0.0(0)
4
Uso do motor de passo
#67Intermediário
Premium

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

4.5(31)
42
Acender uma lâmpada de 220V com botão de pressão
#19Avançado
Premium

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

4.4(30)
38
Estação de irrigação inteligente
#83Avançado
Premium

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

5.0(42)
57
Iluminação inteligente com ESP32 (PIR + LDR + relé + OLED)
#141Avançado
Premium

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.

4.3(6)
11