Dasar · 12 mnt baca

Apa Itu Transistor? Cara Kerja, NPN vs PNP, dan Pemakaiannya dengan Arduino

Apa itu transistor dan bagaimana cara kerjanya? NPN vs PNP, menghitung resistor basis, perbandingan BC547, 2N2222A, dan TIP120, serta rangkaian motor dan relay dengan Arduino.

Transistor adalah komponen semikonduktor berkaki tiga yang memakai arus kecil untuk mengendalikan arus yang jauh lebih besar. Ada dua tugas dasarnya: menyalakan dan mematikan beban seperti saklar elektronik, dan bekerja sebagai penguat yang membuat sinyal lemah menjadi lebih kuat. Pin Arduino hanya aman memberi sekitar 20 mA; itu cukup untuk LED, tapi tidak untuk motor, relay, atau LED strip 12 V. Di sinilah transistor berperan: dengan beberapa miliampere dari pin, transistor bisa mengendalikan ratusan miliampere bahkan beberapa ampere.

Transistor ditemukan pada tahun 1947 di Bell Labs oleh John Bardeen, Walter Brattain, dan William Shockley; komponen ini menggantikan tabung vakum dan membuat komputer muat di saku kita. Sekarang prosesor di ponselmu berisi miliaran transistor mungil, dan ATmega328P yang menjadi jantung Arduino juga tersusun dari transistor dalam jumlah sangat besar. Di artikel ini kamu akan mempelajari perbedaan NPN dan PNP, fungsi basis, kolektor, dan emitor, cara menghitung resistor basis, perbandingan BC547, 2N2222A, dan TIP120, cara mengendalikan motor, relay, dan LED strip dengan Arduino, ESP32, dan Raspberry Pi Pico, serta cara mengenali kaki-kakinya dengan multimeter.

Transistor NPN S8050 dan simbol rangkaiannya
Transistor NPN S8050 dalam kemasan TO-92: dengan sisi bertulisan menghadap ke arahmu, kakinya dari kiri ke kanan adalah emitor (1), basis (2), dan kolektor (3). Pada simbol NPN di sebelah kanan, panah di emitor mengarah ke luar.

Apa itu transistor dan bagaimana cara kerjanya?

Kamu bisa membayangkan transistor seperti keran air: memutar gagangnya hanya butuh tenaga kecil, tapi air yang mengalir di pipa banyak. Pada transistor, gagangnya adalah arus basis, dan air di pipa adalah arus utama yang mengalir dari kolektor ke emitor. Perbandingan keduanya adalah penguatan arus transistor, yang di datasheet ditulis sebagai hFE atau β (beta): IC = hFE × IB. Contohnya, jika kamu memberi 0,1 mA ke basis BC547 dengan hFE 200, arus sampai 20 mA bisa mengalir lewat kolektor. Agar transistor silikon mulai menghantar, harus ada sekitar 0,6–0,7 V antara basis dan emitor; ini adalah tegangan ambang dari sambungannya yang mirip dioda. Arus yang keluar dari emitor adalah jumlah keduanya: IE = IC + IB.

KakiSimbolFungsiDisambungkan ke mana pada saklar NPN
BasisB (basis)Terminal kendali; arus kecil masuk di siniKe pin Arduino lewat resistor
KolektorC (kolektor)Arus beban masuk di siniKe sisi negatif beban
EmitorE (emitor)Arus total keluar di sini (IE = IC + IB)Ke GND

Transistor NPN vs PNP

Transistor sambungan bipolar (BJT) terbuat dari tiga lapisan semikonduktor. Pada transistor NPN, lapisan P tipis di tengah adalah basis; ketika basis sekitar 0,7 V lebih positif daripada emitor, arus mengalir dari kolektor ke emitor. Pada transistor PNP semuanya terbalik: emitor tersambung ke catu daya positif, dan ketika basis ditarik sekitar 0,7 V di bawah emitor, arus mengalir dari emitor ke kolektor. Cara mudah mengingat simbolnya adalah panah di emitor: pada NPN mengarah keluar, pada PNP mengarah ke dalam. NPN jauh lebih umum di proyek Arduino, karena emitor langsung ke GND dan transistor menyala ketika pin menjadi HIGH; beban berada di antara catu daya positif dan kolektor. Cara ini disebut low-side switching (saklar di sisi bawah).

