İçeriğe atla
//

Bilim ve Teknoloji Üretmek İçin Buradayız!

delay() Tuzağı ile Robotunuzu Uyutmayın
Püf Noktası 02.08.2026 👁 9 ★ 5,0

delay() Tuzağı ile Robotunuzu Uyutmayın

⏱️ Tahmini okuma: 2 dk

Robotik kodlamaya yeni başlayan herkesin yolu o kolay komuttan geçer: delay(1000). Mantığı basit: 1 saniye bekle. Ama proje büyüdükçe robot garip davranmaya başlar. Butona basarsınız algılamaz, önüne engel çıkar durmaz, çizgi izlerken yoldan çıkar.

Suçluyu sensörde veya pilde aramayın. Çoğu zaman sorun, robotu narkoz verilmiş gibi uyutan delay() komutudur.

1) delay beyni dondurur

Arduino delay gördüğü an o süre boyunca başka iş yapmaz. Örnek: ışığı yak, 2 saniye bekle, sonra sola dön. O 2 saniye boyunca robot:

  • Önündeki duvarı göremez (ultrasonik okunmaz)
  • Acil durdurma butonunu duyamaz
  • Çizgiden çıktığını fark edemez

delay bir mola değil; kısa süreli bir felç halidir. Süre bitene kadar robot kör, sağır ve dilsizdir.

2) Yumurta haşlama 

delay yöntemi: Yumurtayı suya koyarsınız ve 5 dakika ocağın başında kıpırdamadan beklersiniz. Telefon çalsa bakmazsınız, kapı çalsa açmazsınız.

millis yöntemi: Yumurtayı koyarsınız, saate bakarsınız: 14:00 koydum, 14:05 alırım. Sonra masayı hazırlarsınız, ekmek doğrarsınız, ara ara saate bakarsınız. Vakit gelmediyse işinize devam edersiniz.

Profesyonel robotçular robotu ocak başında bekletmez; ona saati kontrol etme yeteneği verir.

3) Aynı anda birden fazla iş (millis)

Hem LED yakıp söndürmek hem çizgi izlemek istiyorsanız delay kullanamazsınız. LED için beklerken motorları süremezsiniz.

Çözüm: Arduino nun kol saati olan millis(). Mantık: Çizgi izlemeye devam et, motorları sür. Ama gözün saatte olsun. Son ışıktan bu yana 1000 ms geçtiyse LED i değiştir; sakın durma, yoluna devam et.

unsigned long sonZaman = 0;
int ledDurum = LOW;

void loop() {
  // her turda sensor / motor isleri
  cizgiIzle();

  // LED i beklemeden yak-sondur
  if (millis() - sonZaman >= 1000) {
    sonZaman = millis();
    ledDurum = !ledDurum;
    digitalWrite(LED_BUILTIN, ledDurum);
  }
}

Atölye notu: delay tamamen yasak değildir. setup() içinde kısa bir bekleme veya yarışta kullanılmayan tek seferlik işlerde kabul edilebilir. Ama loop() içinde sensör + motor varsa delay tuzağa düşürür.

Robotunuz geç tepki veriyorsa önce koddaki delay satırlarına bakın. Robotu uyutmayın; ona zamanı yönetmeyi öğretin. Gerçek dünyada hayat durmaz; robotunuz da loop içinde durmamalı.

👨‍💻

İçerik Yazarı

Mustafa KARSLI

Bilişim Teknolojileri Öğretmeni

Bu içeriği paylaş

Bu sayfa işinize yaradı mı?

Bu yazıyı değerlendirin

5 yıldız üzerinden puanlayın — Google arama sonuçlarında yıldız görünmesine yardımcı olur.

5,0 / 5 (1 oy)

Öğrenci Paneli

Ders ilerlemenizi kaydetmek için giriş yapın.

Giriş Yap

Mobil Erişim — QR Kod

QR

Telefonunuzla tarayın

📚 Benzer Makaleler

💬 Yorumlar

Henüz yorum yapılmamış.

Fikrini Belirt

Yorumlar yönetici onayından sonra yayınlanır. Küfür, hakaret, kişisel veri ve reklam içeren mesajlar reddedilir.

biliMKurdu Asistan

Site araması · kod analizi

🧩

Günün BT Bulmacası

Bir görüntünün netliğini ifade eden ve genişlik x yükseklik şeklinde yazılan değere ne denir?

🏆

Başarılarımız

👋 Ben Kimim?

Geleceğimiz gençlerimize Bilim ve Teknolojiyi Üretmeleri için yol göstermeliyiz. Bu minvalde vakit buldukça ücretsiz ders ve videolar hazırlayıp yayınlamaya çalışmaktayım....

İletişime Geç →
📈

İstatistikler

Online
1
Toplam Ziyaret 2.833.655