11 SAYFALIK KAPSAMLI KİTAPÇIK Sıfırdan Temel Elektrik-Elektronik, Arduino ve Sensörler (11 Sayfalık Tam Ders Kitapçığı & Başvuru Kartı)
⬅️ Simülasyon Platformuna Dön
Proje Öğrenci Grubu • Uygulamalı Mühendislik Eğitimi

SIFIRDAN TEMEL ELEKTRİK-ELEKTRONİK, ARDUINO VE SENSÖRLER EĞİTİM SETİ

Konu Anlatımı • Devre Şemaları • C++ Kodlama Rehberi • Doğru/Yanlış ve Boşluk Doldurma Çalışma Yaprakları

Eğitim Süresi
4 Hafta / 8 Saat
Hedef Kitle
15 Kişilik Proje Grubu
Seviye
Sıfırdan İleri Temele
Uygulama Ortamı
lab.emreguzel.com.tr
👨‍🎓 Öğrenci Adı Soyadı: ................................................................
📅 Tarih: ..... / ..... / 2026
⭐ Toplam Puan: ....... / 100

📋 1 Aylık (4 Hafta × 2 Saat) Eğitim Planı Özeti

Hafta / Süre Ders Başlığı ve Kapsamı Deney ve Uygulama Projesi
1. Hafta (2 Saat) Temel Elektrik (Voltaj, Akım, Direnç, Ohm Kanunu), Breadboard, Arduino Uno Pinleri, Dijital Çıkış (digitalWrite) LED Ön Direnci Hesabı, Blink ve Sıralı Trafik Işığı Kavşağı
2. Hafta (2 Saat) Dijital Giriş (digitalRead), Pull-Down / Pull-Up Direnci, if/else Karar Yapıları, Analog Okuma (ADC) ve PWM (analogWrite) Yaya Butonlu Geçit ve LDR + Potansiyometre ile Otomatik Gece Lambası
3. Hafta (2 Saat) Aktif Sensörler: HC-SR04 Ultrasonik Mesafe Sensörü (Ses Fiziği), pulseIn(), NTC Termistör ve Piezo Buzzer Sesli ve Kademeli LED İkazlı Akıllı Otomobil Park Radar Sistemi
4. Hafta (2 Saat) I2C Haberleşme Protokolü (SDA/SCL), 16x2 LCD Ekran Sürülmesi, Çoklu Sensör Entegrasyonu ve Hata Ayıklama (Bug Hunt) Bitirme Projesi: Dijital Ekranlı Akıllı Çevre ve Güvenlik İstasyonu
BÖLÜM 1 • TEMEL ELEKTRİK VE DEVRE ELEMANLARI

1. Elektrik Nedir? Gerilim (V), Akım (I), Direnç (R) ve Ohm Kanunu

1. Hafta • 1. Saat

Elektronik devreleri ezberlemeden kurabilmenin sırrı, elektriğin temel davranışını anlamaktır. Bir iletken kablo içindeki elektronların hareketini, bir su tesisatındaki suyun akışına benzetebiliriz:

  • Gerilim / Voltaj ($V$): Elektronları hareket ettiren itme kuvvetidir (Su deposunun yüksekliği / basıncı). Birimi Volt (V)'tur. Arduino Uno 5V ve 3.3V doğru akım (DC) gerilimiyle çalışır.
  • Akım ($I$): İletken kesitinden birim zamanda geçen elektron miktarıdır (Borudan akan suyun debisi). Birimi Amper (A) veya binde biri olan Miliamper (mA)'dir ($1\,\text{A} = 1000\,\text{mA}$).
  • Direnç ($R$): Elektrik akımına karşı gösterilen zorluktur (Borunun daraltılması). Birimi Ohm ($\Omega$)'dur ($1\,\text{k}\Omega = 1000\,\Omega$).
V I R V = I × R | R = V / I LED Koruma Direnci Devresi +5V 220Ω GND R = (5V - 2V) / 0.015A = 200Ω → 220Ω Anot (+) Uzun | Katot (-) Kısa Bacak
Şekil 1.1: Ohm Kanunu Üçgeni ve 5V Kaynak ile LED Ön Direnci Hesabı
⚠️ KISA DEVRE (SHORT CIRCUIT) TEHLİKESİ VE NEDEN DİRENÇ KULLANIRIZ?
Arduino'nun 5V pini ile GND (0V) pinini arada hiçbir yük/direnç olmadan doğrudan bir kabloyla birleştirirseniz $R \approx 0\,\Omega$ olduğu için $I = V / R$ formülüne göre aşırı yüksek akım çekilir. Buna Kısa Devre denir ve kartın regülatörünü yakar! Aynı şekilde standart bir kırmızı LED yaklaşık $2\text{V}$ gerilim ve $15\text{--}20\,\text{mA}$ akımla çalışır; doğrudan 5V'a bağlanırsa aşırı akımdan patlar. Bu yüzden seri olarak $220\,\Omega$ veya $330\,\Omega$ koruma direnci bağlanır.

🎨 1.2 Direnç Renk Kodları ve Breadboard (Devre Tahtası) Kullanımı

Üzerinde yazı yazamayacak kadar küçük olan dirençlerin değeri, gövdelerindeki renkli halkalarla okunur. 4 bantlı bir dirençte ilk iki halka sayıyı, 3. halka çarpanı (eklenecek sıfır sayısını), 4. halka ise toleransı (Altın = $\pm\%5$) gösterir. Kodlamayı hatırlamak için: "Sokakta Kahve Kokusu Tatlı Sıcak Yemek Mutluluk Mevsimi Getirir Bize" (Siyah=0, Kahve=1, Kırmızı=2, Turuncu=3, Sarı=4, Yeşil=5, Mavi=6, Mor=7, Gri=8, Beyaz=9).

Direnç Değeri 1. ve 2. Bant 3. Bant (Çarpan) Kullanım Yeri
$220\,\Omega$ Kırmızı (2) - Kırmızı (2) Kahverengi ($\times 10^1$) LED Koruma Direnci
$330\,\Omega$ Turuncu (3) - Turuncu (3) Kahverengi ($\times 10^1$) LED Koruma Direnci
$1\,\text{k}\Omega$ ($1000\,\Omega$) Kahve (1) - Siyah (0) Kırmızı ($\times 10^2$) Genel Akım Sınırlama
$10\,\text{k}\Omega$ ($10000\,\Omega$) Kahve (1) - Siyah (0) Turuncu ($\times 10^3$) Buton Pull-Down & LDR
ÜST GÜÇ HATTI (+5V / GND) → YATAY BOYUNCA BİRBİRİNE BAĞLI Her 5'li Dikey Sütun (a-b-c-d-e) kendi içinde birbirine bağlıdır. ⚠️ DİKKAT: Direnç/LED'in iki bacağı aynı dikey sütuna takılırsa KISA DEVRE olur!
Şekil 1.2: Breadboard (Deney Tahtası) İçerisindeki Metal Kıskaçların Bağlantı Yönü
+5V Güç Hattı 5'li Dikey Sütunlar (a-b-c-d-e) GND Eksi Hattı
Breadboard (Devre Tahtası)
Lehimsiz prototipleme ve dikey metal kıskaç yapısı.
220 Ω (Kırmızı - Kırmızı - Kahve)
4 Bantlı Direnç Skalası
Sayı, çarpan ve altın tolerans halkaları.
Anot (+) Katot (-)
5mm Işık Yayan Diyot
Uzun Anot (+), kısa Katot (-) bacak tespiti.
✍️ BÖLÜM 1 UYGULAMA VE DEĞERLENDİRME ÇALIŞMA YAPRAĞI Puan: 20