FiturNPNPNP
Panah pada simbolMengarah keluar dari emitorMengarah masuk ke emitor
Emitor tersambung keGND (negatif)Catu daya positif (+)
Agar menyala, basis berada≈0,7 V di atas emitor (pin HIGH)≈0,7 V di bawah emitor (pin LOW)
Arah arus utamaKolektor ke emitorEmitor ke kolektor
Posisi bebanAntara + dan kolektor (sisi bawah)Antara kolektor dan GND (sisi atas)
Komponen yang umumBC547, S8050, 2N2222A, BC337, TIP120BC557, S8550, 2N2907A, BC327, TIP125

Daerah kerja: cut-off, aktif, dan saturasi

DaerahKondisiArus kolektorVCEDipakai untuk
Cut-offVBE < ≈0,6 V, tidak ada arus basisHampir nolMendekati tegangan catuSaklar MATI
Daerah aktifVBE ≈ 0,65–0,7 V, arus basis sedangIC = hFE × IB (penguatan)Di antara keduanyaPenguat
SaturasiIB jauh lebih besar dari IC / hFEDibatasi oleh beban dan catu daya0,1–0,3 V (0,8–2 V untuk Darlington)Saklar NYALA

Ketika kamu memakai transistor sebagai saklar, kamu hanya menjaganya di dua ujung: mati total (cut-off) atau nyala penuh (saturasi). Daerah aktif di antaranya untuk penguat dan tidak diinginkan pada saklar, karena daya yang dibuang transistor adalah P = VCE × IC. 2N2222A yang tersaturasi hanya menjatuhkan paling banyak 0,3 V pada 150 mA dan menghasilkan panas cuma 45 mW; jika ia tetap setengah menyala pada arus yang sama dan menjatuhkan 3 V, dayanya menjadi 450 mW. Itu sangat dekat dengan batas 625 mW kemasan TO-92, dan transistor jadi terlalu panas untuk disentuh. Karena itu rangkaian saklar selalu memberi arus basis yang cukup untuk mendorong transistor benar-benar ke saturasi.

Transistor sebagai penguat

Ketika transistor dijaga di daerah aktif, perubahan kecil di basis diperbesar menjadi perubahan yang lebih besar di kolektor. Misalnya, pada transistor dengan hFE 200, kenaikan arus basis 10 µA menaikkan arus kolektor sebesar 2 mA; pada resistor kolektor 2,2 kΩ itu berarti perubahan tegangan 4,4 V. Preamp mikrofon, radio, dan penguat audio bekerja dengan prinsip ini. Rangkaian yang paling umum adalah penguat common-emitter: pembagi tegangan menempatkan basis di tengah daerah aktif, resistor di emitor (RE) menjaga rangkaian tetap stabil terhadap suhu, dan penguatan tegangannya kira-kira RC / RE, sekitar 10 kali dengan 4,7 kΩ dan 470 Ω. Bahkan mikrofon electret berisi transistor mungil (JFET) yang menguatkan sinyal. Di proyek Arduino, biasanya IC siap pakai yang dipakai untuk menguatkan sinyal sensor; untuk itu lihat Apa Itu Op-Amp?. Sisa artikel ini berfokus pada switching (penyaklaran), yang paling sering kamu butuhkan dengan Arduino.

Menghubungkan saklar transistor ke Arduino

