Bilişim Ders Notları
Robotik 2 · 31. hafta · Gösterge ve Mesafe Uygulamaları (LCD, Çarpışma Önleyici)

Yazılım 2: LED, Sıklaşan Bip ve LCD

Robotik Kodlama 2 · 31. hafta ders notu · RK.2.3.2

Öğrenme çıktıları
RK.2.3.2
  • Mesafe bölgesine göre yeşil, sarı ve kırmızı LED'den yalnızca birini yakan programı yazar.
  • Bip aralığını mesafeye bağlayarak engel yaklaştıkça sıklaşan bir sesli uyarı oluşturur.
  • I²C LCD ekranın satır–sütun düzenini kullanarak mesafeyi ve bölge adını ekrana yazdırır.
  • Blok programı ile Arduino C karşılığını (tone, digitalWrite, lcd.setCursor) satır satır eşleştirir.
Bilgisayarsız sınıf alternatifi

Sınıf park sensörü ve kâğıt LCD

Yere 50 ve 20 cm yerine 5 ve 2 adımlık bant çizgileri çekilir. Bir öğrenci "araç" olarak tahtaya doğru yürür; "LED" öğrencisi bölgeye göre yeşil, sarı ya da kırmızı kartı kaldırır, "buzzer" öğrencisi el çırpma ritmini sıklaştırır. Tahtadaki 16×2 kareli LCD şablonuna da başka bir öğrenci ölçülen adım sayısını sütun ve satır numarasına dikkat ederek yazar. Sınıf hataları (iki kart birden kalkması, yazının 17. sütuna taşması) yakalar.

Konu anlatımı

Önce konuyu aç, sonra sorulara dokun: cevap altında açılır. Soru işaretli kutulara dokununca cevap görünür.

01Uyarı devresi
ArduinoUNO 234876A4A5 GND Buzzer TrigEcho Mesafe: 27 cm SDASCL Dirençler: 220 ΩTüm GND’ler ortakLCD: I²C (4 kablo)
  1. 1Yeşil LED (pin 2)Güvenli bölgede yanar.Dokun, adını gör
  2. 2Kırmızı LED (pin 4)Tehlike bölgesinde yanar; sarı LED pin 3’tedir.Dokun, adını gör
  3. 3220 Ω dirençLED’den geçen akımı sınırlar; her LED’e bir tane.Dokun, adını gör
  4. 4Buzzer (pin 8)tone() komutuyla bip sesi üretir.Dokun, adını gör
  5. 5HC-SR04 (Trig 7, Echo 6)Mesafeyi ölçer.Dokun, adını gör
  6. 6I²C LCD (A4, A5)SDA → A4, SCL → A5; iki veri kablosuyla yazı gösterir.Dokun, adını gör
  7. 7Arduino UNOTüm parçaları yönetir; GND hattı hepsinde ortaktır.Dokun, adını gör

Numaralara dokun.

?Neden üç LED için üç ayrı pin kullanıyoruz?
Her LED'i birbirinden bağımsız yakıp söndürebilmek için. Aynı pine bağlansalardı üçü birlikte yanar, bölge ayırt edilemezdi.
?Buzzer'ın hangi türü tone komutuyla çalışır?
Pasif buzzer, kendisine gönderilen frekansta titreşir; tone ile farklı notalar çalınabilir. Aktif buzzer'ın içinde kendi titreşim devresi vardır; pini YÜKSEK yapmak onu öttürmeye yeter.
Anahtar kavramlar: Pasif buzzer220 Ω dirençI²C (SDA · SCL)
02Bölgeye göre ışık ve ses
?Bipin sıklaşmasını hangi blok sağlar?
"(mesafe / 100) saniye bekle" bloğu. Bekleme süresi doğrudan mesafeden hesaplandığı için engel yaklaştıkça kısalır; her döngüde bir kısa bip çalındığından bipler sıklaşır.
?"kısa bip" alt programında ne vardır?
Buzzer'ı 1000 Hz'de çalmak, 0,1 saniye beklemek ve susturmak. Arduino C'de bunu tek komutla yazabiliriz: tone(8, 1000, 100); son sayı sesin milisaniye cinsinden süresidir.
Arduino başladığında
sürekli tekrarla
mesafe ölç
LED'leri söndür
eğer (mesafe) < (20) ise
dijital pin 4 YÜKSEK ▾ yap
buzzer pin 8 1000 Hz çal
değilse
eğer (mesafe) < (50) ise
dijital pin 3 YÜKSEK ▾ yap
kısa bip
mesafe / 100 saniye bekle
değilse
dijital pin 2 YÜKSEK ▾ yap
buzzer pin 8 sustur
Biliyor muydun?

