ROBOTKODLA
ROBOTKODLA Genç Mucit

Eğlen, Kodla, Geleceği Tasarla

⚡ Arduino Projeleri 20 Ekim 2026

Arduino ile Robotik Kodlamaya Giriş: İlk 5 Uygulama

Arduino Uno ile robotik kodlamaya adım atın. LED yakıp söndürmeden ultrasonik park sensörüne ve servo motora kadar tam kodlu ve devre şemalı ilk 5 proje.

Arduino ile Robotik Kodlamaya Giriş: İlk 5 Uygulama

Dünyanın en popüler açık kaynaklı fiziksel programlama platformu olan Arduino, robotik kodlama öğrenmek isteyenlerin ilk durağıdır. Basit C++ sözdizimi, zengin kütüphane desteği ve binlerce farklı sensörle tak-çalıştır uyumu sayesinde hem ilkokul seviyesindeki bir öğrenci hem de profesyonel bir mühendis Arduino ile harikalar yaratabilir.

Bu kapsamlı rehberde; teoride boğulmadan doğrudan devre tahtası başına geçip inşa edebileceğiniz en temel 5 başlangıç uygulamasını devre şemaları, pin tabloları, çalışma prensipleri ve test edilmiş tam kaynak kodlarıyla adım adım inceliyoruz.

🖥️ Arduino'nun Anatomisi: Pinleri ve Çalışma Mantığını Tanıyalım

