2026–2027 Güz · Fiziksel Programlama · Ara sınav hazırlığı

Hafta 1–5, tek sayfada.

Hocanın paylaştığı izlence, beş haftalık sunum ve dört etkinliğin özeti. Altında kendini test etmen için simülasyonlar, quiz, hata avı ve kod yazma alıştırmaları var.

Ara sınav: 3 Kasım (Salı) Kapsam: Hafta 1–5 Arduino UNO · Tinkercad 4 etkinlik
İzlenceden

Not nasıl hesaplanıyor?

Ara sınav dönem notunun %40'ı. Bunun içinde yazılı sınav %70, Proje 1 %30 ağırlıkta. Proje 1 beşinci derste (27 Ekim) gösterildi ve teslim edildi.

%40

Ara sınav dönemi

Sınav %70 · Proje 1 %30

%60

Final dönemi

Sınav %50 · Proje 2 %50

6/10

Devam şartı

On ders oturumunun en az altısına katılım (%60).

Odak: Sınav büyük ihtimalle sunumlardaki kavramlar, sayı aralıkları, formüller ve kod okumadan gelir. Her haftanın sonundaki "Haftanın Özeti" slaytları hocanın vurguladığı noktalar; aşağıdaki özetlerde hepsi var.
Son gece listesi

Ezberlenmesi gereken sayılar ve formüller

Sorular çoğunlukla bu değerler üzerinden kurulur. Bir kez yüksek sesle oku.

DeğerAnlamıHafta
V = I × ROhm Kanunu. Gerilim sabitken direnç artarsa akım azalır.1
5 V / 1 kΩ = 5 mASunumdaki Ohm örneği: I = 5 / 1000 = 0,005 A1
R = (5 − 2) / 0,01 ≈ 300 ΩLED direnci hesabı (LED ≈ 2 V, hedef 10–15 mA). Standart seçim 330 Ω.1
220–330 ΩLED'e seri bağlanan direnç aralığı (tüm etkinliklerde)2
14 dijital · 6 analogArduino UNO R3 pinleri. Ayrıca 5 V, 3.3 V, GND, USB, reset, dahili LED.2
delay(1000) = 1 sdelay() milisaniye cinsinden bekler. 500 = yarım saniye, 100 = onda bir saniye.2
LOW / HIGH (0 / 1)digitalRead() ve digitalWrite() değerleri3
INPUT_PULLUP → basılı = LOWDahili pull-up açıkken butona basınca pin LOW okunur3
0–1023analogRead() aralığı (A0–A5)3
0–255analogWrite() / PWM aralığı (PWM destekli dijital pinler: D9, D10, D11…)3
Serial.begin(9600)Seri Monitör baud hızı; monitördeki ayarla aynı olmalı3
map(x, 0, 1023, 0, 255)Analog okumayı PWM aralığına çevirir. Ters için: map(x, 0, 1023, 255, 0)3–4
10 kΩLDR gerilim bölücüsündeki sabit direnç: 5 V → LDR → A0 → 10 kΩ → GND4
A0→D9 · A1→D10 · A2→D113 potansiyometre ile RGB LED: kırmızı, yeşil, mavi4
TRIG 10 µsHC-SR04 ölçümü başlatmak için TRIG'e gönderilen darbe5
mesafe = süre × 0,034 / 2cm cinsinden. 0,034 cm/µs ses hızı; 2'ye bölme gidiş-dönüş için.5
pulseIn(echo, HIGH, 30000)ECHO'nun HIGH süresini µs ölçer; 30000 µs zaman aşımı5
> 25 · 10–25 · ≤ 10 cmPark sensörü bölgeleri: yeşil / sarı + aralıklı ses / kırmızı + sürekli ses5
Sunumların özeti

Haftalar

Her hafta: ana kavramlar, sunumdaki kod ve sınavda karıştırılabilecek nokta.

0129 Eylül

Fiziksel programlamaya giriş ve devre elemanları

Fiziksel programlama, yazılımın fiziksel dünyayla etkileşim kurmasıdır: sensörden veri alınır, program işler, LED/motor/buzzer/ekran gibi bir çıktı kontrol edilir.

Girdi → İşlem → Çıktı. Girdi: buton, ışık, sıcaklık, mesafe, ses. İşlem: mikrodenetleyici okur, karşılaştırır, karar verir. Çıktı: LED, motor, buzzer, röle, ekran, kablosuz iletişim.

Robot türleri: mobil (tekerlekli/paletli), endüstriyel (üretim kolları), insansı, hizmet (temizlik, taşıma), otonom (algılayıp karar veren). Ortak nokta: algıla, işle, fiziksel çıktı üret.