Tehlike bölgesinde sesi kesintisiz yapmak, kullanıcıya "artık uyarı değil, dur!" mesajı verir. Gerçek park sensörleri de aynı dili kullanır.

Mesafe azaldıkça bipler sıklaşır 0 sn0,5 sn1 sn1,5 sn2 sn 60 cmSessiz45 cmbip · 0,45 sn ara25 cmbip · 0,25 sn ara10 cmSürekli ses bip süresi 0,1 sn · bekleme = mesafe × 10 ms
03LCD ekrana yazmak
?setCursor(5, 1) ekranda nereyi gösterir?
6. sütun, 2. satır. Numaralar 0'dan başladığı için 5. sütun numarası aslında soldan altıncı karedir, 1. satır numarası da alttaki satırdır.
?"27 cm" yazdıktan sonra mesafe "8 cm" olursa ekranda neden "8 cmm" gibi bir yazı görünebilir?
Yeni yazı daha kısa olduğu için eski yazının son harfleri silinmeden kalır. Sayının arkasına birkaç boşluk yazmak bu artıkları temizler; ekranı her seferinde silmekten daha az titreme yapar.
Anahtar kavramlar: LCD 16×2setCursorKontrast
Mesafe:27cmUYARI 16 sütun × 2 satır LCD 01501 setCursor(sütun, satır) · satır ve sütun 0’dan başlar Ş, ı, ğ gibi Türkçe harfleri göstermez: TEHLIKE, GUVENLI yazılır
04Arduino C karşılığı

Blok programındaki her kararın C karşılığını bul.

?"delay(d * 10)" neden mesafe ÷ 100 saniyeyle aynıdır?
delay milisaniye ister. 45 cm için 45 × 10 = 450 ms, yani 0,45 saniye eder; blok koddaki 45 ÷ 100 = 0,45 saniye ile aynıdır.
?"(int)d" ne işe yarar?
Ondalıklı mesafeyi tam sayıya çevirir; LCD'de "27.43" yerine "27" yazılır ve satır daha az yer kaplar.
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);

void setup() {
  for (int p = 2; p <= 4; p++) pinMode(p, OUTPUT);
  lcd.init();
  lcd.backlight();
}

void loop() {
  float d = mesafeOlc();
  digitalWrite(2, LOW); digitalWrite(3, LOW); digitalWrite(4, LOW);
  lcd.setCursor(0, 0);
  lcd.print("Mesafe: "); lcd.print((int)d); lcd.print(" cm   ");
  lcd.setCursor(0, 1);
  if (d < 20) {
    digitalWrite(4, HIGH); tone(8, 1000);
    lcd.print("TEHLIKE         ");
  } else if (d < 50) {
    digitalWrite(3, HIGH); tone(8, 1000, 100);
    lcd.print("UYARI           ");
    delay(d * 10);
  } else {
    digitalWrite(2, HIGH); noTone(8);
    lcd.print("GUVENLI         ");
  }
}

Ders akışı

40 dakikalık bir ders saati için planlandı. Adımın başlığına dokun, ayrıntılar açılsın.

5dk

Isınma: Park sensörünü dinle

