Temeller · 10 dk okuma

Transistör Nedir, Nasıl Çalışır? NPN, PNP ve Arduino Kullanımı

Transistör nedir, nasıl çalışır? NPN ve PNP farkı, beyz direnci hesabı, BC547, 2N2222A ve TIP120 tablosu, Arduino ile motor, röle ve LED şerit sürme.

Transistör, küçük bir akımla çok daha büyük bir akımı kontrol eden, üç bacaklı yarı iletken bir devre elemanıdır. İki temel işi vardır: bir elektronik anahtar gibi yükü açıp kapatmak ve zayıf bir sinyali büyüten bir yükselteç olmak. Arduino'nun bir pini güvenle ancak 20 mA civarında akım verebilir; bu bir LED için yeterlidir ama bir motoru, röleyi ya da 12 V'luk LED şeridi çalıştırmaya yetmez. İşte bu noktada transistör devreye girer: pinden gelen birkaç miliamperlik akımla yüzlerce miliamperi, hatta amperlerce akımı yönetir.

Transistör 1947'de Bell Laboratuvarları'nda John Bardeen, Walter Brattain ve William Shockley tarafından icat edildi; vakum tüplerinin yerini alarak bilgisayarları cebimize sığdırdı. Bugün telefonundaki işlemcide milyarlarca, Arduino'nun beynindeki ATmega328P yongasında ise sayısız minik transistör çalışır. Bu yazıda NPN ve PNP farkını, beyz, kollektör ve emiter bacaklarının görevini, beyz direncini hesaplamayı, BC547, 2N2222A ve TIP120'yi karşılaştırmayı, Arduino, ESP32 ve Raspberry Pi Pico ile motor, röle ve LED şerit sürmeyi ve multimetreyle bacak bulmayı öğreneceksin.

S8050 NPN transistör ve devre sembolü
TO-92 kılıflı S8050 NPN transistör: yazılı yüzü sana bakarken soldan sağa emiter (1), beyz (2) ve kollektör (3). Sağdaki NPN sembolünde emiterdeki ok dışarıyı gösterir.

Transistör nedir, nasıl çalışır?

Transistörü bir su musluğuna benzetebilirsin: musluğun kolunu çevirmek için az bir kuvvet yeterlidir, ama borudan büyük miktarda su akar. Transistörde kolun yerini beyz (baz) akımı, borudan akan suyun yerini ise kollektörden emitere akan ana akım alır. İkisi arasındaki oran transistörün akım kazancıdır ve veri sayfalarında hFE ya da β (beta) olarak yazılır: IC = hFE × IB. Örneğin hFE'si 200 olan bir BC547'nin beyzine 0,1 mA verirsen kollektörden 20 mA'e kadar akım geçebilir. Silisyum bir transistörün iletime geçmesi için beyz ile emiter arasında yaklaşık 0,6–0,7 V oluşmalıdır; bu, içindeki diyot benzeri eklemin eşik gerilimidir. Emiterden çıkan akım ise ikisinin toplamıdır: IE = IC + IB.

BacakKısaltmaGöreviNPN anahtar devresinde nereye bağlanır?
Beyz (baz)BKontrol ucu; küçük akım buradan girerBir direnç üzerinden Arduino pinine
Kollektör (toplayıcı)CYükün akımı buradan girerYükün eksi ucuna
Emiter (yayıcı)EToplam akım buradan çıkar (IE = IC + IB)GND'ye

NPN ve PNP transistör farkı

Bipolar transistörler (BJT) üç katmanlı bir yarı iletkenden oluşur. NPN transistörde ortadaki ince P katmanı beyzdir; beyz emiterden yaklaşık 0,7 V daha pozitif olduğunda kollektörden emitere akım akar. PNP transistörde her şey tersidir: emiter besleme artısına bağlanır ve beyz emiterden yaklaşık 0,7 V daha düşük çekildiğinde akım emiterden kollektöre akar. Sembolü hatırlamanın kolay yolu emiterdeki oktur: NPN'de ok dışarı, PNP'de içeri bakar. Arduino projelerinde NPN çok daha yaygındır, çünkü emiter doğrudan GND'ye bağlanır ve pin HIGH olduğunda transistör açılır; yük, besleme artısı ile kollektör arasına konur. Buna alt taraf (low-side) anahtarlama denir.