Rangkaian yang paling sering kamu pakai adalah saklar sisi bawah dengan transistor NPN. Sisi positif beban (motor, kumparan relay, LED strip) ke terminal positif catu daya eksternal, dan sisi negatifnya ke kolektor transistor. Emitor ke GND. Pin Arduino tersambung ke basis selalu lewat resistor; resistor ini membatasi arus yang ditarik dari pin sekaligus arus basis. Resistor 10 kΩ antara basis dan GND mencegah transistor menyala sendiri ketika pin mengambang selama menyala awal atau reset. Pada susunan ini transistor hanya membuka dan menutup jalur beban ke GND, sehingga beban bisa bekerja di 12 V sementara Arduino bekerja di 5 V.

SambunganArduino UnoESP32Raspberry Pi Pico
Pin kendali (masukan resistor basis)D9 (PWM) atau D7GPIO 18GP15
Resistor pull-down dari basis ke GND10 kΩ10 kΩ10 kΩ
EmitorGNDGNDGND
KolektorNegatif beban (−)Negatif beban (−)Negatif beban (−)
Positif beban (+)+ catu daya eksternal (mis. 12 V)+ catu daya eksternal (mis. 12 V)VBUS (5 V) atau + catu daya eksternal
Negatif catu daya eksternal (−)GND Arduino (ground bersama)GND ESP32 (ground bersama)GND Pico (ground bersama)
Kesalahan yang paling umum adalah lupa GND bersama: jika negatif catu daya eksternal tidak tersambung ke GND Arduino, arus basis tidak bisa menutup rangkaiannya dan beban sama sekali tidak bekerja. Kesalahan kedua adalah menyambungkan pin ke basis tanpa resistor; karena sambungan basis-emitor berperilaku seperti dioda, pin hampir terhubung singkat dan pin maupun transistor bisa rusak. Jangan beri daya motor atau LED strip dari pin 5V Arduino; pakai adaptor eksternal.

Menghitung resistor basis: hFE dan saturasi

Untuk memilih resistor basis kamu butuh dua hal: arus yang ditarik beban (IC) dan hFE minimum dari datasheet transistor. Bahkan untuk model yang sama, hFE sangat bervariasi antar komponen serta terhadap suhu dan arus; untuk BC547 rentangnya 110 sampai 800. Karena itu kamu menghitung dengan nilai minimum, bukan nilai tipikal, lalu mengalikan hasilnya dengan faktor keamanan 2 sampai 10. Rumusnya: IB = (IC / hFE) × faktor keamanan dan RB = (Vpin − VBE) / IB. Vpin adalah 5 V di Arduino Uno dan 3,3 V di ESP32 dan Pico; VBE sekitar 0,7 V untuk transistor biasa dan sekitar 1,4 V untuk Darlington seperti TIP120. Jalan pintas yang umum adalah menganggap hFE 10 untuk saturasi (forced beta); datasheet menyebut tegangan saturasi tepat dengan kondisi ini.

  1. Cari arus beban: Relay 5 V dengan kumparan 70 Ω menarik 5 / 70 ≈ 71 mA menurut hukum Ohm. Kamu bisa memakai alat Hukum Ohm untuk perhitungannya.
  2. Pilih transistor: 71 mA sangat dekat dengan batas 100 mA BC547; 2N2222A yang diberi rating 600 mA adalah pilihan yang lebih aman.
  3. Hitung arus basis: Dengan forced beta 10, IB = 71 / 10 ≈ 7 mA.
  4. Hitung resistornya: Di Uno, RB = (5 − 0,7) / 0,007 ≈ 614 Ω; pilih nilai standar berikutnya ke atas, 680 Ω, yang memberi arus basis sekitar 6,3 mA.
  5. Ulangi untuk board 3,3 V: Di ESP32 atau Pico, RB = (3,3 − 0,7) / 0,007 ≈ 371 Ω. Nilai standar berikutnya 390 Ω, atau 470 Ω yang lebih umum (sekitar 5,5 mA), sudah cukup; itu tetap forced beta sekitar 13.
  6. Periksa ulang: Arus pin harus di bawah 20 mA, rating arus transistor minimal 1,5 kali arus beban, dan daya yang dibuang (VCE(sat) × IC ≈ 0,2 V × 71 mA ≈ 14 mW) jauh di bawah batas kemasan.