Bip sesleri çizimini göster ve sınıfla birlikte ritmi el çırparak canlandır: 60 cm'de sessizlik, 45 cm'de seyrek, 25 cm'de sık, 10 cm'de kesintisiz ses. "Sürücü ekrana bakmadan mesafeyi nasıl anlıyor?" diye sor. Bugün geçen haftaki "mesafe ölç" alt programının sonucunu ışığa, sese ve yazıya dönüştüreceğiz.

Mesafe azaldıkça bipler sıklaşır 0 sn0,5 sn1 sn1,5 sn2 sn 60 cmSessiz45 cmbip · 0,45 sn ara25 cmbip · 0,25 sn ara10 cmSürekli ses bip süresi 0,1 sn · bekleme = mesafe × 10 ms
8dk

Keşif: Uyarı devresi

Numaralı devre çizimini aç. Öğrenciler numaralara dokunarak her LED'in kendi 220 Ω direnciyle 2, 3 ve 4 numaralı pinlere, buzzer'ın pin 8'e, LCD'nin yalnızca dört kabloyla (5V, GND, SDA → A4, SCL → A5) bağlandığını açıklar. Tinkercad'de devreyi 28. haftanın sensör devresinin üzerine ekleyin.

ArduinoUNO 234876A4A5 GND Buzzer TrigEcho Mesafe: 27 cm SDASCL Dirençler: 220 ΩTüm GND’ler ortakLCD: I²C (4 kablo)
10dk

Keşif: Bölgeye göre ışık ve ses

Önce tüm LED'leri söndüren küçük bir alt program yazın; böylece bölge değişince eski LED yanık kalmaz. Ardından iç içe "eğer–değilse" ile bölge kararını kurun. Uyarı bölgesinde bekleme süresini mesafeye bağlayın: mesafe ÷ 100 saniye. 45 cm'de 0,45 sn, 25 cm'de 0,25 sn olduğunu tahtada hesaplayın.

Arduino başladığında
sürekli tekrarla
mesafe ölç
LED'leri söndür
eğer (mesafe) < (20) ise
dijital pin 4 YÜKSEK ▾ yap
buzzer pin 8 1000 Hz çal
değilse
eğer (mesafe) < (50) ise
dijital pin 3 YÜKSEK ▾ yap
kısa bip
mesafe / 100 saniye bekle
değilse
dijital pin 2 YÜKSEK ▾ yap
buzzer pin 8 sustur
12dk

Etkinlik: LCD'ye yaz

LCD çizimini göster: 16 sütun, 2 satır, numaralar 0'dan başlar. Gruplar önce tahtadaki kareli şablona "Mesafe: 27 cm" ve "UYARI" yazılarını harf harf yerleştirir, sonra aynı düzeni setCursor bloklarıyla programlar. Türkçe karakterlerin görünmediğini fark edince "TEHLIKE, GUVENLI" yazımına geçerler. Ekran titriyorsa nedenini (her döngüde temizleme) tartışın.

Mesafe:27cmUYARI 16 sütun × 2 satır LCD 01501 setCursor(sütun, satır) · satır ve sütun 0’dan başlar Ş, ı, ğ gibi Türkçe harfleri göstermez: TEHLIKE, GUVENLI yazılır
ekrana yaz ▾ tanımla
LCD imlecini sütun 0 satır 0 yap
LCD'ye Mesafe: yaz
LCD'ye mesafe yaz
LCD'ye cm yaz
LCD imlecini sütun 0 satır 1 yap
LCD'ye bölge yaz
5dk

Değerlendirme: Uyarı kontrol listesi

Gruplar benzetimde hedefi 60, 45, 25 ve 10 cm'ye getirip 6 maddelik listeyi işaretler: doğru LED yanıyor mu, aynı anda tek LED mi yanıyor, bip sıklaşıyor mu, tehlikede ses kesintisiz mi, LCD'de sayı doğru mu, yazı titremiyor mu. Bir başka grup aynı testi onların programında tekrarlar ve farklı bulduğu maddeyi işaretler.