Elektrik devresi akımın dolaşabildiği kapalı yoldur: enerji kaynağı, iletken yol, devre elemanı, referans noktası (GND). Yol açık kalırsa akım akmaz.

  • Gerilim (V): potansiyel fark, volt. Akım (I): geçen yük, amper. Direnç (R): akımı sınırlar, ohm.
  • Diyot akımı tek yönde iletir. LED ışık yayan diyottur: uzun bacak anot (+), kısa bacak katot (−), katot tarafında düz kenar. Ters bağlanırsa yanmaz.
  • Direnç kullanımları: LED akımını sınırlamak, gerilim bölücü, pull-up/pull-down, giriş pinini kararlı okumak.
  • Transistör: küçük kontrol sinyaliyle büyük akımı anahtarlar veya yükseltir. Motor/röle sürmek, pini korumak için.
  • Breadboard: lehimsiz deney kartı. Orta delikler kısa gruplar halinde bağlı, yan raylar + ve GND, entegreler orta kanalı aşar.
  • Seri: aynı akım yolu, toplam direnç artar. Paralel: uçlar aynı iki noktada, gerilim kollarda aynı. LED'in direnci LED'e seri bağlanır.
Hata kontrol sırası: önce bağlantı, sonra eleman, en son kod. Tek LED devresi: 5 V → 330 Ω → LED anot, LED katot → GND.
026 Ekim

Arduino ve Tinkercad'e giriş

Arduino açık kaynaklı bir geliştirme platformudur. Mikrodenetleyici buton/sensör okur, basit kararlar verir, LED/buzzer/motor/ekran sürer. Fikri hızlı denemeye yarayan bir prototipleme aracıdır.

Tinkercad Circuits tarayıcıda devre kurup simüle eder; blok veya metin tabanlı kod yazılabilir.

Simülasyonun avantajları: malzemeye zarar vermeden hata görmek, hızlı değiştirmek, kod ve devreyi aynı ekranda görmek, ortak çalışmak, tasarımı önceden doğrulamak. Ama gerçek devrenin yerini tamamen almaz; fiziksel test de gerekir.

Tinkercad akışı: yeni devre → Arduino UNO + breadboard → elemanları yerleştir → güç ve GND → kod paneli → simülasyonu başlat → gözle, düzelt, tekrar dene.

Blink · pin 8 → direnç → LED anot
const int ledPin = 8;
void setup() {
  pinMode(ledPin, OUTPUT);
}
void loop() {
  digitalWrite(ledPin, HIGH);
  delay(1000);
  digitalWrite(ledPin, LOW);
  delay(1000);
}
  • setup() program başında bir kez çalışır; pin modları burada ayarlanır.
  • loop() sürekli tekrarlanır; davranış burada tanımlanır.
Eğitsel ürün tasarımı (5 soru): Kullanıcı kim? Hangi öğrenme sorununu çözüyoruz? Hangi girdi? Arduino hangi kararı verecek? Hangi çıktı? Örnek: yanıp sönen LED → çalışma/mola zamanlayıcısı.
0313 Ekim

Dijital ve analog veri

Dijital veri iki durumdur: LOW/HIGH, 0/1 (buton, anahtar, hareket var mı?). Analog veri bir aralıkta değişir; UNO'da 0–1023 (potansiyometre, LDR, sıcaklık, ses düzeyi).

Zincir: Girdi (sensör algılar) → Okuma (pin sayıya çevirir) → Karar (eşik/kural) → Çıktı (LED, ses, motor, ekran).

Buton: pin boşta kalmamalı, bu yüzden pull-up veya pull-down gerekir. INPUT_PULLUP ile basılı durum LOW okunur. Önce "basılı durum hangi değer?" sorusunu yanıtla.

Butonla LED
const int buton = 2;
const int led = 8;
void setup() {
  pinMode(buton, INPUT_PULLUP);
  pinMode(led, OUTPUT);
}
void loop() {
  int durum = digitalRead(buton);
  digitalWrite(led, durum == LOW ? HIGH : LOW);
}
analogRead()analogWrite()
Ne yaparÖlçüm alır (giriş)PWM çıkışı üretir
PinlerA0–A5PWM destekli dijital pinler
Aralık0–10230–255
ÖrnekPot, LDRLED parlaklığı, motor hızı
Pot ile LED parlaklığı (map)
const int pot = A0;
const int led = 9;
void setup() {
  pinMode(led, OUTPUT);
}
void loop() {
  int ham = analogRead(pot);
  int parlaklik = map(ham, 0, 1023, 0, 255);
  analogWrite(led, parlaklik);
}
Tuzak: PWM gerçek analog gerilim değildir; hızlı aç-kapa darbeleridir. Ham değer → map() ile dönüşüm → eşik/yorum. Seri Monitör sensörü kalibre etmenin en hızlı yolu. İzlencede ayrıca pull-down (basılı = HIGH) ve debouncing (tek basışın birden çok kez sayılmasını önlemek) geçiyor.
0420 Ekim