Beban (arus)Transistor yang disarankanArduino Uno (5 V)ESP32 / Pico (3,3 V)
Kelompok LED, buzzer (20–50 mA)BC547, S80502,2 kΩ (≈2 mA)1,2 kΩ (≈2,2 mA)
Kumparan relay 5 V (70–90 mA)2N2222A, BC337, S8050680 Ω (≈6,3 mA)470 Ω (≈5,5 mA)
Motor DC kecil, LED strip pendek (0,3–1 A)TIP1201 kΩ (≈3,6 mA)470 Ω (≈4 mA)
Di atas 1,5 A (motor besar, LED strip panjang)MOSFET logic-levelIRLZ44N; 220 Ω ke gate, 10 kΩ dari gate ke GNDIRLB8721; 220 Ω ke gate, 10 kΩ dari gate ke GND
Nilai-nilai ini adalah titik awal; cek rating arus dan urutan pin transistormu di alat Pinout Transistor. Setelah rangkaian jadi, mengukur tegangan kolektor-emitor dengan multimeter adalah cara cek terbaik: jika di bawah 0,3 V untuk transistor biasa atau di bawah 1,5 V untuk Darlington, transistor sudah tersaturasi.

BC547, 2N2222A, dan TIP120: perbandingan transistor populer

ModelJenis / kemasanVCEOIC kontinuhFEUrutan pinPemakaian umum
BC547NPN / TO-9245 V100 mA110–800 (grup A, B, C)C-B-ELED, buzzer, penyaklaran sinyal
BC557PNP / TO-9245 V100 mA125–800C-B-EPasangan PNP dari BC547, saklar sisi atas
S8050NPN / TO-9225 V500 mA85–300 (tergantung grup)E-B-CStarter kit, modul relay
2N2222ANPN / TO-9240 V600 mA100–300 (pada 150 mA)E-B-CRelay, motor kecil, kipas
BC337NPN / TO-9245 V800 mA100–630C-B-ERelay, kelompok LED, motor getar
TIP120NPN Darlington / TO-22060 V5 AMinimal 1000B-C-EMotor DC, LED strip, solenoid

Urutan pin dibaca dari kiri ke kanan dengan sisi datar bertulisan menghadap ke arahmu dan kaki mengarah ke bawah. Hati-hati: BC547 dan 2N2222A punya urutan yang berlawanan (C-B-E dan E-B-C), jadi jika kamu mengganti yang satu dengan yang lain, kamu harus menukar kolektor dan emitor. 2N2222 berkemasan kaleng logam (TO-18) dan tiruan dari produsen berbeda bisa memakai urutan lain; jika ragu, cek dengan multimeter. TIP120 adalah transistor Darlington: di dalamnya ada dua transistor bertingkat, jadi penguatannya minimal 1000 dan bisa dikendalikan langsung dari pin Arduino lewat resistor 1 kΩ. Harganya adalah tegangan jatuh 1–2 V padanya dan panas yang menyertainya: pada 1 A ia membuang sekitar 1 W, dan kemasan TO-220 tanpa heatsink naik sekitar 60 °C di atas suhu ruangan. Board driver siap pakai juga tersusun dari transistor: board ULN2003 untuk motor stepper 28BYJ-48 berisi tujuh Darlington, dan modul L298N berisi dua H-bridge yang terbuat dari transistor.

Mengendalikan motor DC dengan Arduino: TIP120 dan dioda flyback

