Dokümanlar · ← Blog yazıları

Robotik

Arduino nedir, ne işe yarar? Uno pinleri, ilk kod ve kod yükleme

Probot Studio

Bu yazıda ne yapacağız?

  1. Arduino'nun ne olduğunu ve kartın üstünde neyin nerede durduğunu göreceğiz.
  2. Uno, Nano ve Mega arasından hangisini seçeceğimize karar vereceğiz.
  3. Arduino IDE'yi kurup ilk kodu (Blink) karta yükleyeceğiz.
  4. Sanal Uno'da yanıp sönme süresini kendimiz değiştireceğiz.
  5. Dış LED ve buton bağlayıp ilk devremizi kuracağız.

Neden işe yarar? Robot araba, radar ya da akıllı sera: hepsi aynı üç adımla başlar. Bu yazının sonunda bir LED'i kodla yakıp bir butonu okuyabilirsiniz; geri kalan projeler bunun üstüne kurulur.

Arduino Uno kartının çizimi: üstte 0-13 dijital pinler, altta güç pinleri ve A0-A5 analog girişler, solda USB, DC jak ve RESET, ortada ATmega328P; 13. pine bağlı L LED'i yanıp sönüyor

Arduino nedir?

Arduino, üzerinde küçük bir bilgisayar (mikrodenetleyici) olan ve bilgisayardan USB ile kodlanan açık kaynaklı bir elektronik karttır. En yaygını Arduino Uno: kalbinde ATmega328P işlemcisi var.