Potansiyometre ve sensörler

Sensörle çalışma döngüsü: Bağla (güç, GND, sinyal) → Gözle (ham değeri farklı koşullarda kaydet) → Kalibre et (alt-üst sınır, eşik) → Tepki ver. Aynı sensör farklı ortamda farklı değer verebilir.

Potansiyometre ayarlanabilir gerilim bölücüdür: 3 bacak (5 V, GND, orta uç). Orta uç A0'a gider. Ses, süre, parlaklık, zorluk ayarı için uygun. Kalibre ederken min, orta, max konumda ölç: map(ham, 0, 1023, 1, 10).

LDR ışığa göre direnci değişen bir dirençtir. Tek başına ölçüm vermez; 10 kΩ sabit dirençle gerilim bölücü kurulur. Işık artınca değerin artacağını ölçmeden varsayma; yön bağlantıya göre değişir.

LDR ile otomatik parlaklık (ters map)
const int ldr = A0;
const int led = 9;
void loop() {
  int isik = analogRead(ldr);
  int parlaklik = map(isik, 0, 1023, 255, 0);
  parlaklik = constrain(parlaklik, 0, 255);
  analogWrite(led, parlaklik);
}
  • Eşik tabanlı: altında bir durum, üstünde başka (aç/kapa). Sürekli kontrol: çıktı kademeli değişir (parlaklık, hız, renk).
  • Kararlı ölçüm: birkaç ölçümün ortalaması, eşikte titreme varsa iki ayrı sınır (histerezis), kısa kablo + sağlam GND, gerçek ortamda yeniden kalibrasyon.
  • RGB: A0→D9 kırmızı, A1→D10 yeşil, A2→D11 mavi. Ortak anot RGB LED'de değerler terslenmeli.
Akılda tut: constrain(x, 0, 255) değeri aralığın dışına taşmaktan korur. İzlencede bu hafta PIR hareket sensörü de geçiyor (hareket algılanınca dijital HIGH verir); sunumda ayrıntı yok, kavram düzeyinde bil.
0527 Ekim

Mesafe, ses ve Proje 1

Ses sensörü (dijital modül): VCC → 5 V, GND → GND, DO → dijital pin. Modüldeki potansiyometre algılama eşiğini ayarlar. DO yalnızca "eşik aşıldı / aşılmadı" bilgisi verir; ses dalgasını kaydetmek başka bir şeydir.

HC-SR04: TRIG'e kısa darbe → ultrasonik dalga → nesneden yansır → ECHO'nun HIGH kaldığı süre ölçülür → gidiş-dönüş ikiye bölünür. mesafe ≈ süre × 0,034 / 2 (cm).

Mesafe fonksiyonu
long mesafeCm() {
  digitalWrite(trig, LOW); delayMicroseconds(2);
  digitalWrite(trig, HIGH); delayMicroseconds(10);
  digitalWrite(trig, LOW);
  long sure = pulseIn(echo, HIGH, 30000);
  return sure * 0.034 / 2;
}
Ses olayıyla LED'i tersine çevirme
bool acik = false;
void loop() {
  if (digitalRead(ses) == HIGH) {
    acik = !acik;
    digitalWrite(led, acik);
    delay(250); // aynı olay birkaç kez sayılmasın
  }
}
Park sensörü kararı
long d = mesafeCm();
if (d > 25) {
  digitalWrite(yesil, HIGH);
} else if (d > 10) {
  digitalWrite(sari, HIGH);
  tone(buzzer, 900, 100);
} else {
  digitalWrite(kirmizi, HIGH);
  tone(buzzer, 1400);
}
Neden önce tüm çıktılar kapatılır? Önceki durumun iz bırakmaması için (ör. kırmızıdan yeşile geçince kırmızı yanık kalmasın). Zaman aşımı (30000) yankı gelmezse programın uzun beklemesini önler. Mesafe ölçümünü ayrı fonksiyona almak kodu okunabilir ve yeniden kullanılabilir yapar.
Proje 1 akışı

Sorun (kullanıcı ve ihtiyaç) → Sistem (en az 1 sensör + 1 çıktı) → Prototip (devre + modüler kod) → Test (üç farklı koşulda gözlemle, düzelt).

Proje 1 beklentileri

Zorunlu: en az 1 girdi, en az 1 anlamlı çıktı, koşul/eşik içeren karar, çalışan Tinkercad veya fiziksel prototip. Teslim: kısa problem tanımı, bağlantı şeması, açıklanabilir kod, 1–2 dk gösterim.

Ders içi etkinlikler

Dört etkinliğin özeti

Hepsi bireysel ve GenAI kullanılmadan yapıldı. Sınavda "bu etkinlikte ne yaptınız, neden?" tarzı sorular gelebilir.