Doğru mu, yanlış mı?

Dersin sonunda tahtada ya da öğrencinin kendi cihazında çözülür.

1. Her LED'in önüne akımı sınırlayan bir direnç (örneğin 220 Ω) konur.

Cevabı gösterDoğru · Direnç olmazsa LED'den çok akım geçer; LED ve Arduino pini zarar görebilir.

2. Bölge değiştiğinde önceki LED kendiliğinden söner.

Cevabı gösterYanlış · Arduino bir pini YÜKSEK yaptıktan sonra biz DÜŞÜK yapana kadar öyle kalır. Bu yüzden her döngünün başında tüm LED'leri söndüren alt programı çağırırız.

3. Uyarı bölgesinde bekleme süresi mesafe ÷ 100 saniye ise 30 cm'de bipler arasında 0,3 saniye beklenir.

Cevabı gösterDoğru

4. Mesafe azaldıkça bekleme süresi uzar ve bipler seyrekleşir.

Cevabı gösterYanlış · Bekleme süresi mesafeyle orantılıdır; mesafe küçüldükçe bekleme kısalır, bipler sıklaşır.

5. tone(8, 1000) komutu pin 8'deki buzzer'dan 1000 Hz'lik ses çıkarır, noTone(8) bu sesi susturur.

Cevabı gösterDoğru

6. 16×2 LCD ekranda satır ve sütun numaraları 1'den başlar.

Cevabı gösterYanlış · Numaralar 0'dan başlar: sütunlar 0–15, satırlar 0–1. setCursor(0, 1) ikinci satırın ilk karesidir.

7. I²C LCD, Arduino UNO'ya veri için yalnızca iki kabloyla (SDA ve SCL) bağlanır.

Cevabı gösterDoğru · Besleme için 5V ve GND ile birlikte toplam dört kablo yeterlidir.

8. Standart karakter LCD'ler "Ş, ğ, ı" gibi Türkçe harfleri doğrudan gösterebilir.

Cevabı gösterYanlış · Ekranın içindeki hazır karakter tablosunda bu harfler yoktur. "TEHLIKE" gibi yazarız; gerekirse createChar ile en fazla 8 özel karakter tasarlanabilir.

9. Her döngüde lcd.clear() kullanmak ekranın titremesine neden olabilir.

Cevabı gösterDoğru · Ekran çok sık silinip yeniden yazıldığı için göz titreme görür. Bunun yerine yazının sonuna boşluk ekleyerek eski karakterlerin üzerine yazmak daha iyidir.

10. Uyarı bölgesinde delay ile beklenirken Arduino mesafeyi ölçmeye devam eder.

Cevabı gösterYanlış · delay sırasında Arduino başka iş yapmaz. Bu yüzden 0,45 saniyelik beklemede engel yaklaşırsa fark edilmez; daha ileri programlarda millis() ile beklemeden zaman ölçülür.

31. hafta günlük planı

2026–2027 2. düzey Seçmeli Robotik Kodlama 2 dersi 31. hafta günlük planı. Okul ve öğretmen bilgileriyle doldurulmuş Word dosyası için etkileşimli sürümde Evraklar › Günlük planlar bölümünü kullanın.

2026–2027 EĞİTİM ÖĞRETİM YILI …………………………

SEÇMELİ ROBOTİK KODLAMA 2. SEVİYE DERSİ GÜNLÜK PLANI · 31. HAFTA