A) Aşağıdaki ifadelerin başına Doğru ise ( D ), Yanlış ise ( Y ) yazınız:

  • 1. Elektrik devrelerinde gerilimin (voltajın) birimi Amper, akımın birimi ise Volt'tur. [   ] Y
  • 2. Ohm Kanununa göre ($I = V / R$), sabit gerilimde devreye bağlanan direnç büyüdükçe devreden geçen akım azalır. [   ] D
  • 3. LED'in uzun bacağı Anot ($+$), kısa bacağı ise Katot ($-$ / GND) kutbudur; ters bağlanırsa ışık vermez. [   ] D
  • 4. Breadboard'un orta kısmındaki beşli delik grupları yatay (satır) boyunca birbirine bağlıdır. [   ] Y
  • 5. Renk kodları "Kırmızı - Kırmızı - Kahverengi - Altın" olan bir direncin değeri $220\,\Omega$'dur. [   ] D

B) Aşağıdaki cümlelerdeki boşlukları kutucuktaki uygun kavramlarla doldurunuz:

Kelime Havuzu:   Kısa Devre  |  Anot (+)  |  Ohm (Ω)  |  Dikey  |  10 kΩ
  • 1. Elektrik akımına karşı gösterilen zorluğa direnç denir ve ölçü birimi Ohm (Ω) olarak ifade edilir.
  • 2. LED diyotların uzun bacağına Anot (+), kısa veya gövdesi düzleştirilmiş bacağına ise Katot ($-$) denir.
  • 3. Breadboard'un orta alanındaki `a-b-c-d-e` delikleri Dikey sütunlar halinde alttan metal klipslerle bağlıdır.
  • 4. 5V kaynağı ile GND hattının arada hiçbir direnç/yük olmadan doğrudan birleşmesine Kısa Devre denir.
  • 5. Üzerinde Kahverengi - Siyah - Turuncu renk halkaları bulunan direncin değeri 10 kΩ ($10.000\,\Omega$) olur.
BÖLÜM 2 • MİKRODENETLEYİCİ MİMARİSİ VE DİJİTAL ÇIKIŞ

2. Arduino Uno R3 Donanımı ve C++ Programlama Yapısı

1. Hafta • 2. Saat

Arduino Uno R3, üzerinde ATmega328P mikrodenetleyicisi bulunan açık kaynaklı bir elektronik geliştirme kartıdır. Sensörlerden aldığı sinyalleri (ışık, mesafe, sıcaklık, buton) okuyup yazdığımız C++ programına göre kararlar verir ve LED, motor, ekran veya buzzer gibi eyleyicileri (aktüatörleri) kontrol eder.

🔌 Arduino Uno Pin Grupları

  • Güç Pinleri (Power): 5V ve 3.3V regüleli çıkış verir. GND (Ground) devrenin $0\text{V}$ ortak referans (eksi) hattıdır. VIN harici $7\text{--}12\text{V}$ adaptör/pil girişidir.
  • Dijital Pinler (0 – 13): Hem giriş (INPUT) hem çıkış (OUTPUT) olarak kullanılır. Sadece iki durum üretir veya okur: HIGH ($5\text{V}$ / Mantıksal 1) ve LOW ($0\text{V}$ / Mantıksal 0).
  • PWM Pinleri (~3, ~5, ~6, ~9, ~10, ~11): Yanında dalga (~) işareti olan bu 6 pin, analogWrite() komutuyla $0\text{--}255$ arası darbe genişlik modülasyonu üreterek LED parlaklığı veya motor hızı ayarlayabilir.
  • Analog Giriş Pinleri (A0 – A5): $0\text{V}$ ile $5\text{V}$ arasındaki kesintisiz voltajları 10-bit çözünürlükle ($0\text{--}1023$ arası tam sayıya) çevirerek okur.
USB 7-12V DİJİTAL PİNLER: 13 12 ~11 ~10 ~9 8 | 7 ~6 ~5 4 ~3 2 1(TX) 0(RX) ATmega328P 16 MHz • 32KB Flash • 2KB SRAM 3.3V | 5V | GND | GND | VIN ANALOG: A0 A1 A2 A3 A4 A5
Şekil 2.1: Arduino Uno R3 Kart Mimarisi ve Pin Grupları

💻 2.2 Arduino C++ İskeleti ve İlk Uygulama (Trafik Işığı)

Her Arduino programı iki zorunlu fonksiyondan oluşur: void setup() kart enerjilendiğinde sadece 1 kez çalışır (pin modları ve seri port burada başlatılır). void loop() ise enerji kesilene kadar sonsuz döngüde tekrar eder. Unutmayın: C++ dilinde büyük/küçük harf duyarlılığı vardır (digitalWrite doğru, digitalwrite hatalıdır) ve her komut satırı ; ile biter!

// UYGULAMA 1: 3 LED'li Akıllı Trafik Işığı Kavşağı (Pin 10: Kırmızı, Pin 9: Sarı, Pin 8: Yeşil)
void setup() {
  pinMode(10, OUTPUT);   // 10. pini dijital ÇIKIŞ olarak ayarla
  pinMode(9, OUTPUT);    // 9. pini dijital ÇIKIŞ olarak ayarla
  pinMode(8, OUTPUT);    // 8. pini dijital ÇIKIŞ olarak ayarla
  Serial.begin(9600);    // Bilgisayar ile 9600 baud hızında Seri Port ekranını başlat
}

void loop() {
  digitalWrite(10, HIGH); // Kırmızı LED'e 5V ver (YAK)
  digitalWrite(9, LOW);   // Sarı LED'i 0V yap (SÖNDÜR)
  digitalWrite(8, LOW);   // Yeşil LED'i 0V yap (SÖNDÜR)
  Serial.println("DUR: Kirmizi Isik Aktif");
  delay(3000);            // 3000 milisaniye = 3 saniye bekle

  digitalWrite(10, LOW);
  digitalWrite(9, HIGH);  // Sarı LED'i yak
  delay(1000);            // 1000 milisaniye = 1 saniye bekle

  digitalWrite(9, LOW);
  digitalWrite(8, HIGH);  // Yeşil LED'i yak
  Serial.println("GEC: Yesil Isik Aktif");
  delay(3000);
}
DİJİTAL PINLER (0 - 13) ATmega328P 5V / GND ANALOG (A0-A5)
Arduino Uno R3 Geliştirme Kartı
16 MHz kristal osilatör, USB arayüzü ve 14 dijital pin.
ATmega328P-PU 32KB FLASH • 2KB SRAM
ATmega328P Mikrodenetleyici
32 KB Flash bellek, 2 KB SRAM ve 10-bit analog dönüştürücü.
Kırmızı - Sarı - Yeşil Set
5mm LED Işık Yayıcılar
Kırmızı, sarı ve yeşil dijital sinyal göstergeleri.
✍️ BÖLÜM 2 UYGULAMA VE DEĞERLENDİRME ÇALIŞMA YAPRAĞI Puan: 20