Etkinlik 1 · 6 Ekim · Tinkercad

LED ile görsel uyarı (trafik ışığı)

Pin 8 → direnç → LED devresi kuruldu. Önce 1 s yan / 1 s sön Blink, sonra delay() değerleriyle üç farklı ritim. Okul önündeki yaya geçidinde sürücülerin fark edeceği sarı uyarı ışığı için en uygun ritim seçildi ve gerekçelendirildi.

Kullanılan: setup(), loop(), pinMode(), digitalWrite(), delay()

Etkinlik 2 · 13 Ekim · Tinkercad

Kesir–yüzde eşleştirme istasyonu

Buton D2–GND, INPUT_PULLUP (basılı = LOW). Pot orta ucu A0. LED PWM'li D9'da. Ham değer map() ile 0–100 (yüzde) ve 0–255 (PWM) aralığına çevrildi. Hedefler 1/4 = %25, 1/2 = %50, 3/4 = %75, tolerans ±2 puan. Butona basınca "KAYIT:%..." bir kez yazıldı (debounce veya bırakılmayı bekleme).

Kontrol: map giriş 0–1023 mü? Baud hızı kodla aynı mı? Tek basış tek kayıt mı?

Etkinlik 3 · 20 Ekim

LDR ile ışık şiddeti ve kalibrasyon

5 V → LDR → A0 → 10 kΩ → GND. Düşük, orta, yüksek ışıkta her biri en az 5 ölçüm, ortalama alındı. Eşik hazır bir sayıdan değil kendi ölçümlerinden seçildi. Eşik yakınında titreme olursa ortalama veya iki sınır (histerezis) kullanıldı.

Ana fikir: sensörün ham sayısı ancak ölçüm ve kalibrasyonla anlamlı karara dönüşür.

Etkinlik 4 · 27 Ekim · Fiziksel set

Sesle başlatılan mesafe tahmini

Alkış ses sensörünün DO çıkışını tetikler, HC-SR04 tek ölçüm yapar, sonra yeni ses olayı beklenir. Bölgeler: ≤ 10 cm kırmızı + hızlı ses, 10–25 cm sarı + kısa ses, > 25 cm yeşil, buzzer kapalı. Önce tahmin, sonra ölçüm; mutlak fark hesaplandı.

Kontrol: formülde 2'ye bölme var mı? Sınırlar çakışmıyor mu? Her LED'in kendi direnci var mı? Ortak GND?

Etkinlik · Simülasyon

Laboratuvar

Kavramları oynayarak gör. Her deney bir sunum slaytına karşılık geliyor.

Deney 1 · Hafta 3–4 · Etkinlik 2

Potansiyometre → map() → PWM

Ham (A0)
512
map → %
50
map → PWM
127
Görev oranı
50%
D9'daki PWM sinyali (hızlı aç-kapa)
Kesir oyunu (Etkinlik 2): Hedef 1/4. Potu bu kesrin yüzdesine getir ve KAYIT'a bas. ±2 puan kabul.
Seri Monitör (9600 baud)
Deney 2 · Hafta 3

Buton ve pull-up / pull-down

Buton
bırakıldı
digitalRead(2)
HIGH

Deney 3 · Hafta 5 · Etkinlik 4

HC-SR04 park sensörü

pulseIn (µs)
1765
süre×0,034/2
30 cm
Buzzer
kapalı
if (d > 25) → yeşil else if (d > 10) → sarı + tone(900, 100) else → kırmızı + tone(1400)
Deney 4 · Hafta 1

LED direnç hesaplayıcı

R = (Vs − Vled) / I
300 Ω
Standart seçim
330 Ω
Gerçek akım
9,1 mA

Standart seçim, hesaplanan değerin üstündeki ilk yaygın direnç değeridir (E12 serisi). Büyük direnç seçmek akımı biraz azaltır, yani LED için güvenli taraftır.

Etkinlik · Sınırsız soru

Hesap pratiği

Ohm, LED direnci, map() ve HC-SR04 hesapları. Her seferinde yeni sayılar gelir.

Doğru: 0 / 0

Etkinlik · Çoktan seçmeli

Quiz

Her soru sunumlardan ve etkinliklerden. Cevabı seçince açıklaması açılır.

0 / 0
Etkinlik · Kod okuma

Hata avı

Her kodda bir hata var. Belirtiyi oku, hatalı satıra tıkla.

Etkinlik · Kâğıda yaz

Kodu kendin yaz

Önce kâğıda ya da Tinkercad'e kendin yaz, sonra çözümü aç ve karşılaştır.

Etkinlik · Klasik soru

Açık uçlu sorular

Önce cevabı kafanda kur, sonra örnek cevabı aç.

Etkinlik · Hızlı tekrar

Kavram kartları

Karta tıkla, arkasını gör. Sınavdan önceki son 10 dakika için.