ÖzellikNPNPNP
Sembolde okEmiterden dışarı doğruEmitere doğru, içeri
Emiterin bağlandığı yerGND (eksi)Besleme artısı (+)
Açmak için beyzEmiterden ≈0,7 V yüksek (pin HIGH)Emiterden ≈0,7 V düşük (pin LOW)
Ana akımın yönüKollektörden emitereEmiterden kollektöre
Yükün yeriArtı ile kollektör arası (alt taraf)Kollektör ile GND arası (üst taraf)
Yaygın modellerBC547, S8050, 2N2222A, BC337, TIP120BC557, S8550, 2N2907A, BC327, TIP125

Çalışma bölgeleri: kesim, aktif bölge ve doyum

BölgeKoşulKollektör akımıVCEKullanım
Kesim (cut-off)VBE < ≈0,6 V, beyz akımı yokNeredeyse sıfırBesleme gerilimine yakınAnahtar KAPALI
Aktif bölgeVBE ≈ 0,65–0,7 V, orta düzey beyz akımıIC = hFE × IBAra bir değerYükselteç
Doyum (saturation)IB, IC / hFE değerinden çok büyükYük ve beslemeyle sınırlı0,1–0,3 V (Darlington'da 0,8–2 V)Anahtar AÇIK

Anahtar olarak kullanırken transistörü yalnızca iki uçta tutarsın: tamamen kapalı (kesim) ya da tamamen açık (doyum). Aradaki aktif bölge yükselteçler içindir ve anahtar devresinde istenmez, çünkü transistörün harcadığı güç P = VCE × IC formülüyle bulunur. Doyumdaki bir 2N2222A 150 mA'de en fazla 0,3 V düşürür ve yalnızca 45 mW ısı üretir; aynı akımda yarı açık kalıp 3 V düşürürse 450 mW harcar. Bu, TO-92 kılıfın 625 mW'lık sınırına çok yakındır ve transistör elle tutulamayacak kadar ısınır. Bu yüzden anahtar devrelerinde beyze, transistörü kesinlikle doyuma sokacak kadar akım verilir.

Yükselteç olarak transistör

Transistör aktif bölgede tutulduğunda beyzdeki küçük değişimleri kollektörde büyütür. Örneğin hFE'si 200 olan bir transistörde beyz akımı 10 µA arttığında kollektör akımı 2 mA artar; kollektöre bağlı 2,2 kΩ'luk dirençte bu, 4,4 V'luk bir gerilim değişimi demektir. Mikrofon ön yükselteçleri, radyolar ve ses yükselteçleri bu prensiple çalışır. En yaygın devre ortak emiterli yükselteçtir: beyz, bir gerilim bölücüyle aktif bölgenin ortasına ayarlanır, emitere konan direnç (RE) devreyi sıcaklığa karşı kararlı yapar ve gerilim kazancı yaklaşık RC / RE olur; 4,7 kΩ ve 470 Ω ile yaklaşık 10 kat. Elektret mikrofonların içinde bile sinyali güçlendiren minik bir transistör (JFET) bulunur. Arduino projelerinde sensör sinyallerini büyütmek için çoğunlukla hazır entegreler kullanılır; bunun için Op-amp Nedir? yazısına bakabilirsin. Bu yazının geri kalanı, Arduino ile en çok ihtiyaç duyacağın anahtar kullanımına odaklanıyor.

Transistörü anahtar olarak Arduino'ya bağlamak

En sık kullanacağın devre, NPN transistörlü alt taraf anahtardır. Yükün (motor, röle bobini, LED şerit) artı ucu harici beslemenin artısına, eksi ucu transistörün kollektörüne bağlanır. Emiter GND'ye gider. Arduino pini beyze mutlaka bir direnç üzerinden bağlanır; bu direnç hem pinden çekilen akımı hem de beyz akımını sınırlar. Beyz ile GND arasına konan 10 kΩ'luk direnç ise Arduino açılırken ya da yeniden başlarken pin boşta kaldığında transistörün kendiliğinden açılmasını önler. Bu yapıda transistör yalnızca yükün GND yolunu açıp kapatır; bu yüzden yük 12 V ile, Arduino 5 V ile çalışabilir.

BağlantıArduino UnoESP32Raspberry Pi Pico
Kontrol pini (beyz direncinin girişi)D9 (PWM) ya da D7GPIO 18GP15
Beyz–GND arası çekme direnci10 kΩ10 kΩ10 kΩ
EmiterGNDGNDGND
KollektörYükün eksi (−) ucuYükün eksi (−) ucuYükün eksi (−) ucu
Yükün artı (+) ucuHarici besleme + (ör. 12 V)Harici besleme + (ör. 12 V)VBUS (5 V) ya da harici besleme +
Harici beslemenin eksi (−) ucuArduino GND (ortak toprak)ESP32 GND (ortak toprak)Pico GND (ortak toprak)
En sık yapılan hata ortak GND'yi unutmaktır: harici beslemenin eksi ucu Arduino'nun GND'sine bağlanmazsa beyz akımı devresini tamamlayamaz ve yük hiç çalışmaz. İkinci hata, pini beyze dirençsiz bağlamaktır; beyz–emiter eklemi bir diyot gibi davrandığı için pin neredeyse kısa devre olur ve hem pin hem transistör bozulabilir. Motoru ya da LED şeridi Arduino'nun 5V pininden besleme; harici bir adaptör kullan.

Beyz direnci hesabı: hFE ve doyum

Beyz direncini seçerken iki şeyi bilmen gerekir: yükün çektiği akım (IC) ve transistörün veri sayfasındaki en düşük hFE değeri. hFE aynı modelde bile parçadan parçaya, sıcaklığa ve akıma göre çok değişir; BC547'de 110 ile 800 arasındadır. Bu yüzden tipik değerle değil en düşük değerle hesap yapılır ve sonuç 2 ile 10 kat arasında bir güvenlik payıyla çarpılır. Formüller şöyledir: IB = (IC / hFE) × güvenlik payı ve RB = (Vpin − VBE) / IB. Vpin Arduino Uno'da 5 V, ESP32 ve Pico'da 3,3 V; VBE normal transistörde yaklaşık 0,7 V, TIP120 gibi Darlington'larda yaklaşık 1,4 V'tur. Pratikte sık kullanılan bir kısayol da doyum için hFE'yi 10 kabul etmektir (zorlanmış beta); veri sayfaları doyum gerilimini zaten bu koşulda verir.

  1. Yük akımını bul: Bobin direnci 70 Ω olan 5 V'luk bir röle, Ohm kanununa göre 5 / 70 ≈ 71 mA çeker. Hesap için Ohm Kanunu aracını kullanabilirsin.
  2. Transistörü seç: 71 mA, BC547'nin 100 mA'lik sınırına çok yakın; 600 mA taşıyabilen 2N2222A daha güvenlidir.
  3. Beyz akımını hesapla: Zorlanmış beta 10 alınırsa IB = 71 / 10 ≈ 7 mA olur.
  4. Direnci hesapla: Uno'da RB = (5 − 0,7) / 0,007 ≈ 614 Ω çıkar; bir üst standart değer olan 680 Ω seçilir ve beyz akımı yaklaşık 6,3 mA olur.
  5. 3,3 V kartlar için tekrarla: ESP32 ya da Pico'da RB = (3,3 − 0,7) / 0,007 ≈ 371 Ω çıkar. Bir üst standart değer olan 390 Ω ya da elde daha sık bulunan 470 Ω (yaklaşık 5,5 mA) yeterlidir; bu hâlâ 13 civarında bir zorlanmış betadır.
  6. Sağlamasını yap: Pin akımı 20 mA'in altında, transistörün akım sınırı yük akımının en az 1,5 katı ve harcanan güç (VCE(sat) × IC ≈ 0,2 V × 71 mA ≈ 14 mW) kılıfın sınırının çok altında olmalı.
Yük (akım)Önerilen transistörArduino Uno (5 V)ESP32 / Pico (3,3 V)
LED grubu, buzzer (20–50 mA)BC547, S80502,2 kΩ (≈2 mA)1,2 kΩ (≈2,2 mA)
5 V röle bobini (70–90 mA)2N2222A, BC337, S8050680 Ω (≈6,3 mA)470 Ω (≈5,5 mA)
Küçük DC motor, kısa LED şerit (0,3–1 A)TIP1201 kΩ (≈3,6 mA)470 Ω (≈4 mA)
1,5 A üstü (büyük motor, uzun LED şerit)Lojik seviye MOSFETIRLZ44N; kapıya 220 Ω, kapı–GND 10 kΩIRLB8721; kapıya 220 Ω, kapı–GND 10 kΩ
Bu değerler bir başlangıç noktasıdır; elindeki transistörün akım sınırını ve bacak sırasını Transistör Bacak Bağlantıları aracından kontrol et. Devreyi kurduktan sonra multimetreyle kollektör–emiter gerilimini ölçmek en iyi sağlamadır: normal transistörde 0,3 V'un, Darlington'da 1,5 V'un altındaysa transistör doyumdadır.

BC547, 2N2222A ve TIP120: popüler transistörlerin karşılaştırması

ModelTür / kılıfVCEOSürekli IChFEBacak sırasıTipik kullanım
BC547NPN / TO-9245 V100 mA110–800 (A, B, C grupları)C-B-ELED, buzzer, sinyal anahtarlama
BC557PNP / TO-9245 V100 mA125–800C-B-EBC547'nin PNP eşi, üst taraf anahtarlama
S8050NPN / TO-9225 V500 mA85–300 (gruba göre)E-B-CBaşlangıç kitleri, röle modülleri
2N2222ANPN / TO-9240 V600 mA100–300 (150 mA'de)E-B-CRöle, küçük motor, fan
BC337NPN / TO-9245 V800 mA100–630C-B-ERöle, LED grubu, titreşim motoru
TIP120NPN Darlington / TO-22060 V5 AEn az 1000B-C-EDC motor, LED şerit, solenoid

Bacak sırası, yazılı düz yüz sana bakarken ve bacaklar aşağıdayken soldan sağa okunur. Dikkat: BC547 ile 2N2222A'nın sırası terstir (C-B-E ve E-B-C); birini diğerinin yerine takarken kollektör ile emiteri yer değiştirmen gerekir. Metal kılıflı (TO-18) 2N2222'lerin ve farklı üreticilerin kopyalarının sırası farklı olabilir; şüphedeysen multimetreyle doğrula. TIP120 bir Darlington transistördür: içinde art arda bağlı iki transistör olduğu için kazancı en az 1000'dir ve 1 kΩ'luk dirençle doğrudan Arduino pininden sürülebilir. Bedeli, üzerinde 1–2 V düşmesi ve ısınmasıdır: 1 A'de yaklaşık 1 W ısı açığa çıkar ve soğutucusuz TO-220 kılıf ortam sıcaklığının 60 °C kadar üstüne çıkar. Hazır sürücü kartlar da transistörlerden oluşur: 28BYJ-48 step motorun ULN2003 kartında yedi Darlington, L298N modülünde ise transistörlerden kurulu iki H köprüsü vardır.

Arduino ile DC motor sürmek: TIP120 ve flyback diyot

Şimdi bir potansiyometreyle 6–12 V'luk küçük bir DC motorun hızını ayarlayalım. Arduino'nun 9 numaralı PWM pini 1 kΩ'luk dirençle TIP120'nin beyzine, motor ise harici beslemenin artısı ile TIP120'nin kollektörü arasına bağlanır; emiter GND'ye gider. Potansiyometrenin dış uçları 5V ve GND'ye, orta ucu A0'a bağlanır. Motorun iki ucuna ters yönde bir flyback diyot (1N4007 ya da daha hızlı 1N5819) konur: diyotun çizgili katot ucu besleme artısına, diğer ucu kollektöre bakar. PWM sinyali transistörü saniyede yüzlerce kez açıp kapatır ve motor ortalama gerilime göre yavaş ya da hızlı döner.

Arduino (C++)
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}
Flyback diyot olarak kullanılan doğrultma diyodu
DO-41 kılıflı doğrultma diyodu (1N4007 tipi): bobinli yüklerin uçlarına ters bağlanarak transistörü kapanma anındaki gerilim sıçramasından korur. Katot ucu gövdedeki çizgiyle işaretlenir.
Motor, röle, solenoid ve fan gibi bobin içeren yükler, akım kesildiği anda bobindeki enerjiyi ters yönde bir gerilim sıçraması olarak geri verir (V = L × di/dt). Bu sıçrama onlarca, hatta yüzlerce volta çıkabilir; diyot yoksa transistörü deler ya da Arduino'nun yeniden başlamasına yol açar. Diyotu ters takarsan transistör açıldığı anda besleme kısa devre olur. LED şerit ve direnç gibi bobinsiz yüklerde diyota gerek yoktur. Diyot çeşitlerini ayrıntılı öğrenmek için Diyot Nedir? yazısına bak.

Röle sürmek: 2N2222A ile 5 V röle

Hazır röle modüllerinin üzerinde bu devre zaten vardır: küçük bir transistör, beyz direnci ve flyback diyot. Çıplak bir 5 V röle kullanıyorsan aynı devreyi kendin kurarsın: rölenin bobini 5V ile 2N2222A'nın kollektörü arasına, 1N4007 diyot bobinin uçlarına ters yönde, D7 pini ise 680 Ω ile beyze bağlanır. Aşağıdaki kod, Seri Monitör'e 1 yazınca röleyi çeker, 0 yazınca bırakır. Röle kontakları üzerinden 220 V anahtarlamadan önce Röle Modülü Nedir? yazısındaki güvenlik kurallarını mutlaka oku.

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

ESP32 ve Raspberry Pi Pico ile transistör kullanımı

ESP32 ve Pico'nun pinleri 3,3 V verdiği için beyz direncini 3,3 V'a göre hesaplaman gerekir; 5 V için seçilmiş 1 kΩ, 3,3 V'ta TIP120'ye yalnızca 1,9 mA verir. Aşağıdaki ESP32 örneği, 12 V'luk bir LED şeridin parlaklığını GPIO 18'den PWM ile yumuşakça artırıp azaltır. Metrede 60 LED'li 5050 şerit, metre başına yaklaşık 1,2 A çeker; 1 metrelik bir parça için 470 Ω beyz direnciyle TIP120 yeterlidir, ama küçük bir soğutucu takmayı unutma. LED şerit bobin içermediği için flyback diyot gerekmez. Kod, ESP32 Arduino çekirdeğinin 3.x sürümündeki ledcAttach ve ledcWrite fonksiyonlarını kullanır; eski 2.x sürümünde bunların yerine ledcSetup ve ledcAttachPin vardı.

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

Raspberry Pi Pico ile MicroPython'da transistör sürmek de aynı mantıktadır. Aşağıdaki kod, Pico'nun yonga içindeki sıcaklık sensörünü okur; sıcaklık 32 °C'ye ulaşınca GP15'e bağlı transistörle 5 V'luk küçük bir fanı çalıştırır, 29 °C'ye inince durdurur. İki ayrı eşik kullanmak (histerezis) fanın sınırda sürekli açılıp kapanmasını önler. Fan, VBUS pininden (USB'nin 5 V'u) beslenir; yaklaşık 100 mA çeken bir fan için 1 kΩ dirençli BC337 ya da 2N2222A yeterlidir ve fanın uçlarına yine bir diyot konur. Yonga sıcaklığı ortamdan birkaç derece yüksek okunur; gerçek bir projede DS18B20 gibi bir sensör kullanmak daha doğrudur.

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)