A) Doğru ( D ) / Yanlış ( Y ) Soruları:

  • 1. Arduino'da void setup() fonksiyonu içerisindeki kodlar kart çalıştığı sürece sonsuz döngüde tekrar eder.[   ] Y
  • 2. delay(2500); komutu programı 2.5 saniye ($2500\,\text{ms}$) boyunca bekletir.[   ] D
  • 3. Bir dijital pinden LED yakabilmek için önce pinMode(pin, OUTPUT); ile çıkış tanımlanmalıdır.[   ] D
  • 4. Arduino Uno'nun 0 ve 1 numaralı pinleri (RX ve TX) bilgisayar ile USB seri haberleşme hattına bağlıdır.[   ] D
  • 5. C++ dilinde büyük-küçük harf kuralı yoktur; digitalwrite(13, high) komutu hatasız çalışır.[   ] Y

B) Boşluk Doldurma (Kelimeler: HIGH | loop() | 9600 | noktalı virgül (;) | 1000):

  • 1. Ana program akışının sürekli tekrar ettiği fonksiyonun adı void loop() fonksiyonudur.
  • 2. Dijital çıkış pinine $5\text{V}$ gerilim göndermek için digitalWrite(pin, HIGH); parametresi yazılır.
  • 3. C++ dilinde blok tanımları hariç her komut satırının sonuna noktalı virgül (;) konulmalıdır.
  • 4. 1 saniye 1000 milisaniyeye ($\text{ms}$) eşittir.
  • 5. Seri port ekranını standart hızda başlatmak için Serial.begin(9600); komutu kullanılır.
BÖLÜM 3 • DİJİTAL GİRİŞ VE KARAR MEKANİZMALARI

3. Buton Okuma (digitalRead), Pull-Down Direnci ve if / else Yapısı

2. Hafta • 1. Saat

Arduino'nun dış dünyadaki bir anahtarı veya butonu algılamasına Dijital Giriş (Digital Input) denir. Pin giriş olarak ayarlandığında (pinMode(2, INPUT);), o pindeki voltaj digitalRead(2) fonksiyonu ile okunur: Pinde $5\text{V}$ varsa sonuç HIGH (1), $0\text{V}$ varsa sonuç LOW (0) döner.

⚡ "Yüzen Pin" (Floating Pin) Sorunu Nedir?

Bir butonu sadece $5\text{V}$ ile Arduino'nun 2. pini arasına bağlarsanız, butona basılmadığı anlarda 2. pin havada (boşta) kalır. Boştaki bir pin tıpkı bir anten gibi ortamdaki elektromanyetik gürültüyü kapar ve kendi kendine rastgele HIGH / LOW üretir!

Çözüm (Pull-Down Direnci): Butona basılmadığında pini güvenli şekilde $0\text{V}$ (GND) seviyesine çekmek için pin ile GND arasına $10\,\text{k}\Omega$ değerinde bir direnç bağlanır. Butona basıldığında ise $5\text{V}$ doğrudan pine ulaşır ve pin HIGH olur.

💡 Dahili Pull-Up İpucu: Harici direnç kullanmak istemezseniz pinMode(2, INPUT_PULLUP); yazarak Arduino içindeki $20\,\text{k}\Omega$ direnci aktif edebilirsiniz. Bu modda buton পিন ile GND arasına bağlanır; basılı değilken HIGH, basıldığında LOW okunur!
10 kΩ Pull-Down Dirençli Buton Devresi +5V Push Buton Pin D2 10 kΩ (Pull-Down) GND (0V)
Şekil 3.1: Pull-Down Direnci Sayesinde Buton Bırakıldığında Pin D2 Kesin Olarak 0V Okur

🔀 3.2 Karar Yapıları (if / else) ve Karşılaştırma Operatörleri

Programın bir koşula göre farklı işlemler yapması için if (koşul) { ... } else { ... } kullanılır. En sık yapılan öğrenci hatası: Koşul parantezi içinde eşitlik kontrolü yaparken çift eşittir == yerine tek eşittir = (atama operatörü) yazmaktır! (Doğrusu: if (butonDurumu == HIGH)).

// UYGULAMA 2: Buton Kontrollü Yaya Geçidi (Buton: Pin 2, LED: Pin 10)
void setup() {
  pinMode(2, INPUT);     // 2. pini dijital GİRİŞ yap
  pinMode(10, OUTPUT);   // 10. pini dijital ÇIKIŞ yap
}

void loop() {
  int butonDurumu = digitalRead(2); // Butonu oku (HIGH veya LOW)

  if (butonDurumu == HIGH) {        // DİKKAT: Çift eşittir (==) kullanılır!
    digitalWrite(10, HIGH);         // Butona basıldıysa LED'i yak
  } else {
    digitalWrite(10, LOW);          // Basılmadıysa LED'i söndür
  }
}
BAS-ÇEK
4 Bacaklı Taktil Buton
Yaylı anlık bas-bırak kullanıcı anahtarı.
10 kΩ (Kahve - Siyah - Turuncu)
10 kΩ Pull-Down Direnci
Giriş pinini kararlı 0V GND seviyesine çeker.
Esnek Bağlantı Jumper Hatları
Erkek-Erkek Jumper Telleri
Arduino pinlerinden devre tahtasına esnek aktarım.
✍️ BÖLÜM 3 UYGULAMA VE DEĞERLENDİRME ÇALIŞMA YAPRAĞI Puan: 20

A) Doğru ( D ) / Yanlış ( Y ) Soruları:

  • 1. Dijital bir pindeki voltaj durumunu (0 veya 1) okumak için digitalWrite() fonksiyonu kullanılır.[   ] Y
  • 2. Pull-down direnci kullanılmazsa buton boşta kaldığında pin elektromanyetik gürültüden etkilenerek hatalı tetiklenir.[   ] D
  • 3. C++ dilinde iki değerin birbirine eşit olup olmadığını kontrol etmek için == operatörü kullanılır.[   ] D
  • 4. if (kosul); satırında parantezden hemen sonra noktalı virgül koymak koşul bloğunun bozulmasına yol açar.[   ] D
  • 5. Mantıksal "VE" (AND) işlemi için C++ dilinde || sembolü kullanılır.[   ] Y

B) Boşluk Doldurma (Kelimeler: digitalRead | Pull-Down | INPUT_PULLUP | == | &&):

  • 1. 2 numaralı pindeki butonun basılı olup olmadığını okumak için digitalRead(2) yazılır.
  • 2. Butona basılmadığında giriş pinini $10\,\text{k}\Omega$ direnç ile GND'ye bağlama yöntemine Pull-Down bağlantısı denir.
  • 3. Harici direnç takmadan Arduino'nun iç direncini kullanmak için pinMode(2, INPUT_PULLUP); kullanılır.
  • 4. if (deger == HIGH) ifadesinde eşitlik karşılaştırması yapılmaktadır.
  • 5. İki şartın aynı anda sağlanmasını kontrol eden mantıksal VE operatörü && işaretidir.
BÖLÜM 4 • ANALOG GİRİŞ (ADC), GERİLİM BÖLÜCÜ VE PWM

4. Potansiyometre, LDR Işık Sensörü (analogRead) ve PWM (analogWrite)

2. Hafta • 2. Saat

