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.

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.
| Bacak | Kısaltma | Görevi | NPN anahtar devresinde nereye bağlanır? |
|---|---|---|---|
| Beyz (baz) | B | Kontrol ucu; küçük akım buradan girer | Bir direnç üzerinden Arduino pinine |
| Kollektör (toplayıcı) | C | Yükün akımı buradan girer | Yükün eksi ucuna |
| Emiter (yayıcı) | E | Toplam 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.
| Özellik | NPN | PNP |
|---|---|---|
| Sembolde ok | Emiterden dışarı doğru | Emitere doğru, içeri |
| Emiterin bağlandığı yer | GND (eksi) | Besleme artısı (+) |
| Açmak için beyz | Emiterden ≈0,7 V yüksek (pin HIGH) | Emiterden ≈0,7 V düşük (pin LOW) |
| Ana akımın yönü | Kollektörden emitere | Emiterden kollektöre |
| Yükün yeri | Artı ile kollektör arası (alt taraf) | Kollektör ile GND arası (üst taraf) |
| Yaygın modeller | BC547, S8050, 2N2222A, BC337, TIP120 | BC557, S8550, 2N2907A, BC327, TIP125 |
Çalışma bölgeleri: kesim, aktif bölge ve doyum
| Bölge | Koşul | Kollektör akımı | VCE | Kullanım |
|---|---|---|---|---|
| Kesim (cut-off) | VBE < ≈0,6 V, beyz akımı yok | Neredeyse sıfır | Besleme gerilimine yakın | Anahtar KAPALI |
| Aktif bölge | VBE ≈ 0,65–0,7 V, orta düzey beyz akımı | IC = hFE × IB | Ara bir değer | Yükselteç |
| Doyum (saturation) | IB, IC / hFE değerinden çok büyük | Yü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 Uno | ESP32 | Raspberry Pi Pico |
|---|---|---|---|
| Kontrol pini (beyz direncinin girişi) | D9 (PWM) ya da D7 | GPIO 18 | GP15 |
| Beyz–GND arası çekme direnci | 10 kΩ | 10 kΩ | 10 kΩ |
| Emiter | GND | GND | GND |
| Kollektör | Yükün eksi (−) ucu | Yükün eksi (−) ucu | Yükün eksi (−) ucu |
| Yükün artı (+) ucu | Harici besleme + (ör. 12 V) | Harici besleme + (ör. 12 V) | VBUS (5 V) ya da harici besleme + |
| Harici beslemenin eksi (−) ucu | Arduino GND (ortak toprak) | ESP32 GND (ortak toprak) | Pico GND (ortak toprak) |
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.
- 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.
- 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.
- Beyz akımını hesapla: Zorlanmış beta 10 alınırsa IB = 71 / 10 ≈ 7 mA olur.
- 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.
- 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.
- 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ör | Arduino Uno (5 V) | ESP32 / Pico (3,3 V) |
|---|---|---|---|
| LED grubu, buzzer (20–50 mA) | BC547, S8050 | 2,2 kΩ (≈2 mA) | 1,2 kΩ (≈2,2 mA) |
| 5 V röle bobini (70–90 mA) | 2N2222A, BC337, S8050 | 680 Ω (≈6,3 mA) | 470 Ω (≈5,5 mA) |
| Küçük DC motor, kısa LED şerit (0,3–1 A) | TIP120 | 1 kΩ (≈3,6 mA) | 470 Ω (≈4 mA) |
| 1,5 A üstü (büyük motor, uzun LED şerit) | Lojik seviye MOSFET | IRLZ44N; kapıya 220 Ω, kapı–GND 10 kΩ | IRLB8721; kapıya 220 Ω, kapı–GND 10 kΩ |
BC547, 2N2222A ve TIP120: popüler transistörlerin karşılaştırması
| Model | Tür / kılıf | VCEO | Sürekli IC | hFE | Bacak sırası | Tipik kullanım |
|---|---|---|---|---|---|---|
| BC547 | NPN / TO-92 | 45 V | 100 mA | 110–800 (A, B, C grupları) | C-B-E | LED, buzzer, sinyal anahtarlama |
| BC557 | PNP / TO-92 | 45 V | 100 mA | 125–800 | C-B-E | BC547'nin PNP eşi, üst taraf anahtarlama |
| S8050 | NPN / TO-92 | 25 V | 500 mA | 85–300 (gruba göre) | E-B-C | Başlangıç kitleri, röle modülleri |
| 2N2222A | NPN / TO-92 | 40 V | 600 mA | 100–300 (150 mA'de) | E-B-C | Röle, küçük motor, fan |
| BC337 | NPN / TO-92 | 45 V | 800 mA | 100–630 | C-B-E | Röle, LED grubu, titreşim motoru |
| TIP120 | NPN Darlington / TO-220 | 60 V | 5 A | En az 1000 | B-C-E | DC 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.
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}
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.
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ı.
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.
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
- Transistörü devreden çıkar ve multimetreyi diyot ölçüm kademesine (diyot sembolü) al.
- 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.
- 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.
- 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.
- 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.
- 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
| Belirti | Olası neden | Çözüm |
|---|---|---|
| Yük hiç çalışmıyor | Ortak GND yok ya da bacaklar ters takılmış | Beslemelerin eksilerini birleştir, bacak sırasını kontrol et |
| Transistör çok ısınıyor | Doyuma 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 bozuluyor | Flyback diyot yok | Yüke ters paralel 1N4007 ya da 1N5819 bağla, çizgili uç artıya |
| Pin LOW iken bile yük çalışıyor | Transistör yanmış (C-E kısa devre) ya da beyz boşta | Transistörü multimetreyle ölç, beyz–GND arasına 10 kΩ koy |
| PNP transistör hiç kapanmıyor | Emiter 12 V'ta, pin en fazla 5 V verebiliyor | PNP'nin beyzini bir NPN ile sür ya da yükü NPN ile alt taraftan anahtarla |
| Arduino pini bozuldu | Beyz 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ışıyor | Direnç 5 V'a göre seçilmiş ya da MOSFET 3,3 V'ta tam açılmıyor | Beyz direncini 3,3 V'a göre hesapla, 3,3 V uyumlu MOSFET seç |
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.
Bu yazıdan sonra yapabileceğin projeler
Tüm projeleri gör
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.

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.

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.

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ü*

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.

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.

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

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