Sekarang mari atur kecepatan motor DC kecil 6–12 V dengan potensiometer. Pin PWM 9 Arduino tersambung ke basis TIP120 lewat resistor 1 kΩ, dan motor dipasang antara positif catu daya eksternal dan kolektor TIP120; emitor ke GND. Kaki luar potensiometer ke 5V dan GND, dan wiper-nya ke A0. Dioda flyback (1N4007, atau 1N5819 yang lebih cepat) dipasang terbalik melintasi motor: ujung katoda bergaris menghadap catu daya positif, ujung lainnya ke kolektor. Sinyal PWM menyalakan dan mematikan transistor ratusan kali per detik, dan motor berputar lebih lambat atau lebih cepat sesuai tegangan rata-ratanya.

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}
Dioda penyearah yang dipakai sebagai dioda flyback
Dioda penyearah dalam kemasan DO-41 (jenis 1N4007): dipasang terbalik melintasi beban induktif, dioda ini melindungi transistor dari lonjakan tegangan ketika dimatikan. Ujung katoda ditandai dengan gelang pada badannya.
Beban induktif seperti motor, relay, solenoid, dan kipas melepaskan energi yang tersimpan di kumparannya sebagai lonjakan tegangan balik tepat ketika arus diputus (V = L × di/dt). Lonjakan ini bisa mencapai puluhan bahkan ratusan volt; tanpa dioda, lonjakan ini menembus transistor atau membuat Arduino reset. Jika diodanya kamu pasang terbalik, catu daya terhubung singkat begitu transistor menyala. Beban tanpa kumparan, seperti LED strip dan resistor, tidak butuh dioda. Untuk mempelajari jenis-jenis dioda lebih lanjut, baca Apa Itu Dioda?.

Mengendalikan relay: relay 5 V dengan 2N2222A

Modul relay siap pakai sudah berisi rangkaian ini: transistor kecil, resistor basis, dan dioda flyback. Jika kamu memakai relay 5 V tanpa modul, kamu merakit rangkaian yang sama sendiri: kumparan relay antara 5V dan kolektor 2N2222A, dioda 1N4007 dipasang terbalik melintasi kumparan, dan pin D7 tersambung ke basis lewat 680 Ω. Kode di bawah menarik relay ketika kamu mengetik 1 di Serial Monitor dan melepaskannya ketika kamu mengetik 0. Sebelum menyaklarkan listrik PLN lewat kontak relay, pastikan kamu membaca aturan keamanan di Apa Itu Modul Relay?.

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}

Memakai transistor dengan ESP32 dan Raspberry Pi Pico

Pin ESP32 dan Pico mengeluarkan 3,3 V, jadi resistor basis perlu dihitung untuk 3,3 V; resistor 1 kΩ yang dipilih untuk 5 V hanya memberi TIP120 1,9 mA pada 3,3 V. Contoh ESP32 di bawah menerangkan dan meredupkan LED strip 12 V secara halus dengan PWM di GPIO 18. Strip 5050 dengan 60 LED per meter menarik sekitar 1,2 A per meter; untuk potongan 1 m, TIP120 dengan resistor basis 470 Ω sudah cukup, tapi jangan lupa heatsink kecil. LED strip tidak punya kumparan, jadi dioda flyback tidak diperlukan. Kodenya memakai fungsi ledcAttach dan ledcWrite dari versi 3.x core Arduino ESP32; versi 2.x yang lebih lama memakai ledcSetup dan ledcAttachPin.

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}

Mengendalikan transistor dari Raspberry Pi Pico dengan MicroPython caranya sama. Kode di bawah membaca sensor suhu internal di chip Pico; ketika suhu mencapai 32 °C, kipas kecil 5 V dinyalakan lewat transistor di GP15, dan dimatikan ketika suhu turun ke 29 °C. Memakai dua ambang terpisah (histeresis) mencegah kipas menyala-mati dengan cepat di sekitar batas. Kipas mendapat daya dari pin VBUS (5 V dari USB); untuk kipas yang menarik sekitar 100 mA, BC337 atau 2N2222A dengan resistor 1 kΩ sudah cukup, dan lagi-lagi dioda dipasang melintasi kipas. Suhu chip terbaca beberapa derajat di atas suhu sekitar; di proyek sungguhan, sensor seperti DS18B20 lebih akurat.

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)