Doğadaki büyüklükler (ortam ışığı, sıcaklık, ses şiddeti) sadece "var/yok" şeklinde değil, kesintisiz (sürekli) değişen Analog değerlerdir. Arduino Uno'nun A0 – A5 pinlerinde bulunan 10-Bit ADC (Analog-to-Digital Converter) birimi, $0\text{V}$ ile $5\text{V}$ arasındaki gerilimi $2^{10} = 1024$ eşit adıma böler ve analogRead(A0) komutuyla 0 ile 1023 arasında bir tam sayıya dönüştürür:

$$\text{Okunan ADC Değeri} = \frac{V_{\text{pin}}}{5\text{V}} \times 1023 \quad \Longrightarrow \quad 0\text{V} \to 0, \quad 2.5\text{V} \to 512, \quad 5\text{V} \to 1023$$

☀️ LDR (Foto-Direnç) ve Gerilim Bölücü

LDR (Light Dependent Resistor), üzerine düşen ışık şiddeti arttıkça direnci düşen ($500\,\Omega$'a kadar), karanlıkta ise direnci çok yükselen ($>100\,\text{k}\Omega$) bir sensördür. Arduino doğrudan direnç ölçemez, sadece voltaj ölçer! Bu yüzden LDR'yi $10\,\text{k}\Omega$ sabit direnç ile seri bağlayarak bir Gerilim Bölücü (Voltage Divider) kurarız ve iki elemanın tam birleşim (orta) noktasını A0 pinine bağlarız.

〰️ PWM (Darbe Genişlik Modülasyonu)

Arduino'nun ~3, ~5, ~6, ~9, ~10, ~11 pinleri 8-Bit PWM üretir. analogWrite(pin, deger) fonksiyonu 0 ile 255 arasında bir sayı alır: 0 (%0 Duty Cycle = $0\text{V}$), 127 (%50 Duty Cycle = yarım parlaklık), 255 (%100 Duty Cycle = tam parlaklık).

LDR Gerilim Bölücü +5V LDR A0 10kΩ GND 8-Bit PWM Sinyali (0-255) analogWrite(9, 64) → %25 analogWrite(9, 127) → %50 analogWrite(9, 255) → %100
Şekil 4.1: LDR Gerilim Bölücü Bağlantısı ve PWM Duty Cycle Dalgaları
// UYGULAMA 3: Otomatik Sokak Lambası ve Potansiyometre ile Parlaklık (Dimmer)
void setup() {
  pinMode(9, OUTPUT);    // ~9 numaralı PWM pini çıkış
  pinMode(8, OUTPUT);    // 8 numaralı Sokak Lambası LED pini
  Serial.begin(9600);
}

void loop() {
  int potDegeri = analogRead(A0);                 // 0 - 1023 arası 10-bit okuma
  int pwmParlaklik = map(potDegeri, 0, 1023, 0, 255); // 0-1023 aralığını 0-255'e ölçekle
  analogWrite(9, pwmParlaklik);                   // LED parlaklığını ayarla

  int isikSeviyesi = analogRead(A1);              // LDR ışık sensörünü oku
  if (isikSeviyesi < 350) {                       // Hava karardıysa (eşik 350'nin altı)
    digitalWrite(8, HIGH);                        // Sokak lambasını OTOMATİK YAK
  } else {
    digitalWrite(8, LOW);                         // Hava aydınlıksa SÖNDÜR
  }
  delay(100);
}
LDR Sensör
LDR (Işığa Duyarlı Direnç)
Işık aldıkça direnci düşen kadmiyum sülfit foto-direnç.
10 kΩ Döner Pot
10 kΩ Döner Potansiyometre
0-5V arası kesintisiz analog voltaj bölen ayarlı direnç.
PWM Kademeli LED
PWM Dimmer Kontrollü LED
analogWrite() ile 0-255 arası parlaklık modülasyonu.
✍️ BÖLÜM 4 UYGULAMA VE DEĞERLENDİRME ÇALIŞMA YAPRAĞI Puan: 15

A) Doğru ( D ) / Yanlış ( Y ) Soruları:

  • 1. Arduino Uno'da analogRead(A0) komutu 0 ile 255 arasında bir sayı döndürür.[   ] Y
  • 2. analogWrite() komutu Arduino Uno'daki tüm dijital pinlerde (0'dan 13'e kadar hepsinde) PWM üretir.[   ] Y
  • 3. LDR (Foto-direnç) üzerine düşen ışık arttıkça elektriksel direnci azalır.[   ] D
  • 4. Analog giriş pinine tam $2.5\text{V}$ gerilim uygulandığında analogRead() yaklaşık 512 değerini okur.[   ] D
  • 5. 10-bitlik ADC değerini 8-bitlik PWM değerine dönüştürmek için map(deger, 0, 1023, 0, 255) kullanılır.[   ] D

B) Boşluk Doldurma (Kelimeler: 1023 | 255 | Gerilim Bölücü | ~ (dalga) | analogRead):

  • 1. 10-bitlik ADC birimi $5\text{V}$ gerilimi en fazla 1023 tam sayısına karşılık gelecek şekilde okur.
  • 2. analogWrite(9, 255); komutu %100 görev döngüsü (tam parlaklık) sağlar.
  • 3. LDR gibi direnç tipi sensörleri Arduino ile okumak için sabit bir dirençle Gerilim Bölücü devre kurulur.
  • 4. PWM destekleyen pinler Arduino kartı üzerinde ~ (dalga) işareti ile belirtilmiştir.
  • 5. A0 pinindeki potansiyometre voltajını okumak için analogRead(A0) fonksiyonu çağrılır.
BÖLÜM 5 • AKTİF SENSÖRLER, ZAMAN ÖLÇÜMÜ VE SES FİZİĞİ

5. HC-SR04 Ultrasonik Mesafe Sensörü, NTC Termistör ve Buzzer

3. Hafta • 1. ve 2. Saat

HC-SR04 Ultrasonik Mesafe Sensörü, yarasaların ve yunusların yön bulma (ekolokasyon) prensibiyle çalışır. İnsan kulağının duyma sınırının ($20\,\text{kHz}$) üzerinde, $40\,\text{kHz}$ frekansında ultrasonik ses dalgası gönderir ve sesin engele çarpıp geri dönme süresini (Time-of-Flight) ölçerek $2\,\text{cm}$ ile $400\,\text{cm}$ arasındaki mesafeyi hesaplar.

📐 Mesafe Formülü Neden 2'ye Bölünür?

  • Sesin oda sıcaklığındaki havada yayılma hızı yaklaşık $343\,\text{m/s} = 0.0343\,\text{cm/}\mu\text{s}$'dir ($1\text{ saniye} = 1.000.000\text{ mikrosaniye}$).
  • Arduino'nun pulseIn(ECHO, HIGH) komutu, sesin sensörden çıkıp engele gidişi + dönüşü için geçen toplam süreyi mikrosaniye ($\mu\text{s}$) cinsinden verir.
  • Sadece tek yönlü mesafeyi bulmak için toplam yol 2'ye bölünür: $$\text{Mesafe (cm)} = \frac{\text{Süre (\mu s)} \times 0.0343}{2}$$

📌 HC-SR04'ün 4 Pini