BÖLÜM I · DERSE İLİŞKİN BİLGİLER
DersSeçmeli Robotik Kodlama 2. SeviyeSınıf / Düzey2. düzey (seçmeli)
Hafta / Tarih31. Hafta · 10–14 Mayıs (MAYIS)Süre2 ders saati (40' + 40')
TemaÇARPIŞMA ÖNLEYİCİ
KonuYazılım 2: LED, Sıklaşan Bip ve LCD
BÖLÜM II · ÖĞRENME ÇIKTILARI VE KAYNAKLAR
Öğrenme çıktısıRK.2.3.2 Yazılım yerleştirme, benzetim, test ve hata ayıklama
Süreç bileşenleri
  • Mesafe bölgesine göre yeşil, sarı ve kırmızı LED'den yalnızca birini yakan programı yazar.
  • Bip aralığını mesafeye bağlayarak engel yaklaştıkça sıklaşan bir sesli uyarı oluşturur.
  • I²C LCD ekranın satır–sütun düzenini kullanarak mesafeyi ve bölge adını ekrana yazdırır.
  • Blok programı ile Arduino C karşılığını (tone, digitalWrite, lcd.setCursor) satır satır eşleştirir.
Araç, gereç ve kaynaklarAkıllı tahta ve Tinkercad Devreler · Varsa 3 LED, 3 adet 220 Ω direnç, buzzer, I²C LCD 16×2 · Tahtaya çizilmiş 16×2 kareli LCD şablonu · Yeşil, sarı, kırmızı renk kartları; maskeleme bandı · Bilişim Ders Notları ders sayfası, sunum ve etkinlikler (bilisimdersnotlari.com)
BÖLÜM III · ÖĞRENME-ÖĞRETME UYGULAMALARI
SüreEtkinlik akışı
1. ders
5 dk
Isınma: Park sensörünü dinle
Bip sesleri çizimini göster ve sınıfla birlikte ritmi el çırparak canlandır: 60 cm'de sessizlik, 45 cm'de seyrek, 25 cm'de sık, 10 cm'de kesintisiz ses. "Sürücü ekrana bakmadan mesafeyi nasıl anlıyor?" diye sor. Bugün geçen haftaki "mesafe ölç" alt programının sonucunu ışığa, sese ve yazıya dönüştüreceğiz.
1. ders
8 dk
Keşif: Uyarı devresi
Numaralı devre çizimini aç. Öğrenciler numaralara dokunarak her LED'in kendi 220 Ω direnciyle 2, 3 ve 4 numaralı pinlere, buzzer'ın pin 8'e, LCD'nin yalnızca dört kabloyla (5V, GND, SDA → A4, SCL → A5) bağlandığını açıklar. Tinkercad'de devreyi 28. haftanın sensör devresinin üzerine ekleyin.
1. ders
10 dk
Keşif: Bölgeye göre ışık ve ses
Önce tüm LED'leri söndüren küçük bir alt program yazın; böylece bölge değişince eski LED yanık kalmaz. Ardından iç içe "eğer–değilse" ile bölge kararını kurun. Uyarı bölgesinde bekleme süresini mesafeye bağlayın: mesafe ÷ 100 saniye. 45 cm'de 0,45 sn, 25 cm'de 0,25 sn olduğunu tahtada hesaplayın.
1. ders
12 dk
Etkinlik: LCD'ye yaz
LCD çizimini göster: 16 sütun, 2 satır, numaralar 0'dan başlar. Gruplar önce tahtadaki kareli şablona "Mesafe: 27 cm" ve "UYARI" yazılarını harf harf yerleştirir, sonra aynı düzeni setCursor bloklarıyla programlar. Türkçe karakterlerin görünmediğini fark edince "TEHLIKE, GUVENLI" yazımına geçerler. Ekran titriyorsa nedenini (her döngüde temizleme) tartışın.
1. ders
5 dk
Değerlendirme: Uyarı kontrol listesi
Gruplar benzetimde hedefi 60, 45, 25 ve 10 cm'ye getirip 6 maddelik listeyi işaretler: doğru LED yanıyor mu, aynı anda tek LED mi yanıyor, bip sıklaşıyor mu, tehlikede ses kesintisiz mi, LCD'de sayı doğru mu, yazı titremiyor mu. Bir başka grup aynı testi onların programında tekrarlar ve farklı bulduğu maddeyi işaretler.
2. ders
10 dk
Tekrar: Sunum
9 slaytlık ders sunumu akıllı tahtada açılır; önceki saatte öğrenilen kavramlar öğrencilerle birlikte tekrar edilir.
2. ders
20 dk
Uygulama: Etkinlikler
Akıllı tahtada etkileşimli etkinlikler oynanır: Uyarı devresi: numarayı eşleştir; Mesafeye göre ne olur?; Blok ↔ Arduino C; Doğru mu, yanlış mı?; Kutuyu aç: konu soruları; Eşleşen kartlar: Yazılım 2: LED, Sıklaşan Bip ve LCD.
2. ders
10 dk
Değerlendirme
10 soruluk doğru-yanlış testi tahtada birlikte çözülür; yanlış cevaplar gerekçeleriyle tartışılır.
FarklılaştırmaBilgisayarsız sınıf alternatifi: Sınıf park sensörü ve kâğıt LCD. Yere 50 ve 20 cm yerine 5 ve 2 adımlık bant çizgileri çekilir. Bir öğrenci "araç" olarak tahtaya doğru yürür; "LED" öğrencisi bölgeye göre yeşil, sarı ya da kırmızı kartı kaldırır, "buzzer" öğrencisi el çırpma ritmini sıklaştırır. Tahtadaki 16×2 kareli LCD şablonuna da başka bir öğrenci ölçülen adım sayısını sütun ve satır numarasına dikkat ederek yazar. Sınıf hataları (iki kart birden kalkması, yazının 17. sütuna taşması) yakalar.
BÖLÜM IV · ÖLÇME VE DEĞERLENDİRME
Ölçme araçlarıKontrol listesi, dereceli puanlama anahtarı, öz ve akran değerlendirme
Doğru-yanlış soruları
  1. Her LED'in önüne akımı sınırlayan bir direnç (örneğin 220 Ω) konur. (D)
  2. Bölge değiştiğinde önceki LED kendiliğinden söner. (Y)
  3. Uyarı bölgesinde bekleme süresi mesafe ÷ 100 saniye ise 30 cm'de bipler arasında 0,3 saniye beklenir. (D)
  4. Mesafe azaldıkça bekleme süresi uzar ve bipler seyrekleşir. (Y)
  5. tone(8, 1000) komutu pin 8'deki buzzer'dan 1000 Hz'lik ses çıkarır, noTone(8) bu sesi susturur. (D)
  6. 16×2 LCD ekranda satır ve sütun numaraları 1'den başlar. (Y)
  7. I²C LCD, Arduino UNO'ya veri için yalnızca iki kabloyla (SDA ve SCL) bağlanır. (D)
  8. Standart karakter LCD'ler "Ş, ğ, ı" gibi Türkçe harfleri doğrudan gösterebilir. (Y)
  9. Her döngüde lcd.clear() kullanmak ekranın titremesine neden olabilir. (D)
  10. Uyarı bölgesinde delay ile beklenirken Arduino mesafeyi ölçmeye devam eder. (Y)
Dersin uygulanmasına ilişkin açıklamalarTinkercad'de I²C LCD bileşeni "LCD 16 x 2 (I2C)" adıyla bulunur ve kendi kitaplığını kullanır; gerçek kartta en yaygın kitaplık LiquidCrystal_I2C'dir ve adres çoğunlukla 0x27 ya da 0x3F'tir. Ekranda hiçbir şey görünmüyorsa önce modülün arkasındaki kontrast vidasını çevirmeyi deneyin.
…………………………Bilişim Teknolojileri Öğretmeni
UYGUNDUR10.05.2027…………………………Okul Müdürü
Bu dersi sınıfta işleyinSunum, tahta modu ve etkileşimli etkinlikler için.
Etkileşimli sürümü aç →