Mengenali kaki transistor dengan multimeter

  1. Lepaskan transistor dari rangkaian dan atur multimeter ke mode tes dioda (simbol dioda).
  2. Tahan probe merah di satu kaki dan sentuh dua kaki lainnya bergantian dengan probe hitam. Jika kedua pembacaan antara 0,5 dan 0,8 V, kaki di bawah probe merah adalah basis dan transistornya NPN.
  3. Jika kamu tidak menemukan kaki seperti itu, tukar probenya: jika dengan probe hitam ditahan di satu kaki, dua kaki lainnya terbaca 0,5–0,8 V, kaki itu adalah basis dan transistornya PNP.
  4. Bandingkan pembacaan antara basis dan dua kaki lainnya: yang sedikit lebih tinggi (misalnya 0,65 V dibanding 0,62 V) adalah emitor, yang lebih rendah adalah kolektor. Jika selisihnya sangat kecil, percayai datasheet.
  5. Antara kolektor dan emitor kamu harus melihat OL (rangkaian terbuka) di kedua arah; arah kebalikan dari pembacaan basis juga harus menunjukkan OL.
  6. Jika multimetermu punya soket hFE, masukkan transistor ke slot NPN atau PNP sesuai urutan pin yang kamu temukan; layar menampilkan penguatan arusnya.

Pada transistor Darlington seperti TIP120, ada dua sambungan dan resistor internal (sekitar 8 kΩ dan 120 Ω) antara basis dan emitor, jadi pembacaannya tidak mengikuti aturan ini; pastikan urutan pin dari datasheet. Jika kamu melihat pembacaan mendekati nol antara kolektor dan emitor di kedua arah, transistornya terhubung singkat; jika basis tidak menunjukkan pembacaan ke kaki lain di arah mana pun, ada sambungan di dalamnya yang putus. Untuk mempelajari rentang multimeter secara rinci, lihat Cara Memakai Multimeter.

Ide proyek dengan transistor

  • Lampu tidur otomatis: ketika LDR mendeteksi gelap, nyalakan LED strip 12 V dengan TIP120.
  • Kipas pintar: ketika suhu yang diukur DHT11 naik, tambah kecepatan kipas dengan PWM dan transistor.
  • Penyiraman otomatis: ketika sensor kelembapan tanah mendeteksi tanah kering, jalankan pompa air kecil lewat transistor.
  • Kunci kode: ketika kode yang benar dimasukkan di keypad, buka kunci solenoid 12 V dengan TIP120 dan dioda.
  • Peringatan senyap: kendalikan motor getar dengan BC337 untuk membuat perangkat notifikasi yang bisa dipakai di badan.
  • Alarm keras: ketika sensor PIR mendeteksi gerakan, bunyikan sirene 12 V yang tidak bisa dikendalikan pin Arduino sendirian, lewat transistor.

Kesalahan umum dan cara memperbaikinya

GejalaKemungkinan penyebabSolusi
Beban sama sekali tidak bekerjaTidak ada GND bersama, atau kakinya terbalikSatukan negatif semua catu daya dan cek urutan pin
Transistor jadi sangat panasTidak tersaturasi (arus basis terlalu kecil) atau rating arusnya terlampauiKecilkan resistor basis, pilih transistor yang lebih kuat atau MOSFET
Arduino reset atau transistor rusak ketika motor berhentiTidak ada dioda flybackPasang 1N4007 atau 1N5819 terbalik melintasi beban, gelang ke sisi positif
Beban tetap jalan walaupun pin LOWTransistor jebol (C-E terhubung singkat) atau basis mengambangTes transistor dengan multimeter dan tambahkan 10 kΩ dari basis ke GND
Transistor PNP tidak pernah matiEmitor di 12 V tapi pin hanya bisa mencapai 5 VKendalikan basis PNP dengan NPN, atau saklarkan beban di sisi bawah dengan NPN
Pin Arduino rusakPin disambungkan langsung ke basis tanpa resistorSelalu pakai resistor basis dan jaga arus pin di bawah 20 mA
Beban bekerja lemah dengan ESP32 atau PicoResistor dipilih untuk 5 V, atau MOSFET tidak menyala penuh di 3,3 VHitung resistor basis untuk 3,3 V dan pilih MOSFET yang cocok untuk 3,3 V
Jika beban melebihi 1,5 A, atau transistor tetap panas walaupun sudah memakai heatsink, MOSFET logic-level bekerja jauh lebih dingin, karena ia dikendalikan oleh tegangan, bukan arus, dan hampir tidak menjatuhkan tegangan. Untuk pengkabelan dan pemilihannya, baca Memakai MOSFET dengan Arduino.