VCC ($+5\text{V}$), TRIG (Tetikleme Girişi - Arduino'dan $10\,\mu\text{s}$ sinyal alır), ECHO (Yankı Çıkışı - Ses dönene kadar HIGH kalır), GND ($0\text{V}$).

HC-SR04 Ultrasonik Uçuş Süresi (Time-of-Flight) T R 1) TRIG → 40 kHz Giden Ses Dalgası (d) 2) ECHO ← Engele Çarpıp Dönen Yankı (d) ENGEL Örnek: Süre = 1000 µs ise Mesafe = (1000 × 0.0343) / 2 = 17.15 cm
Şekil 5.1: Ultrasonik Ses Dalgasının Engele Gidiş-Dönüşü ve Mesafe Hesabı
// UYGULAMA 4: Sesli ve LED İkazlı Otomobil Park Sensörü (TRIG: Pin 6, ECHO: Pin 7, Buzzer: Pin 3)
const int TRIG_PIN = 6;
const int ECHO_PIN = 7;
const int BUZZER_PIN = 3;
const int KIRMIZI_LED = 10;

void setup() {
  pinMode(TRIG_PIN, OUTPUT);   // TRIG pini ses göndermek için ÇIKIŞ
  pinMode(ECHO_PIN, INPUT);    // ECHO pini yankıyı dinlemek için GİRİŞ
  pinMode(BUZZER_PIN, OUTPUT);
  pinMode(KIRMIZI_LED, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  // 1. Adım: Sensörü tetiklemek için TRIG pininden 10 mikrosaniyelik HIGH darbesi gönder
  digitalWrite(TRIG_PIN, LOW);
  delayMicroseconds(2);
  digitalWrite(TRIG_PIN, HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIG_PIN, LOW);

  // 2. Adım: ECHO pininin HIGH kaldığı süreyi mikrosaniye cinsinden ölç ve cm'ye çevir
  long sure = pulseIn(ECHO_PIN, HIGH);
  int mesafe = (sure * 0.0343) / 2;

  Serial.print("Mesafe: ");
  Serial.print(mesafe);
  Serial.println(" cm");

  if (mesafe > 0 && mesafe < 20) { // 20 cm'den yakınsa tehlike alarmı!
    digitalWrite(KIRMIZI_LED, HIGH);
    tone(BUZZER_PIN, 1000);        // Buzzer'dan 1000 Hz ses üret
  } else {
    digitalWrite(KIRMIZI_LED, LOW);
    noTone(BUZZER_PIN);            // Sesi sustur
  }
  delay(100);
}
T R VCC | TRIG | ECHO | GND
HC-SR04 Ultrasonik Modül
40 kHz ultrasonik sesle 2-400 cm mesafe tespiti.
SG90 0°-180° Servo
SG90 Mikro Servo Motor
0-180 derece açısal radar ve engel bariyeri kontrolü.
+ 5V Piezo Buzzer
5V Piezo Akustik Buzzer
Frekans kontrollü sesli park ikaz sinyali.
✍️ BÖLÜM 5 UYGULAMA VE DEĞERLENDİRME ÇALIŞMA YAPRAĞI Puan: 15

A) Doğru ( D ) / Yanlış ( Y ) Soruları:

  • 1. HC-SR04 sensöründe TRIG pini INPUT, ECHO pini ise OUTPUT olarak ayarlanmalıdır.[   ] Y
  • 2. Mesafe formülünde süreyi 2'ye bölmemizin nedeni, ses dalgasının engele gidip geri dönerek iki kat yol almasıdır.[   ] D
  • 3. pulseIn(ECHO_PIN, HIGH) fonksiyonu süreyi milisaniye değil, mikrosaniye ($\mu\text{s}$) cinsinden döndürür.[   ] D
  • 4. NTC termistör ısıtıldığında (sıcaklık arttığında) direnci azalan bir sıcaklık sensörüdür.[   ] D
  • 5. Piezo buzzer'dan belirli bir frekansta ses çıkarmak için tone(pin, frekans) komutu kullanılır.[   ] D

B) Boşluk Doldurma (Kelimeler: pulseIn | 10 | 0.0343 | noTone | ECHO):

  • 1. HC-SR04'ün ses dalgası göndermesini başlatmak için TRIG pinine 10 mikrosaniye süreyle HIGH verilir.
  • 2. Ses dalgası geri dönene kadar HIGH seviyesinde kalan yankı pininin adı ECHO pinidir.
  • 3. Bir pindeki darbenin süresini mikrosaniye olarak ölçen Arduino komutu pulseIn fonksiyonudur.
  • 4. Sesin havadaki hızı mikrosaniye başına yaklaşık 0.0343 santimetredir ($\text{cm/}\mu\text{s}$).
  • 5. Buzzer'dan çıkan sesi durdurmak (susturmak) için noTone(pin) komutu kullanılır.
BÖLÜM 6 • I2C HABERLEŞME PROTOKOLÜ VE BİTİRME PROJESİ

6. I2C 16x2 LCD Ekran Kullanımı ve Çoklu Sensör İstasyonu

4. Hafta • 1. ve 2. Saat

Arduino projelerimiz bilgisayara bağlı değilken (örneğin pil veya adaptörle çalışırken) sensör değerlerini görmek için 16x2 Karakter LCD Ekran (2 satır, her satırda 16 karakter) kullanırız. Standart bir LCD ekranı doğrudan bağlamak 12–16 kablo gerektirirken, ekranın arkasına takılan I2C Adaptör Modülü (PCF8574) sayesinde sadece 2 veri kablosu (SDA ve SCL) ile tüm ekran kontrol edilir!

🔗 Arduino Uno I2C Pin Eşleşmesi

I2C LCD Pini Arduino Uno Pini Görevi
GND GND Toprak ($0\text{V}$) Hattı
VCC 5V Güç Beslemesi ($+5\text{V}$)
SDA A4 Serial Data (Seri Veri Hattı)
SCL A5 Serial Clock (Saat Senkron Hattı)

💡 I2C Adresi ve Kontrast İpucu: Piyasadaki I2C modüllerinin adresi genellikle 0x27 veya 0x3F'tir. Ekranın arka ışığı yanıyor ama harfler görünmüyorsa I2C modülü üzerindeki mavi trimpotu yıldız tornavida ile çevirerek kontrastı ayarlayın.

Sütun: 0 1 2 3 4 5 ... 14 15 Satır 0: MESAFE: 24 cm Satır 1: ISIK: 68% NORMAL lcd.setCursor(sütun, satır) → Sol üst köşe (0, 0) | Alt satır başı (0, 1) SDA → A4 | SCL → A5 | Adres: 0x27
Şekil 6.1: 16x2 I2C LCD Ekranın Satır ve Sütun Koordinat Sistemi (0'dan Başlar)
// BİTİRME PROJESİ: Çoklu Sensör İstasyonu ve I2C LCD Dijital Gösterge Paneli
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 16, 2); // 0x27 adresli, 16 sütun 2 satır LCD tanımla

void setup() {
  pinMode(6, OUTPUT);  // HC-SR04 TRIG
  pinMode(7, INPUT);   // HC-SR04 ECHO
  pinMode(10, OUTPUT); // Uyarı LED'i
  lcd.init();          // LCD ekranı başlat
  lcd.backlight();     // Arka plan aydınlatmasını aç
}