Projelerimize başlamadan önce kart üzerindeki pin gruplarını anlamak hayati önem taşır:

  • Dijital Pinler (0 - 13): Yalnızca iki durum alabilir: HIGH (5V - Mantıksal 1) veya LOW (0V - Mantıksal 0). LED yakma, röle tetikleme veya buton okuma gibi işlemlerde kullanılır.
  • PWM Pinleri (~ sembollü 3, 5, 6, 9, 10, 11): Dijital pinler olmasına rağmen darbe genişlik modülasyonu (PWM) üreterek 0 ile 255 arasında ara voltajlar sağlayabilir. Motor hızını veya LED parlaklığını ayarlamak için kullanılır.
  • Analog Giriş Pinleri (A0 - A5): Ortamdaki voltajı 10-bit hassasiyetle okur ve 0 ile 1023 arasında sayısal bir değere dönüştürür. LDR, potansiyometre ve analog sıcaklık sensörleri bu pinlere bağlanır.
  • Güç Pinleri: 5V, 3.3V ve GND (Topraklama / Eksi hat).
  • 🛠️ 1. Uygulama: Harici LED Yakıp Söndürme (Blink Devresi)

    Robotik kodlamanın "Hello World"ü LED yakıp söndürmektir. Bu uygulamada dijital çıkış mantığını, akım sınırlama direncini ve gecikme fonksiyonunu kavrıyoruz.

    Gerekli Malzemeler

  • 1 Adet Arduino Uno & Breadboard
  • 1 Adet 5mm Kırmızı LED
  • 1 Adet 220Ω Direnç (Renkler: Kırmızı - Kırmızı - Kahverengi)
  • 2 Adet Erkek-Erkek Jumper Kablo
  • Devre Bağlantı Tablosu

    Bileşen BacağıBağlanacak YerAçıklama
    LED Anot (+ Uzun Bacak)220Ω Direnç üzerinden Arduino Pin 8Dijital kontrol sinyali
    LED Katot (- Kısa Bacak)Doğrudan Arduino GND PiniTopraklama hattı

    Arduino C++ Kodu

    // 1. Uygulama: Harici LED Blink
    const int ledPin = 8; // LED 8. pine bağlandı
    
    void setup() {
      pinMode(ledPin, OUTPUT); // 8. pini çıkış olarak tanımla
    }
    
    void loop() {
      digitalWrite(ledPin, HIGH); // LED'e 5V elektrik ver (YAK)
      delay(1000);                // 1000 milisaniye (1 saniye) bekle
      digitalWrite(ledPin, LOW);  // LED'in elektriğini kes (SÖNDÜR)
      delay(1000);                // 1 saniye bekle
    }

    Kod Satırı İncelemesi:

  • pinMode(ledPin, OUTPUT);: Arduino'ya 8. pinden dışarıya elektrik akımı vereceğimizi bildirir.
  • digitalWrite(ledPin, HIGH);: 8. pinden tam 5V çıkış verir.
  • delay(1000);: İşlemciyi 1 saniye boyunca bu durumda kilitler.
  • 🔘 2. Uygulama: Buton ile LED Kontrolü (Dijital Giriş Okuma)

    Robotların kullanıcı komutlarına veya fiziksel temas anahtarlarına nasıl tepki verdiğini öğreniyoruz.

    Pull-Down Direnci Neden Zorunludur?

    Butona basılmadığı anlarda pin havada kalır (floating pin). Ortamdaki statik elektrik yüzünden Arduino pini rastgele 1 ve 0 okur. Pin ile GND arasına 10kΩ bir pull-down direnci bağlayarak butona basılmadığında pinin kararlı bir şekilde 0V (LOW) kalmasını garanti ederiz.

    Devre Bağlantı Tablosu

    BileşenBağlantı NoktasıGörev
    Push Buton 1. BacakArduino 5VGiriş voltajı beslemesi
    Push Buton 2. BacakArduino Pin 2 + 10kΩ Dirençle GNDPull-down dirençli sinyal hattı
    LED Anot (+)220Ω Direnç üzerinden Pin 8Kontrol edilen lamba
    LED Katot (-)Arduino GNDEksi hat

    Arduino C++ Kodu

    const int buttonPin = 2;
    const int ledPin = 8;
    
    void setup() {
      pinMode(ledPin, OUTPUT);
      pinMode(buttonPin, INPUT); // Buton sinyalini okumak için INPUT
    }
    
    void loop() {
      int buttonState = digitalRead(buttonPin); // Buton durumunu oku (1 veya 0)
    
      if (buttonState == HIGH) {
        digitalWrite(ledPin, HIGH); // Butona basılıyorsa LED yansın
      } else {
        digitalWrite(ledPin, LOW);  // Basılmıyorsa sönsün
      }
    }

    ☀️ 3. Uygulama: LDR ile Otomatik Gece Lambası (Analog Giriş)

    Bu uygulamada robotların ortam ışığını nasıl sayısal verilere dönüştürdüğünü öğreniyoruz.

    Devre Mantığı

    LDR ışık aldığında direnci düşer (yaklaşık 1kΩ), karanlıkta ise direnci megaohm seviyesine çıkar. 10kΩ dirençle kurulan gerilim bölücü devre sayesinde ışık değiştikçe A0 pinine gelen voltaj 0V ile 5V arasında değişir. Arduino bu voltajı 0 ile 1023 arasında bir sayı olarak okur.

    Arduino C++ Kodu

    const int ldrPin = A0;
    const int ledPin = 8;
    const int esikDegeri = 500; // Karanlık eşik sınırı
    
    void setup() {
      pinMode(ledPin, OUTPUT);
      Serial.begin(9600); // Seri monitörü başlat
    }
    
    void loop() {
      int isikSeviyesi = analogRead(ldrPin); // 0 - 1023 arası değer oku
      Serial.print("Işık Değeri: ");
      Serial.println(isikSeviyesi);
    
      if (isikSeviyesi < esikDegeri) {
        digitalWrite(ledPin, HIGH); // Ortam karanlıksa lambayı aç
      } else {
        digitalWrite(ledPin, LOW);  // Aydınlıksa kapat
      }
      delay(200);
    }

    🚗 4. Uygulama: HC-SR04 Ultrasonik Park Sensörü

    Otomobillerdeki geri vites park sensörü sistemini ses dalgalarıyla kuruyoruz.

    Ses Dalgalarıyla Mesafe Nasıl Ölçülür?

    Ses havada yaklaşık 340 m/s (yani 0.0343 cm/µs) hızla yayılır. Sensörün Trig pininden 40 kHz'lik bir ses darbesi fırlatılır. Ses cisme çarpıp geri döndüğünde Echo pini HIGH olur. Sürenin yarısı (gidiş mesafesi) ses hızıyla çarpılarak santimetre bulunur.

    Devre Bağlantı Tablosu

    HC-SR04 Sensör PiniArduino Pini
    VCC5V
    GNDGND
    Trig (Tetik)Pin 9
    Echo (Yankı)Pin 10
    Buzzer (+)Pin 6
    Buzzer (-)GND

    Arduino C++ Kodu

    const int trigPin = 9;
    const int echoPin = 10;
    const int buzzerPin = 6;
    
    long sure;
    int mesafe;
    
    void setup() {
      pinMode(trigPin, OUTPUT);
      pinMode(echoPin, INPUT);
      pinMode(buzzerPin, OUTPUT);
      Serial.begin(9600);
    }
    
    void loop() {
      // 10 mikrosaniyelik ses dalgası fırlat
      digitalWrite(trigPin, LOW);
      delayMicroseconds(2);
      digitalWrite(trigPin, HIGH);
      delayMicroseconds(10);
      digitalWrite(trigPin, LOW);
    
      // Sesin geri dönüş süresini mikrosaniye cinsinden ölç
      sure = pulseIn(echoPin, HIGH);
      mesafe = sure * 0.034 / 2; // Santimetreye çevir
    
      Serial.print("Mesafe: ");
      Serial.print(mesafe);
      Serial.println(" cm");
    
      if (mesafe < 15 && mesafe > 0) {
        digitalWrite(buzzerPin, HIGH); // Cisim 15 cm'den yakınsa uyar
        delay(100);
        digitalWrite(buzzerPin, LOW);
        delay(100);
      } else {
        digitalWrite(buzzerPin, LOW);
      }
      delay(100);
    }

    🚧 5. Uygulama: SG90 Servo Motorlu Otomatik Otopark Bariyeri

    Bu projede ultrasonik sensör araç algıladığında servo motor bariyer kolunu 90 derece yukarı kaldırır.

    Arduino C++ Kodu

    #include <Servo.h>
    
    Servo bariyer;
    const int trigPin = 9;
    const int echoPin = 10;
    long sure;
    int mesafe;
    
    void setup() {
      bariyer.attach(3); // Servo motor 3. pine bağlandı
      bariyer.write(0);  // Başlangıçta bariyer kapalı (0 derece)
      pinMode(trigPin, OUTPUT);
      pinMode(echoPin, INPUT);
    }
    
    void loop() {
      digitalWrite(trigPin, LOW);
      delayMicroseconds(2);
      digitalWrite(trigPin, HIGH);
      delayMicroseconds(10);
      digitalWrite(trigPin, LOW);
    
      sure = pulseIn(echoPin, HIGH);
      mesafe = sure * 0.034 / 2;
    
      if (mesafe < 10 && mesafe > 0) {
        bariyer.write(90); // Araç yaklaştı, bariyeri aç (90 derece)
        delay(3000);       // Aracın geçmesi için 3 saniye bekle
        bariyer.write(0);  // Bariyeri tekrar kapat
      }
      delay(200);
    }

    🔧 Sık Karşılaşılan Hatalar ve Çözüm Tablosu

    Karşılaşılan SorunOlası NedenKesin Çözüm
    Port menüsü pasif (Port grayed out)CH340 sürücüsü eksikBilgisayarınıza CH340G USB sürücüsünü kurun
    avrdude: stk500_getsync() hatasıKart veya Port seçimi yanlışTools menüsünden doğru kartı ve COM portunu seçin
    LED hiç yanmıyorBacaklar ters veya direnç çok yüksekUzun bacağı artıya bağlayın, 220Ω direnç kullanın
    Mesafe sensörü sürekli 0 cm gösteriyorTrig/Echo pinleri karışmışTrig ve Echo pinlerinin doğru pinlerde olduğunu teyit edin
    Servo motor titriyor ve reset atıyorArduino 5V akımı yetersizServo motoru harici 5V pilden besleyip ortak GND bağlayın

    💡 Sıkça Sorulan Sorular (SSS)

    Arduino'ya kod yüklerken devreyi sökmek gerekir mi?

    Genellikle hayır. Ancak dijital 0 (RX) ve 1 (TX) pinlerine bağlı Bluetooth veya seri modül varsa, kod yükleme anında bilgisayarla haberleşmeyi engellediği için bu pinlerdeki kabloları yükleme bitene kadar çıkarmanız gerekir.

    Kodları yükledikten sonra Arduino'yu bilgisayara bağlı tutmak zorunda mıyım?

    Hayır. Kodlar Arduino'nun kalıcı EEPROM/Flash hafızasına yazılır. Bilgisayardan çıkarıp harici bir 9V adaptör veya pil taktığınızda yüklediğiniz kod otomatik olarak anında çalışmaya başlar.

    Doğrulanmış Rehber İçeriği Son Revizyon: Ekim 2026

    RobotKodla STEM & Teknoloji Editör Heyeti

    Bu rehber; bilişim eğitimcileri ve gömülü sistem mühendisleri tarafından pedagojik doğruluk, güncel teknoloji standartları ve tarafsızlık ilkelerine uygun şekilde kaleme alınmıştır.

    Pedagojik Rehber
    Tarafsız Kıyaslama
    Uzman Onaylı
    Herkese Açık Kaynak
    💡

    Arduino ile Robotik Kodlamaya Giriş: İlk 5 Uygulama Hakkında Merak Edilenler

    Bu konuyla ilgili öğrencilerin ve velilerin en çok sorduğu soruların yanıtları

    Bu rehber yazıda anlatılan yöntemleri uygulamak için neler gereklidir?▼
    İçerikte belirtilen açık kaynaklı yazılım araçlarını ve temel donanım bileşenlerini temin etmeniz yeterlidir. Tüm adımlar pratik uygulamalarla desteklenmiştir.
    Bu uygulamada devre bağlantısı yaparken en çok yapılan hata nedir?▼
    Ortak toprak (GND) hattının bağlanmaması, LED ve sensör bacaklarının ters kutupla takılması ya da pin numaralarının koddaki dijital/analog tanımlarla uyuşmaması en sık karşılaşılan durumlardır. Şemadaki pin numaralarını iki kez kontrol etmek sorunu çözer.
    Arduino ile Robotik Kodlamaya Giriş: İlk 5 Uygulama çalışmasını tamamladıktan sonra nasıl daha ileri bir seviyeye taşıyabilirim?▼
    Bu çalışmaya ek sensörler (kablosuz Bluetooth/Wi-Fi modülü, OLED ekran veya sesli buzzer uyarısı) entegre edebilir; verileri internet ortamına aktararak Nesnelerin İnterneti (IoT) tabanlı akıllı bir sisteme dönüştürebilirsiniz.