Transistor adalah kunci untuk mengendalikan beban besar dengan sinyal kecil, dengan kata lain untuk menghubungkan Arduino-mu ke dunia nyata. Begitu perhitungan resistor basis, GND bersama, dan dioda flyback sudah kamu pahami, motor, pompa, dan LED strip tidak lagi menakutkan. Di aplikasi BlueGrays kamu bisa menjelajahi proyek seperti lampu tidur dengan LDR, buzzer, LED fade dengan PWM, motor stepper, dan kendali lampu listrik PLN langkah demi langkah, lengkap dengan skema rangkaian dan kode.

Pertanyaan umum

Untuk apa transistor dipakai?

Transistor punya dua tugas dasar: bekerja sebagai saklar elektronik yang menyalakan dan mematikan arus besar dengan arus kecil, dan sebagai penguat yang membuat sinyal lemah menjadi lebih kuat. Di proyek Arduino, transistor paling sering dipakai untuk mengendalikan beban yang tidak bisa dikendalikan pin sendirian, seperti motor, relay, kipas, dan LED strip.

Apa perbedaan transistor NPN dan PNP?

Pada transistor NPN, emitor ke GND dan transistor menghantar ketika basis sekitar 0,7 V di atas emitor; arus mengalir dari kolektor ke emitor. Pada PNP, emitor ke catu daya positif dan transistor menyala ketika basis ditarik 0,7 V di bawah emitor. NPN lebih mudah untuk menyaklarkan beban di sisi GND dengan Arduino.

Bagaimana cara mengenali pin transistor?

Cara paling andal adalah datasheet: dengan sisi bertulisan menghadap ke arahmu, dari kiri ke kanan urutannya C-B-E untuk BC547, E-B-C untuk 2N2222A, dan B-C-E untuk TIP120. Tanpa datasheet, kamu bisa menemukan basis dan jenisnya dengan mode dioda multimeter, lalu membedakan emitor karena pembacaan basis-emitor sedikit lebih tinggi daripada pembacaan basis-kolektor.

Transistor mana yang sebaiknya kupakai dengan Arduino?

Untuk beban sampai 50 mA, seperti LED dan buzzer, BC547 sudah cukup. Untuk kumparan relay 5 V (70–90 mA) dan motor kecil sampai 500 mA, pakai 2N2222A atau BC337, dan untuk motor serta LED strip sekitar 1 A pakai TIP120. Pada arus yang lebih tinggi, MOSFET logic-level bekerja lebih dingin.

Berapa nilai resistor basis yang sebaiknya dipakai untuk transistor?

Resistor basis dihitung dengan RB = (Vpin − VBE) / IB; untuk transistor biasa, sepersepuluh arus beban adalah titik awal yang baik untuk IB. Dengan Arduino Uno, nilai yang umum adalah 680 Ω untuk relay 5 V, 2,2 kΩ untuk beban 20–50 mA seperti LED dan buzzer, dan 1 kΩ untuk TIP120.

Kenapa transistorku jadi panas?

Panas yang dihasilkan transistor adalah P = VCE × IC. Jika arus basis terlalu kecil, transistor tidak tersaturasi, masih ada tegangan beberapa volt padanya, dan ia memanas; hal yang sama terjadi jika arus beban melebihi ratingnya. Kecilkan resistor basis, pilih transistor yang lebih kuat atau MOSFET, dan pakai heatsink di atas 1 A.