void loop() {
  // 1. Ultrasonik Mesafe Ölçümü
  digitalWrite(6, LOW); delayMicroseconds(2);
  digitalWrite(6, HIGH); delayMicroseconds(10);
  digitalWrite(6, LOW);
  int mesafe = (pulseIn(7, HIGH) * 0.0343) / 2;

  // 2. LDR Işık Yüzdesi Hesabı (A1 Pini)
  int isikYuzde = map(analogRead(A1), 0, 1023, 0, 100);

  // 3. LCD Ekrana Yazdırma
  lcd.clear();
  lcd.setCursor(0, 0);          // 1. Satır, 1. Sütun
  lcd.print("Mesafe: "); lcd.print(mesafe); lcd.print(" cm");
  lcd.setCursor(0, 1);          // 2. Satır, 1. Sütun
  lcd.print("Isik: %"); lcd.print(isikYuzde);

  digitalWrite(10, (mesafe < 15) ? HIGH : LOW);
  delay(250);
}
MESAFE: 24 cm ISIK: %75 NORMAL SDA(A4) • SCL(A5)
16x2 I2C Karakter LCD Ekran
PCF8574 modülüyle A4 (SDA) ve A5 (SCL) bağlantısı.
DHT22 / AM2302 Sıcaklık & Nem Sensörü
DHT22 Sıcaklık ve Nem Sensörü
Hassas ortam telemetrisi ve tek pinli dijital veri yolu.
UNO R3 LCD Sensör & Ekran Entegre İstasyon
Entegre Telemetri İstasyonu
Sensör ve ekranların tek çatı altında birleştiği bitirme sistemi.
✍️ BÖLÜM 6 UYGULAMA VE DEĞERLENDİRME ÇALIŞMA YAPRAĞI Puan: 10

A) Doğru ( D ) / Yanlış ( Y ) Soruları:

  • 1. Arduino Uno'da I2C haberleşmesi için SDA pini A4'e, SCL pini ise A5'e bağlanır.[   ] D
  • 2. 16x2 LCD ekranda alt satırın en başına yazı yazmak için lcd.setCursor(1, 2); komutu kullanılır.[   ] Y
  • 3. Aynı I2C veri hattına (A4 ve A5) adresleri farklı olmak şartıyla birden fazla sensör ve ekran bağlanabilir.[   ] D
  • 4. LCD ekranın arka ışığını açmak için lcd.backlight(); fonksiyonu çağrılır.[   ] D
  • 5. SDA ve SCL kabloları ters bağlansa bile LCD ekran ekrana yazı yazdırmaya devam eder.[   ] Y

B) Boşluk Doldurma (Kelimeler: A4 ve A5 | 0x27 | lcd.setCursor(0, 1) | lcd.clear() | I2C):

  • 1. 16 pinli LCD ekranı sadece 2 veri kablosuyla sürmemizi sağlayan haberleşme protokolüne I2C denir.
  • 2. Arduino Uno kartında SDA ve SCL hatları sırasıyla A4 ve A5 analog pinlerinde bulunur.
  • 3. İmleci ikinci (alt) satırın en başına taşımak için lcd.setCursor(0, 1) komutu yazılır.
  • 4. Ekrandaki eski yazıları tamamen silip temizlemek için lcd.clear() fonksiyonu kullanılır.
  • 5. I2C LCD modüllerinin en yaygın varsayılan donanım adresi 0x27 (veya 0x3F) değeridir.
BÖLÜM 7 • AKTÜATÖRLER VE GÜÇ ELEKTRONİĞİ

7. DC Motorlar, Transistör Sürücüler, SG90 Servo ve Röle Modülü

Güç & Aktüatörler

⚙️ 7.1 Neden Doğrudan Arduino Pini ile Motor Çalıştırılmaz?

Arduino Uno'nun dijital I/O pinleri maksimum $40\,\text{mA}$ (önerilen güvenli sınır $20\,\text{mA}$) akım sağlayabilir. Küçük bir $5\text{V}$ DC hobi motoru boşta çalışırken bile $200\text{--}300\,\text{mA}$, ilk kalkış (stall) anında ise $800\,\text{mA}$ akım çeker. Doğrudan pine bağlanan bir motor mikrokontrolörün çıkış katını anında yakar!

Bu nedenle motor gibi yüksek akımlı yükler bir anahtarlama elemanı (NPN Transistör, MOSFET veya Motor Sürücü Entegre) üzerinden sürülür. Arduino sadece transistörün Base bacağına küçük bir kontrol sinyali ($2\text{--}5\,\text{mA}$) göndererek motorun ana akımını yönetir.

⚡ FLYBACK (TERS) DİYOT VE ENDÜKTİF GERİLİM TEHLİKESİ:
DC motor ve röle bobinleri birer endüktif yüktür. Transistör aniden kapandığında bobinde depolanan manyetik enerji çöker ve Lenz Kanunu gereği ters yönde yüzlerce voltluk bir gerilim darbesi (Back-EMF) oluşur. Bu yüksek voltaj transistörü deler. Motora ters paralel bağlanan bir 1N4007 Flyback Diyotu bu tehlikeli enerjiyi kendi üzerinde sönümleyerek devreyi korur.

🔄 7.2 SG90 Servo Motor ve Röle Modülü Mimarisi

SG90 Mini Servo Motor: İçerisinde DC motor, dişli kutusu, potansiyometre ve sürücü devre barındıran kapalı çevrim bir aktüatördür. $0^\circ$ ile $180^\circ$ arasında hassas açısal kontrol sağlar. $50\,\text{Hz}$ ($20\,\text{ms}$) periyotlu PWM darbesi ile sürülür: $1.0\,\text{ms} \approx 0^\circ$, $1.5\,\text{ms} \approx 90^\circ$, $2.0\,\text{ms} \approx 180^\circ$.

#include <Servo.h>
Servo motor;
void setup() { motor.attach(9); } // Pin 9'a bağla
void loop() {
  motor.write(90);  // 90 dereceye git
  delay(1000);
  motor.write(180); // 180 dereceye git
  delay(1000);
}

5V Röle Modülü: Yüksek voltajlı cihazları ($220\text{V}$ AC şebeke ampulü, $12\text{V}$ solenoid valf) düşük voltajlı Arduino ile açıp kapatan elektromekanik anahtardır. Üzerindeki optokuplör sayesinde yüksek voltaj tarafı ile Arduino tamamen izole edilir.

ARDUINO UNO Pin 9 (PWM) & GND Pin 9 GND 1 kΩ NPN (2N2222) M DC MOTOR 1N4007 Flyback HARİCİ PİL / BESLEME +5V / +9V Motor Gücü Ortak GND Bağlantısı Şart!
📝 BÖLÜM 7 ÇALIŞMA YAPRAĞI: Aktüatörler, Motorlar ve Sürücüler Değerlendirme: 10 Soru

A) Doğru mu? Yanlış mı? (D / Y)

  • 1. Arduino dijital çıkış pini bir DC motoru doğrudan güvenle çalıştırabilir. [ Y ]
  • 2. Flyback ters diyot, motor durdurulduğunda bobinin ürettiği yüksek gerilimden transistörü korur. [ D ]
  • 3. Röle modülü, yüksek voltajlı yükleri mikrodenetleyiciden optik olarak izole eder. [ D ]
  • 4. SG90 servo motoru 0° ile 180° arasındaki pozisyonunu PWM darbe genişliği sinyali ile korur. [ D ]
  • 5. Harici pille çalışan motor devresinde pilin GND ucu Arduino GND ucuna bağlanmamalıdır. [ Y ]