Multimetreyle transistör bacaklarını bulmak

  1. Transistörü devreden çıkar ve multimetreyi diyot ölçüm kademesine (diyot sembolü) al.
  2. Kırmızı probu bir bacağa sabitle, siyah probla diğer iki bacağa sırayla dokun. İki ölçümde de 0,5–0,8 V arası bir değer görüyorsan kırmızı probun değdiği bacak beyzdir ve transistör NPN'dir.
  3. Böyle bir bacak bulamazsan probların yerini değiştir: siyah prob bir bacakta sabitken diğer iki bacak 0,5–0,8 V gösteriyorsa o bacak beyzdir ve transistör PNP'dir.
  4. Beyzle diğer iki bacak arasındaki değerleri karşılaştır: biraz daha yüksek olan (örneğin 0,62 V'a karşı 0,65 V) emiter, düşük olan kollektördür. Fark çok küçükse veri sayfasına güven.
  5. Kollektör ile emiter arasında iki yönde de OL (açık devre) görmelisin; beyz ölçümlerinin ters yönü de OL olmalıdır.
  6. Multimetrende hFE soketi varsa transistörü bulduğun bacak sırasıyla NPN ya da PNP yuvasına tak; ekranda akım kazancını okursun.

TIP120 gibi Darlington transistörlerde beyz ile emiter arasında iki eklem ve iç dirençler (yaklaşık 8 kΩ ve 120 Ω) bulunduğu için okunan değerler bu kurala uymaz; bacak sırasını veri sayfasından doğrula. Kollektör ile emiter arasında iki yönde de sıfıra yakın bir değer görüyorsan transistör kısa devre olmuştur; beyzden diğer bacaklara hiçbir yönde değer okunmuyorsa içindeki eklem kopmuştur. Multimetre kademelerini ayrıntılı öğrenmek için Multimetre Nasıl Kullanılır? yazısına göz at.

Transistörle yapabileceğin proje fikirleri

  • Otomatik gece lambası: LDR karanlığı algılayınca 12 V LED şeridi TIP120 ile yak.
  • Akıllı fan: DHT11 ile ölçtüğün sıcaklık arttıkça fanın hızını PWM ve transistörle yükselt.
  • Otomatik sulama: Toprak nem sensörü kuru toprağı algılayınca küçük bir su pompasını transistörle çalıştır.
  • Şifreli kapı: Keypad ile doğru şifre girilince 12 V'luk bir solenoid kilidi TIP120 ve diyotla aç.
  • Sessiz bildirim: Bir titreşim motorunu BC337 ile sürerek giyilebilir bir uyarı cihazı yap.
  • Güçlü alarm: PIR sensörü hareket algılayınca, Arduino pininin tek başına süremeyeceği 12 V'luk bir sireni transistörle çaldır.

Sık yapılan hatalar ve çözümleri

BelirtiOlası nedenÇözüm
Yük hiç çalışmıyorOrtak GND yok ya da bacaklar ters takılmışBeslemelerin eksilerini birleştir, bacak sırasını kontrol et
Transistör çok ısınıyorDoyuma girmiyor (beyz akımı az) ya da akım sınırı aşılmışBeyz direncini küçült, daha güçlü transistör ya da MOSFET seç
Motor durunca Arduino resetleniyor ya da transistör bozuluyorFlyback diyot yokYüke ters paralel 1N4007 ya da 1N5819 bağla, çizgili uç artıya
Pin LOW iken bile yük çalışıyorTransistör yanmış (C-E kısa devre) ya da beyz boştaTransistörü multimetreyle ölç, beyz–GND arasına 10 kΩ koy
PNP transistör hiç kapanmıyorEmiter 12 V'ta, pin en fazla 5 V verebiliyorPNP'nin beyzini bir NPN ile sür ya da yükü NPN ile alt taraftan anahtarla
Arduino pini bozulduBeyz direnci konmadan pin doğrudan beyze bağlandıHer zaman beyz direnci kullan, pin akımını 20 mA'in altında tut
ESP32 ya da Pico ile yük zayıf çalışıyorDirenç 5 V'a göre seçilmiş ya da MOSFET 3,3 V'ta tam açılmıyorBeyz direncini 3,3 V'a göre hesapla, 3,3 V uyumlu MOSFET seç
Yük 1,5 A'i geçiyorsa ya da transistör soğutucuya rağmen ısınıyorsa, lojik seviye bir MOSFET çok daha az ısınır, çünkü akımla değil gerilimle sürülür ve üzerinde neredeyse hiç gerilim düşmez. Bağlantı ve seçim için Arduino MOSFET Kullanımı yazısına bak.

Transistör, küçük bir sinyalle büyük yükleri yönetmenin, yani Arduino'yu gerçek dünyaya bağlamanın anahtarıdır. Beyz direnci hesabını, ortak GND'yi ve flyback diyotu bir kez oturttuğunda motorlar, pompalar ve LED şeritler artık korkutucu gelmez. BlueGrays uygulamasında LDR'li gece lambası, buzzer, PWM ile LED soldurma, step motor ve 220 V lamba kontrolü gibi projeleri devre şemaları ve kodlarıyla adım adım inceleyebilirsin.

Sıkça sorulan sorular

Transistör ne işe yarar?

Transistör iki temel iş yapar: küçük bir akımla büyük bir akımı açıp kapatan elektronik bir anahtar ve zayıf bir sinyali büyüten bir yükselteç olarak çalışır. Arduino projelerinde en çok, pinin tek başına süremediği motor, röle, fan ve LED şerit gibi yükleri kontrol etmek için kullanılır.

NPN ve PNP transistör arasındaki fark nedir?

NPN transistörde emiter GND'ye bağlanır ve beyz emiterden yaklaşık 0,7 V yüksek olunca iletime geçer; akım kollektörden emitere akar. PNP'de emiter besleme artısına bağlanır ve beyz emiterden 0,7 V düşük çekilince açılır. Arduino ile yükü GND tarafından anahtarlamak için NPN daha kolaydır.

Transistörün bacakları nasıl bulunur?

En güvenilir yol modelin veri sayfasına bakmaktır: yazılı yüz sana bakarken soldan sağa BC547'de sıra C-B-E, 2N2222A'da E-B-C, TIP120'de B-C-E'dir. Veri sayfası yoksa multimetrenin diyot kademesiyle beyzi ve tipini bulabilir, beyz–emiter değerinin beyz–kollektörden biraz yüksek çıkmasından emiteri ayırt edebilirsin.

Arduino ile hangi transistörü kullanmalıyım?

LED ve buzzer gibi 50 mA'e kadar olan yükler için BC547 yeterlidir. 5 V röle bobinleri (70–90 mA) ve 500 mA'e kadar küçük motorlar için 2N2222A ya da BC337, 1 A civarındaki motor ve LED şeritler için TIP120 kullan. Daha yüksek akımlarda lojik seviye bir MOSFET daha az ısınır.

Transistör beyz direnci kaç ohm olmalı?

Beyz direnci RB = (Vpin − VBE) / IB formülüyle hesaplanır; normal transistörlerde IB için yük akımının onda biri iyi bir başlangıçtır. Arduino Uno ile 5 V röle için 680 Ω, LED ve buzzer gibi 20–50 mA'lik yükler için 2,2 kΩ, TIP120 için 1 kΩ tipik değerlerdir.

Transistör neden ısınır?

Transistörün ürettiği ısı P = VCE × IC ile bulunur. Beyz akımı yetersizse transistör doyuma girmez, üzerinde volt düzeyinde gerilim kalır ve ısınır; yük akımı transistörün sınırını aşıyorsa da aynı şey olur. Beyz direncini küçült, daha güçlü bir transistör ya da MOSFET seç ve 1 A'in üstünde soğutucu kullan.

Tüm projeleri gör
Ldr İle Gece Lambası
#12Başlangıç

Ldr İle Gece Lambası

Ortam karardığında LED'i otomatik olarak yakan LDR tabanlı gece lambası projesi. Analog eşik değeri karşılaştırması ile otomatik kontrol mantığını öğretir.

4.8(100)
164
Buzzer Kullanımı
#13Başlangıç

Buzzer Kullanımı

Buzzer'ı belirli frekansta ve aralıklarla ses çıkaracak şekilde kullanan temel proje. tone() ve noTone() fonksiyonlarının kullanımını öğretir.

4.7(88)
151
ESP32 PWM ile LED Soldurma (Fade)
#110Başlangıç
Premium

ESP32 PWM ile LED Soldurma (Fade)

LED'in parlaklığını yumuşak şekilde 0'dan max'a, max'tan 0'a değiştirme. Arduino'daki gibi analogWrite() ile PWM kontrolü yapıyoruz — ESP32 Arduino Core 3.0+ ile aynı syntax sorunsuz çalışır. Pin tanımı + pinMode + analogWrite yeterli.

4.8(36)
54
Raspberry Pi Pico PWM ile LED Fade (Nefes Efekti, GP14)
#160Başlangıç
Premium

Raspberry Pi Pico PWM ile LED Fade (Nefes Efekti, GP14)

LED artık sadece yanıp sönmüyor — nefes alıyor! 🌬️ Raspberry Pi Pico'nun **PWM** (Pulse Width Modulation — darbe genişlik modülasyonu) özelliğiyle LED'in parlaklığı yavaş yavaş artar, sonra yavaş yavaş azalır. Uyku modundaki MacBook ışığı gibi sakin bir "nefes" efekti. Öğrenme: **machine.PWM sınıfı** (pini PWM çıkışına çevirme), **duty_u16()** (0–65535 arası 16-bit parlaklık değeri), **PWM frekansı** (`freq(1000)` — saniyede 1000 kez aç-kapa, göz titremeyi görmez), **range() ile adım adım döngü*

0.0(0)
4
Step Motor Kullanımı
#67Orta
Premium

Step Motor Kullanımı

28BYJ-48 step motoru ULN2003A sürücü kartı ile saat yönünde ve tersine tam tur döndüren temel proje. Step motor adımlama ve yön kontrolünü öğretir.

4.5(31)
41
220V Ampülü Buton(Push) İle Yakma
#19İleri
Premium

220V Ampülü Buton(Push) İle Yakma

Röle modülü kullanarak 220V ampulü butonla anlık (push) olarak kontrol eden proje. Röle ile yüksek gerilim anahtarlama temellerini öğretir.

4.4(30)
38
Akıllı Sulama İstasyonu
#83İleri
Premium

Akıllı Sulama İstasyonu

İki adet 18650 pil ve LM2596 regülatör ile Arduino'yu yormadan 7/24 çalışan otonom bitki sulama sistemi. Toprak nemini sürekli ölçerek su motorunu otomatik yönetir ve sistemin anlık durumunu üzerindek

5.0(42)
57
ESP32 Akıllı Aydınlatma (PIR + LDR + Röle + OLED)
#141İleri
Premium

ESP32 Akıllı Aydınlatma (PIR + LDR + Röle + OLED)

ESP32, PIR hareket sensörü, LDR ışık sensörü ve röle modülü ile evinin koridorunu, tuvaletini veya kilerini akıllı aydınlatmaya dönüştürüyoruz. Klasik "karanlıkta hareket algılanınca ışık yansın" senaryosunu inşa ediyoruz — ortam aydınlıksa hareket olsa bile ışık yanmaz, böylece gündüz gereksiz yere yanmaz ve enerji tasarrufu sağlanır. Işık 30 saniye yanık kalır; hareket devam ederse timer otomatik sıfırlanır ve süre uzar. SSD1306 OLED ekranda büyük fontlarla durum (AÇIK / GÜNDÜZ / BEKLE), geri

4.3(6)
11