Ana Sayfa · Akademi · Robotik ve Kodlama · Arduino · İlk Kod: Blink

İlk Kod: Blink

pinMode, digitalWrite ve delay ile bir LED'i yakıp söndüren ilk sketch'i yaz.

DERS PUSULASI

Bu sayfayı ne için kullanacaksın?

Ana fikir

Blink, Arduino kartının üzerindeki yerleşik LED’i belirli aralıklarla yakıp söndüren ilk programdır ve pinMode , digitalWrite , delay komutlarını öğretir.

Üretilecek kanıt

Kendi “kalp atışı” desenini yaz. LED önce iki kez hızlı yanıp sönsün, sonra uzun bir süre beklesin. Şu adımları dene: Blink kodunu aç. loop içine iki hızlı yanıp sönme ekle ( delay(150) kullan). Sonuna uzun bir delay(800) koy. Karta yükle ve deseni izle. İpucu şablonu: void loop() { digitalWrite(LED_BUILTIN, HIGH); delay(150); digitalWrite(LED_BUILTIN,…

Kontrol tuzağı

pinMode’u unutmak setup içinde pinMode(..., OUTPUT) yazmazsan pin çıkış olarak ayarlanmaz ve LED beklendiği gibi çalışmayabilir. Her çıkış pini önce ayarlanmalıdır. Noktalı virgülü unutmak Arduino’da her komut satırı ; ile biter. delay(1000) yazıp noktalı virgül koymazsan kod derlenmez ve hata verir. delay’i hiç…

Sonraki bağlantı

Dijital Giriş ve Çıkış: Bir butonla LED’i kontrol ederek digitalRead ile karttan bilgi okumayı öğreneceğiz.

Modül kaynakları: Python Tutorial · Arduino Learn

SeviyeBaşlangıç
Yaş10–16
Süre30–45 dk
Ön koşulArduino IDE
İçerikStandart ders · 1.403 kelime
Son güncelleme

Bir cümlelik özet

Blink, Arduino kartının üzerindeki yerleşik LED’i belirli aralıklarla yakıp söndüren ilk programdır ve pinMode, digitalWrite, delay komutlarını öğretir.

Neden önemli?

Yeni bir enstrümana başlarken önce tek bir notayı çalarsın. Kodlamada da benzer bir başlangıç vardır: Blink. Amaç karmaşık bir robot yapmak değil, kartın kodunu gerçekten çalıştırdığından emin olmaktır.

Blink küçük görünür ama üç büyük şeyi bir arada gösterir:

Bir önceki derste Arduino IDE’yi kurdun ve tanıdın. Şimdi o ortamda gerçek bir çıktı üreteceğiz. Bir LED yanıp sönmeye başladığında “kod ile donanım artık konuşuyor” demektir. Bundan sonraki her ders, bu ilk köprünün üzerine kurulur.

Blink’in yapısı: setup ve loop

Her Arduino programı iki temel bölümden oluşur. Bu iki bölüm Blink’te de vardır.

void setup()

setup bloğu, kart açıldığında bir kez çalışır. Burada başlangıç ayarlarını yaparız. Örneğin bir pini giriş mi yoksa çıkış mı olacağını burada belirleriz.

Bir sınav öncesi masanı hazırlamaya benzer: kalemini, silgini, suyunu bir kez yerleştirirsin. Sonra sınav boyunca tekrar tekrar hazırlık yapmazsın.

void loop()

loop bloğu, setup bittikten sonra sonsuza kadar tekrar çalışır. Sonu gelince yeniden baştan başlar. Blink’in yakıp söndürme işi burada olur.

Bir salıncağa benzer: itersin, geri gelir, tekrar itersin. Kart kapanana kadar bu döngü durmaz.

Yerleşik LED ve pin 13

Çoğu Arduino Uno kartında, pin 13’e bağlı küçük bir LED lehimlidir. Üzerinde genelde L yazar. Bu LED sayesinde harici hiçbir parça bağlamadan ilk kodumuzu test edebiliriz. Kod içinde bu pini yazmak yerine hazır isim olan LED_BUILTIN da kullanılabilir.

Aşağıdaki kod, yerleşik LED’i bir saniye yakıp bir saniye söndürür.

// Yerleşik LED'i yakıp söndüren Blink programı
void setup() {
  pinMode(LED_BUILTIN, OUTPUT); // pin 13 cikis olsun
}

void loop() {
  digitalWrite(LED_BUILTIN, HIGH); // LED'i yak
  delay(1000);                     // 1000 ms = 1 saniye bekle
  digitalWrite(LED_BUILTIN, LOW);  // LED'i sondur
  delay(1000);                     // 1 saniye daha bekle
}

Satır satır ne oluyor?

loop bloğu bitince otomatik olarak baştan başladığı için LED sürekli yanıp söner.

Süreyi değiştirmek

delay içindeki sayı milisaniye cinsindendir. 1 saniye = 1000 milisaniye. Bu sayıyı değiştirerek hızı ayarlayabilirsin.

void loop() {
  digitalWrite(LED_BUILTIN, HIGH);
  delay(200);   // cok kisa yanik
  digitalWrite(LED_BUILTIN, LOW);
  delay(200);   // cok kisa sonuk
}

200 yazarsan LED saniyede birkaç kez yanıp söner, yani daha hızlı yanıp söner. 2000 yazarsan yavaşlar.

Harici LED bağlama (varyasyon)

Yerleşik LED çalıştıktan sonra dışarıya kendi LED’ini bağlayabilirsin. Bir LED’i doğrudan Arduino’ya bağlamak yerine mutlaka bir direnç kullanmalıyız. Direnç, akımı sınırlar ve LED’in yanmasını (bozulmasını) önler.

Gerekli parçalar

Bağlantı

Kod

Kodun mantığı yerleşik LED ile birebir aynıdır; sadece pin numarası değişir.

int ledPin = 8; // harici LED pin 8'de

void setup() {
  pinMode(ledPin, OUTPUT);
}

void loop() {
  digitalWrite(ledPin, HIGH);
  delay(500);
  digitalWrite(ledPin, LOW);
  delay(500);
}

LED yanmazsa önce uzun/kısa bacak yönünü kontrol et. LED yalnızca tek yönde çalışır.

Mini uygulama

Kendi “kalp atışı” desenini yaz. LED önce iki kez hızlı yanıp sönsün, sonra uzun bir süre beklesin. Şu adımları dene:

  1. Blink kodunu aç.
  2. loop içine iki hızlı yanıp sönme ekle (delay(150) kullan).
  3. Sonuna uzun bir delay(800) koy.
  4. Karta yükle ve deseni izle.

İpucu şablonu:

void loop() {
  digitalWrite(LED_BUILTIN, HIGH);
  delay(150);
  digitalWrite(LED_BUILTIN, LOW);
  delay(150);
  digitalWrite(LED_BUILTIN, HIGH);
  delay(150);
  digitalWrite(LED_BUILTIN, LOW);
  delay(800); // uzun bekleme
}

Deseni beğenene kadar sayıları değiştir. Doğru tek bir cevap yok; amaç digitalWrite ve delay ile ritim kurmayı denemek.

Uygulama laboratuvarı: İlk Kod: Blink

İlk Kod: Blink konusunu kalıcı hâle getirmenin en iyi yolu, kavramı küçük ve ölçülebilir bir göreve dönüştürmektir. Bu çalışmada Blink’in yapısı: setup ve loop ile void loop() arasındaki ilişkiyi kullanarak bağlantı şeması, derlenebilen Arduino kodu, seri monitör kaydı ve test sonucu hazırlayacaksın. Amaç yalnız sonucun çalışması değil; hangi kararı neden verdiğini, neyi test ettiğini ve hangi durumda tasarımı değiştireceğini açıklayabilmektir.

Görev senaryosu

Şu senaryoyu ele al: potansiyometreyle servo açısını sınırlar içinde değiştiren düzenek. Dersin ana hedefi “pinMode, digitalWrite ve delay ile bir LED'i yakıp söndüren ilk sketch'i yaz” olduğuna göre önce problemi tek cümleyle tanımla. Ardından sistemin alacağı girdiyi, uygulayacağı işlemi ve üreteceği çıktıyı ayrı ayrı yaz. Bilmediğin bir ayrıntı varsa onu varsayım olarak işaretle; varsayımı gerçek bilgi gibi kullanma.

  1. Planla: Başlangıç durumunu, beklenen sonucu ve kullanacağın kavramları yaz.
  2. En küçük sürümü kur: Yalnız temel davranışı çalıştır; süsleme ve ek özellikleri sonraya bırak.
  3. Üç test hazırla: Normal bir durum, sınırda bir durum ve hatalı ya da beklenmeyen bir durum seç.
  4. Sonucu kaydet: Beklenen ile gerçekleşeni yan yana yaz; fark varsa olası nedeni belirt.
  5. Tek değişiklik yap: Aynı anda birçok şeyi değiştirmek yerine bir kararı düzeltip testi yeniden çalıştır.

Başarı ölçütleri

“İlk Kod: Blink” çalışmasını bitirdiğinde ürünü bir arkadaşına yalnız bölüm başlıklarıyla anlat. Arkadaşın potansiyometreyle servo açısını sınırlar içinde değiştiren düzenek senaryosundaki adımları ve karar nedenlerini takip edebiliyorsa anlatım yeterince açıktır. Anlaşılmayan noktayı daha fazla terim ekleyerek değil, Blink’in yapısı: setup ve loop ve void loop() ilişkisini daha küçük adımlara bölerek düzelt.

Sık yapılan hatalar

pinMode’u unutmak

setup içinde pinMode(..., OUTPUT) yazmazsan pin çıkış olarak ayarlanmaz ve LED beklendiği gibi çalışmayabilir. Her çıkış pini önce ayarlanmalıdır.

Noktalı virgülü unutmak

Arduino’da her komut satırı ; ile biter. delay(1000) yazıp noktalı virgül koymazsan kod derlenmez ve hata verir.

delay’i hiç kullanmamak

delay olmadan LED o kadar hızlı yanıp söner ki gözle sürekli yanıyormuş gibi görünür. Yanıp sönmeyi görmek için mutlaka bekleme koymalısın.

Harici LED’i dirençsiz bağlamak

Direnç olmadan LED’den çok fazla akım geçer. LED zarar görebilir veya pin zorlanabilir. Harici LED’de her zaman akım sınırlayıcı direnç kullan.

LED’i ters bağlamak

LED’in yönü vardır. Uzun bacak artıya, kısa bacak toprağa (GND) gitmelidir. Ters bağlarsan LED hiç yanmaz.

Güvenlik notu

Ders özeti

Kontrol soruları

  1. setup bloğu kaç kez çalışır, loop bloğu kaç kez çalışır?
  2. pinMode(LED_BUILTIN, OUTPUT); satırının görevi nedir?
  3. digitalWrite(LED_BUILTIN, HIGH) ile LOW arasındaki fark nedir?
  4. delay(2000) yazarsan LED’in yanıp sönme hızı nasıl değişir?
  5. Harici bir LED bağlarken neden direnç kullanırız?

Cevaplar

  1. setup kart açıldığında yalnızca bir kez, loop ise setup bittikten sonra sonsuza kadar tekrar çalışır.
  2. Belirtilen pini çıkış olarak ayarlar; böylece o pinden dışarıya gerilim verip LED’i sürebiliriz.
  3. HIGH pine gerilim uygular ve LED’i yakar; LOW gerilimi keser ve LED’i söndürür.
  4. delay(2000) iki saniye beklettiği için LED daha yavaş yanıp söner (her durumda 2 saniye).
  5. Direnç akımı sınırlar; onsuz LED’den çok akım geçer ve LED ya da pin zarar görebilir.

Kaynak ve doğrulama notu

“İlk Kod: Blink” dersi için doğrulama odağı Blink’in yapısı: setup ve loop ile void loop() arasındaki ilişkinin örnekler üzerinde tutarlı çalışmasıdır. Arduino uyumlu kartlarda pin, gerilim ve akım sınırları modele göre değişebilir. Kod derlense bile devre güvenli olmayabileceğinden, motor ve servo gibi yükler uygun sürücü ve harici besleme ile kullanılmalıdır.

Sonraki ders

Dijital Giriş ve Çıkış: Bir butonla LED’i kontrol ederek digitalRead ile karttan bilgi okumayı öğreneceğiz.

Quiz’i BaşlatArduino bölümüne dön
SORU HAVUZU

Bu dersi 10 soruyla pekiştir

Bu ders için 20 soruluk bir havuz hazırlandı. Her başlangıçta 10 soru ve seçenekler yeniden karıştırılır.