B) Boşluk Doldurma Soruları

  • 1. Yüksek akımlı motorları Arduino ile sürmek için araya Transistör veya motor sürücü bağlanır.
  • 2. Motor durduğunda ters indüklenen gerilimi sönümleyen elemana Flyback diyot denir.
  • 3. Harici pil ile Arduino arasında referansı eşitlemek için Ortak GND hattı çekilmelidir.
  • 4. SG90 servo motorunu kolayca sürmek için Arduino IDE'de Servo.h kütüphanesi kullanılır.
  • 5. Röle kartlarında mikrodenetleyiciyi elektriksel parazitlerden ayıran elemana Optokuplör denir.
BÖLÜM 8 • SORUN GİDERME VE TEST METODOLOJİSİ

8. Multimetre ile Arıza Tespiti, Serial Telemetri ve Hata Rehberi

Troubleshooting & Test

🔍 8.1 Sistematik Mühendislik Hata Arama Algoritması

Laboratuvarda bir devre çalışmadığında rastgele parçaları değiştirmek yerine 4 adımlı mühendislik metodolojisi izlenir:

  1. Görsel Muayene: Yanık kokusu var mı? Jumper kablolar breadboard deliklerine tam oturmuş mu? Entegreler ters takılmış mı?
  2. Enerjisiz Süreklilik (Buzzer) Testi: Devreye güç VERİLMEDEN ÖNCE multimetre süreklilik moduna alınır. 5V hattı ile GND arasına problar değdirilir. Buzzer ötüyorsa KISA DEVRE vardır, güç verilirse kart yanar!
  3. Gerilim Doğrulama: Güç verildiğinde multimetre DC 20V kademesine alınır; 5V rayında $4.9\text{--}5.1\,\text{V}$ ölçülmelidir. Düşükse aşırı akım veya çöken besleme vardır.
  4. Yazılımsal İzolasyon: Karmaşık kod parça parça yorum satırına (//) alınarak test edilir.
⚠️ MULTİMETRE İLE AKIM (mA) ÖLÇÜMÜ KURALI:
Voltaj paralel ölçülür; fakat Akım DAİMA SERİ ölçülür! Multimetre akım modundayken iç direnci neredeyse sıfırdır. Devreye paralel bağlanırsa kısa devre oluşturur ve multimetrenin iç sigortasını patlatır!

🛠️ 8.2 En Sık Karşılaşılan 4 Laboratuvar Hatası

Hata BelirtisiGerçek NedenMühendislik Çözümü
"avrdude: stk500 sync error" D0 (RX) veya D1 (TX) pinine kablo takılı olması veya yanlış COM Port. D0/D1'deki kabloları sökün, doğru COM portunu seçip yeniden yükleyin.
Arduino Sürekli Kendini Resetliyor Motor veya servo 5V pininden beslenirken ani voltaj çökmesi (Brown-out). Motoru harici pille besleyin, Arduino ile Ortak GND yapın.
Buton Kendi Kendine Rastgele Basıyor Giriş pininin boşta yüzmesi (Floating pin gürültüsü). 10 kΩ Pull-Down direnci bağlayın veya INPUT_PULLUP modunu açın.
Serial Monitor'de Bozuk Karakterler (???) Baud rate hız uyumsuzluğu. Kodda Serial.begin(9600) varsa monitör altından 9600 seçin.
1. VOLTAJ ÖLÇÜMÜ (PARALEL) Yük (R) V DC Devre kesilmez, iki uca dokunulur 2. AKIM ÖLÇÜMÜ (SERİ BAĞLANTI) mA Yük (R) ⚠️ Hat kesilir, alet araya seri girer! 3. BUZZER KISA DEVRE TESTİ 🔊 5V Rayı GND Rayı Ötüyorsa Kısa Devre Var! Güç Verme!
📝 BÖLÜM 8 ÇALIŞMA YAPRAĞI: Sorun Giderme ve Hata Ayıklama Değerlendirme: 10 Soru

A) Doğru mu? Yanlış mı? (D / Y)

  • 1. Devreye enerji verilmeden önce multimetre buzzer modu ile 5V-GND kısa devre kontrolü yapılır. [ D ]
  • 2. Arduino'ya kod yüklerken D0 (RX) pininde kablo olması yükleme sürecini engellemez. [ Y ]
  • 3. Serial Monitor'de bozuk karakterler çıkması baud rate hız uyumsuzluğundan kaynaklanır. [ D ]
  • 4. Motor çalıştığında Arduino'nun kilitlenmesi anlık voltaj çökmesinden (Brown-out) kaynaklanır. [ D ]
  • 5. Multimetre ile akım (mA) ölçümü yapılırken problar devreye paralel bağlanmalıdır. [ Y ]

B) Boşluk Doldurma Soruları

  • 1. 5V ile GND hatlarının dirençsiz doğrudan birleşmesine Kısa Devre denir.
  • 2. Multimetre ile akım (mA) ölçümü yapılırken alet devreye Seri bağlanmalıdır.
  • 3. Seri haberleşmede saniyedeki sembol iletim hızına Baud Rate denir.
  • 4. Voltajın eşik değerin altına inmesiyle kartın kendini kapatıp açmasına Brown-out denir.
  • 5. USB üzerinden program yüklerken kullanılan donanım pinleri D0 ve D1 (RX/TX) pinleridir.
EKLER • MÜHENDİS HIZLI BAŞVURU KARTI

Arduino Uno Pinout, Direnç Tablosu ve C++ Komut Kartı

Cheat-Sheet & Formüller

🗺️ 1. Arduino Uno R3 Donanım & Pinout Hızlı Referans Haritası

Pin Grubu Pin Numaraları Özel Donanım Görevi Elektriksel Sınırlar & Özellikler
Dijital I/O D0 – D13 Giriş / Çıkış (HIGH = 5V, LOW = 0V) Pin başına max $40\,\text{mA}$, önerilen $20\,\text{mA}$.
PWM Çıkışları ~3, ~5, ~6, ~9, ~10, ~11 8-bit Analog Benzetimi (analogWrite: 0–255) D5, D6: 980 Hz | D3, D9, D10, D11: 490 Hz frekans.
Analog Girişler A0 – A5 10-bit ADC (analogRead: 0–1023) Giriş aralığı $0\text{--}5\,\text{V}$, çözünürlük $4.88\,\text{mV/adım}$.
I2C Veri Yolu A4 (SDA) & A5 (SCL) 2 Telli Sensör/Ekran Ağı (LCD, RTC, MPU6050) 4.7 kΩ pull-up dirençleri ile 5V seviyesine çekilir.
SPI Veri Yolu D10 (SS), D11 (MOSI), D12 (MISO), D13 (SCK) Yüksek Hızlı Seri Veri Yolu (SD Kart, RFID-RC522) Master/Slave çalışma mimarisi.
Donanım Kesmeleri Pin 2 (INT0) & Pin 3 (INT1) Anlık Harici Kesme (attachInterrupt) Enkoder okuma ve acil durum butonları için kritiktir.
UART Seri Port D0 (RX) & D1 (TX) Bilgisayar USB Haberleşmesi ve Kod Yükleme Kod yüklenirken bu pinler boş bırakılmalıdır!

🎨 2. Direnç Renk Kodları (Sokakta Sayan Avukat)