Arduino Uno R3 Değer
İşlemci ATmega328P, 16 MHz
Program belleği 32 KB (0,5 KB'ı önyükleyicide)
Çalışma gerilimi 5 V
Pinler 14 dijital (6'sı PWM), 6 analog giriş
Pin başına akım 20 mA
Besleme USB ya da DC jak (önerilen 7-12 V)

Arduino ne işe yarar, nasıl çalışır?

Akış şeması: girdiler (buton, potansiyometre, ışık sensörü, HC-SR04) Arduino'ya gider, Arduino okur, karar verir ve çıktıları (LED, servo, L298N ile DC motor, buzzer) sürer

Arduino girdileri okur, yüklediğiniz koda göre karar verir ve çıktıları sürer. Kodun iki parçası var:

Nerelerde kullanılır, neler yapılabilir?

Arduino çeşitleri: Uno, Nano, Mega

Kart İşlemci Dijital / PWM Analog Ne zaman?
Uno R3 ATmega328P, 16 MHz 14 / 6 6 İlk kart; örneklerin çoğu buna göre
Uno R4 Minima / WiFi Renesas RA4M1, 48 MHz 14 / 6 6 Daha hızlı, 256 KB bellek, USB-C. WiFi sürümünde Wi-Fi, Bluetooth ve 12×8 LED matris
Nano ATmega328, 16 MHz 14 / 6 8 Küçük projeler; 45×18 mm, breadboard'a takılır
Mega 2560 ATmega2560, 16 MHz 54 / 15 16 Çok pin isteyen büyük projeler

Uno ile Nano farkı: işlemci ve kod aynı. Nano küçüktür, doğrudan breadboard'a oturur, DC jakı yoktur ve 2 analog girişi fazladır.

Uno R4 notu: R4'te bir pinden en fazla 8 mA çekin (R3'te 20 mA). LED'e yine direnç takın, motoru pine bağlamayın.

Arduino Uno pinleri (pinout)

Pin Ne yapar?
0-13 dijital HIGH (5 V) ya da LOW (0 V) yazar veya okur. 0 ve 1 seri haberleşme (RX/TX) içindir
~3, 5, 6, 9, 10, 11 PWM: analogWrite() ile LED parlaklığı, motor hızı
A0-A5 analogRead() 0-5 V'u 0-1023 arası sayıya çevirir
5V, 3.3V, GND Sensör besleme; GND ortak eksi
VIN Harici güç girişi (DC jakla aynı hat)
RESET Programı baştan başlatır, kodu silmez

Aşağıdaki sanal Uno'nun Pin haritası sekmesinde her gruba dokunup açıklamasını görebilirsiniz.

Arduino IDE kurulumu ve kod yükleme

Arduino IDE'yi arduino.cc/en/software adresinden indirin. IDE 2, Windows 10 ve üstü (64 bit), macOS 10.15 ve üstü ile 64 bit Linux'ta çalışır. Kurmak istemiyorsanız tarayıcıda çalışan Arduino Cloud Editor da var.

Arduino IDE 2 penceresinin sade çizimi: 1 kart ve port seçimi, 2 Doğrula düğmesi, 3 Yükle düğmesi, 4 yükleme tamamlandı bildirimi; imleç sırayla bu dört yere gidiyor

  1. Kartı USB kablosuyla bağlayın (Uno R3'te USB-B, R4'te USB-C).
  2. Üstteki açılır menüden Arduino Uno'yu ve portu seçin. Görünmüyorsa Araçlar > Kart ve Araçlar > Port.
  3. Doğrula (✓) ile kodun derlendiğini kontrol edin.
  4. Yükle (→) düğmesine basın. Sağ altta bildirim çıkınca kod kartta çalışmaya başlar.

Port Windows'ta COM3 gibi, Linux'ta /dev/ttyACM0 gibi görünür.

Arduino 1. ders: Blink ile LED yakmak

İlk kod hep budur: kart üstündeki L LED'i (pin 13) saniyede bir yakıp söndürür. IDE'de Dosya > Örnekler > 01.Basics > Blink ile de açılır.

// Blink: kart üstündeki L LED'i (pin 13) saniyede bir yanıp söner
void setup() {
  pinMode(LED_BUILTIN, OUTPUT);     // bir kez: pini çıkış yap
}

void loop() {                       // sonsuza kadar tekrar
  digitalWrite(LED_BUILTIN, HIGH);  // yak (5 V)
  delay(1000);                      // 1000 ms = 1 s bekle
  digitalWrite(LED_BUILTIN, LOW);   // söndür (0 V)
  delay(1000);
}

LED_BUILTIN Uno'da 13 demektir. delay() milisaniye ister ve beklerken kart başka iş yapmaz.

Kendiniz deneyin: sanal Uno

Önce yanık süresini 200, sönük süresini 800 ms yapın; sonra pini 8'e alıp 3 kez seçin ve kodun nasıl değiştiğine bakın.

Burada Blink kodunun pinini ve sürelerini değiştirip çizilmiş bir Arduino Uno'da LED'in o zamanlamayla yanıp söndüğünü, altında HIGH/LOW zaman çizelgesini ve pin haritasını görebileceğiniz bir alan var; JavaScript ile çalışır. Açılmadıysa yukarıdaki Blink kodu ve pin tablosu aynı bilgiyi veriyor.

Dış LED bağlamak: direnç neden şart?

Pin 8'den 220 ohm dirence, oradan LED'in uzun bacağına; LED'in kısa bacağından GND'ye giden devre. Altta hesap: (5 V eksi 2 V) bölü 220 ohm yaklaşık 14 mA

Direnç, LED'den geçen akımı sınırlar. Dirençsiz LED hem kendini hem pini bozabilir. 220 Ω ile akım yaklaşık 14 mA olur. Renk bantlarını okumak için direnç renk kodları yazısına bakın.

// Dış LED: pin 8 -> 220 Ω -> LED (uzun bacak) -> LED (kısa bacak) -> GND
const int LED_PIN = 8;

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

void loop() {
  digitalWrite(LED_PIN, HIGH);
  delay(200);                // kısa yanık
  digitalWrite(LED_PIN, LOW);
  delay(800);                // uzun sönük
}

Buton okumak

İki panel: buton basılı değilken içteki pull-up direnci pin 2'yi 5 V'a çeker, HIGH okunur; basılıyken pin 2 GND'ye bağlanır, LOW okunur

Butonun bir bacağı pin 2'ye, öbürü GND'ye gider. INPUT_PULLUP kartın içindeki direnci açar, dış direnç gerekmez. Dikkat: basılıyken LOW okunur.

// Buton: pin 2 -> buton -> GND. Basınca L LED'i (pin 13) yanar.
const int BUTON = 2;

void setup() {
  pinMode(BUTON, INPUT_PULLUP);     // içteki direnç pini 5 V'a çeker
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
  if (digitalRead(BUTON) == LOW) {  // basılı: pin GND'ye bağlandı
    digitalWrite(LED_BUILTIN, HIGH);
  } else {
    digitalWrite(LED_BUILTIN, LOW);
  }
}

Arduino nasıl öğrenilir?

  1. Blink: süreleri değiştirin, dış LED ekleyin.
  2. Buton: girdi okumayı öğrenin.
  3. Analog: bir potansiyometre ile analogRead(), LED parlaklığı için analogWrite().
  4. Hareket: servo, sonra sürücüyle DC motor.
  5. Proje: bunları birleştirip robot araba ya da radar yapın.

Sık yapılan hatalar

Belirti Sebep Çözüm
Port listesinde kart yok Yalnız şarj eden kablo; bazı uyumlu kartlarda sürücü eksik Veri kablosu deneyin; CH340 çipli kartlara sürücüsünü kurun
Linux'ta "Permission denied" Seri port izni yok Kullanıcıyı dialout grubuna ekleyin
Yükleme hata veriyor Yanlış kart ya da port; pin 0-1'e bağlı bir şey var Kart ve portu kontrol edin, 0 ve 1'i boşaltın
Nano'ya yüklenmiyor Eski önyükleyici Araçlar > İşlemci: ATmega328P (Old Bootloader)
Dış LED yanmıyor LED ters takılı Uzun bacak dirence (pine), kısa bacak GND'ye
Buton kendi kendine basılıyor Pin boşta kalıyor INPUT_PULLUP kullanın
expected ';' hatası Satır sonunda ; unutuldu Hatanın gösterdiği satırın bir üstüne bakın

Kaynaklar

Erişim: 17 Ekim 2026