Lihat semua proyek
Lampu Tidur dengan LDR
#12Pemula

Lampu Tidur dengan LDR

Lampu tidur kecil yang menyala sendiri ketika gelap dan mati ketika pagi tiba. Sensor cahaya mengukur seberapa terang ruangan, dan Arduino menyalakan LED ketika cukup gelap lalu mematikannya lagi keti

4.8(102)
205
Menggunakan Buzzer
#13Pemula

Menggunakan Buzzer

Pernah penasaran bagaimana bel pintu atau alarm mengeluarkan suaranya? Arduino membuat buzzer kecil berbunyi bip dengan jeda singkat: bip, jeda, bip, jeda. Kamu melihat bagaimana suara dibuat dengan l

4.7(89)
161
LED Fade dengan PWM ESP32
#110Pemula

LED Fade dengan PWM ESP32

Mengubah kecerahan LED secara halus dari 0 ke maksimum, dan dari maksimum ke 0. Kita mengendalikan PWM dengan analogWrite() seperti di Arduino; sintaks yang sama bekerja tanpa masalah di ESP32 Arduino Core 3.0+. Definisi pin + pinMode + analogWrite sudah cukup.

4.8(36)
54
LED Fade PWM Raspberry Pi Pico (Efek Bernapas)
#160Pemula

LED Fade PWM Raspberry Pi Pico (Efek Bernapas)

LED tidak lagi sekadar berkedip, ia bernapas! Dengan PWM (Pulse Width Modulation) Pico, kecerahan LED naik lalu turun perlahan, seperti lampu MacBook yang tidur. Pelajari kelas machine.PWM, duty_u16() (kecerahan 16-bit 0–65535), frekuensi PWM (freq(1000): 1000 siklus per detik, tanpa kedipan terlihat), loop range() bertahap, dan output mirip analog dari pin digital. PWM juga dipakai untuk warna RGB, motor, servo, dan buzzer.

0.0(0)
4
Menggunakan Motor Stepper
#67Menengah
Premium

Menggunakan Motor Stepper

Motor yang berputar selangkah demi selangkah, persis sejauh yang kamu mau, seperti jarum jam. Lewat board driver, Arduino memutar motor stepper kecil satu putaran penuh ke satu arah, menunggu satu det

4.5(31)
42
Menyalakan Bohlam 220V dengan Tombol Tekan
#19Mahir
Premium

Menyalakan Bohlam 220V dengan Tombol Tekan

Selama kamu menahan tombol, bohlam 220 volt sungguhan tetap menyala, dan mati begitu kamu melepasnya. Sinyal kecil Arduino tidak bisa langsung menyalakan bohlam, jadi relay, sakelar yang dikendalikan

4.4(30)
38
Stasiun Penyiraman Pintar
#83Mahir
Premium

Stasiun Penyiraman Pintar

Tukang kebun yang menyiram tanamanmu sendiri, supaya tanaman tidak kering ketika kamu berlibur. Sensor kelembapan tanah mengukur seberapa basah tanahnya; ketika kering, Arduino menyalakan pompa air be

5.0(42)
57
Lampu Pintar ESP32 (PIR + LDR + Relay + OLED)
#141Mahir
Premium

Lampu Pintar ESP32 (PIR + LDR + Relay + OLED)

Ubah lorong, kamar mandi, atau gudangmu menjadi lampu pintar dengan ESP32! Dengan sensor gerak PIR, sensor cahaya LDR, dan modul relay, kita membuat skenario klasik "lampu menyala ketika ada gerakan dalam gelap"; jika sudah terang, gerakan TIDAK menyalakan lampu, jadi energi hemat di siang hari. Lampu menyala 30 detik; jika gerakan berlanjut, timer diulang. OLED SSD1306 menampilkan status dengan font besar (NYALA / SIANG / MENUNGGU) dan hitung mundur.

4.3(6)
11