RenkSayıÇarpanTolerans
Siyah0$10^0 = 1$-
Kahverengi1$10^1 = 10$±%1
Kırmızı2$10^2 = 100$±%2
Turuncu3$10^3 = 1.000$ (1k)-
Sarı4$10^4 = 10.000$ (10k)-
Yeşil5$10^5 = 100.000$±%0.5
Mavi6$10^6 = 1.000.000$ (1M)±%0.25
Mor7$10^7$±%0.1
Gri8$10^8$-
Beyaz9$10^9$-
Altın-$0.1$±%5
Gümüş-$0.01$±%10

💻 3. En Sık Kullanılan Arduino C++ Komutları

FonksiyonAçıklama & Örnek Kullanım
pinMode(p, MOD);Pini OUTPUT, INPUT veya INPUT_PULLUP yapar.
digitalWrite(p, V);Pini HIGH (5V) veya LOW (0V) yapar.
digitalRead(p);Pindeki dijital seviyeyi okur (1 veya 0).
analogRead(A0);Analog voltajı okur ($0\text{--}1023$ tamsayı döner).
analogWrite(p, V);PWM pini üzerinden sinyal üretir ($0\text{--}255$).
delay(ms);İşlemciyi belirtilen milisaniye kadar durdurur.
millis();Arduino açıldığından beri geçen milisaniyeyi döner.
map(x,a,b,c,d);Değeri $[a, b]$ aralığından $[c, d]$ aralığına oranlar.
Serial.begin(9600);Seri haberleşmeyi 9600 baud hızında başlatır.
Serial.println(v);Veriyi terminale yazar ve alt satıra geçer.
⚡ MÜHENDİSLİK TEMEL HESAPLAMA FORMÜLLERİ KARTI
Ohm Kanunu
V = I × R
I = V / R
Elektriksel Güç
P = V × I
P = I² × R
Gerilim Bölücü
Vout = Vin × R2/(R1+R2)
Sonar Mesafe
D = (t × 0.0343) / 2
ADC Voltajı
V = (ADC × 5.0) / 1023
BÖLÜM 9 • ÖLÇME DEĞERLENDİRME VE CEVAP ANAHTARI

9. Kurs Sonu Genel Değerlendirme Testi ve Tam Cevap Anahtarı

Genel Sınav & Anahtar

📝 Çoktan Seçmeli Genel Değerlendirme Testi (Her soru 10 puandır)

1. $5\text{V}$ gerilim kaynağından beslenen bir devrede $250\,\Omega$ direnç kullanılırsa devreden kaç $\text{mA}$ akım geçer?
A) $5\,\text{mA}$   B) $10\,\text{mA}$   C) $20\,\text{mA}$   D) $50\,\text{mA}$

2. Renk halkaları "Kahverengi - Siyah - Kırmızı - Altın" olan direncin değeri kaçtır?
A) $100\,\Omega$   B) $220\,\Omega$   C) $1\,\text{k}\Omega$   D) $10\,\text{k}\Omega$

3. Arduino Uno'da aşağıdakilerden hangisi bir PWM (~) çıkış pini DEĞİLDİR?
A) Pin 3   B) Pin 6   C) Pin 8   D) Pin 9

4. Buton okuma devresinde pinin boşta kalarak rastgele tetiklenmesini önleyen $10\,\text{k}\Omega$ GND direncine ne ad verilir?
A) Ön Direnç   B) Pull-Down   C) LDR   D) Termistör

5. Arduino'nun A0 analog pinine $5\text{V}$ uygulandığında analogRead(A0) kaç döndürür?
A) 1   B) 255   C) 512   D) 1023

6. analogWrite(9, 127); komutu uygulanan bir LED hangi parlaklık oranında yanar?
A) Yanmaz (%0)   B) Yarım (%50)   C) Tam (%100)   D) Hata verir

7. LDR ışık sensörü karanlık bir ortama girdiğinde direnci nasıl değişir?
A) Sıfır olur   B) Çok büyür (Artar)   C) Azalır   D) Değişmez

8. HC-SR04 sensöründe pulseIn(ECHO, HIGH) ile $580\,\mu\text{s}$ ölçüldüğünde engel yaklaşık kaç $\text{cm}$ uzaktadır?
A) $5\,\text{cm}$   B) $10\,\text{cm}$   C) $20\,\text{cm}$   D) $40\,\text{cm}$

9. DC motor kapatıldığında oluşan ters gerilimden transistörü korumak için motora ters paralel bağlanan eleman nedir?
A) NTC Termistör   B) LDR   C) Flyback Diyot   D) Kondansatör

10. 16x2 LCD ekranda 2. satırın 1. sütununa geçmek için hangi komut kullanılır?
A) setCursor(1,2)   B) setCursor(0,1)   C) setCursor(2,1)   D) setCursor(1,0)

🔑 EĞİTİM SETİ TAM CEVAP ANAHTARI (Eğitmen & Öz-Değerlendirme Kontrol Tablosu) Tüm Bölümler (1 – 8)
Bölüm & Konu A) Doğru / Yanlış Cevapları (1 – 5) B) Boşluk Doldurma Cevapları (1 – 5)
Bölüm 1 (Sayfa 2) 1: Y  |  2: D  |  3: D  |  4: Y  |  5: D 1: Ohm (Ω)  |  2: Anot (+)  |  3: Dikey  |  4: Kısa Devre  |  5: 10 kΩ
Bölüm 2 (Sayfa 3) 1: Y  |  2: D  |  3: D  |  4: D  |  5: Y 1: loop()  |  2: HIGH  |  3: noktalı virgül (;)  |  4: 1000  |  5: 9600
Bölüm 3 (Sayfa 4) 1: Y  |  2: D  |  3: D  |  4: D  |  5: Y 1: digitalRead  |  2: Pull-Down  |  3: INPUT_PULLUP  |  4: ==  |  5: &&
Bölüm 4 (Sayfa 5) 1: Y  |  2: Y  |  3: D  |  4: D  |  5: D 1: 1023  |  2: 255  |  3: Gerilim Bölücü  |  4: ~ (dalga)  |  5: analogRead
Bölüm 5 (Sayfa 6) 1: Y  |  2: D  |  3: D  |  4: D  |  5: D 1: 10  |  2: ECHO  |  3: pulseIn  |  4: 0.0343  |  5: noTone
Bölüm 6 (Sayfa 7) 1: D  |  2: Y  |  3: D  |  4: D  |  5: Y 1: I2C  |  2: A4 ve A5  |  3: lcd.setCursor(0, 1)  |  4: lcd.clear()  |  5: 0x27
Bölüm 7 (Sayfa 8) 1: Y  |  2: D  |  3: D  |  4: D  |  5: Y 1: Transistör  |  2: Flyback  |  3: Ortak GND  |  4: Servo.h  |  5: Optokuplör
Bölüm 8 (Sayfa 9) 1: D  |  2: Y  |  3: D  |  4: D  |  5: Y 1: Kısa Devre  |  2: Seri  |  3: Baud Rate  |  4: Brown-out  |  5: D0 ve D1 (RX/TX)
🎯 Kurs Sonu Çoktan Seçmeli Test Cevap Anahtarı:   1-C ($5\text{V}/250\Omega = 20\,\text{mA}$)  |  2-C ($1\text{k}\Omega$)  |  3-C (Pin 8 PWM değildir)  |  4-B (Pull-Down)  |  5-D ($1023$)  |  6-B (%50)  |  7-B (Direnç çok büyür)  |  8-B ($10\,\text{cm}$)  |  9-C (Flyback Diyot)  |  10-B (setCursor(0,1))