ARDUINO PROGRAMLAMA
Arduino programlama, fiziksel dünyayı kodla yönetme sanatıdır: klavyede yazdığınız birkaç satır, gerçek bir ledi yakar, gerçek bir motoru döndürür, gerçek bir sensörü okur. Kod tabanı C/C++'tır ama Arduino'nun hazır fonksiyonları dili o kadar sadeleştirir ki ilk programınızı yarım saatte çalıştırırsınız — bu yazı, o yarım saatin haritasıdır.
Kartı Tanıyın
Arduino, üzerinde mikrodenetleyici bulunan açık kaynaklı bir geliştirme kartıdır; en yaygın modeli Uno'dur. Kart USB'den hem programlanır hem beslenir; bağımsız çalışma için adaptör girişi ve pil bağlantısı da vardır. 16 MHz'lik saat hızı kulağa mütevazı gelir ama görev tanımına — pinleri okumak ve sürmek — fazlasıyla yeter. Kenarlardaki pinler dış dünyayla köprüdür: dijital pinler var/yok okur ve yazar, analog pinler kademeli değerleri (potansiyometre, sensör) okur, PWM işaretli pinler kademeli çıkış üretir.
İlk Program: Kodun Anatomisi
Her Arduino programı (Arduino dilinde "sketch") iki zorunlu fonksiyondan oluşur. Klasik Blink örneği üzerinden görelim:
void setup() {
pinMode(13, OUTPUT); // 13. pini cikis yap
}
void loop() {
digitalWrite(13, HIGH); // ledi yak
delay(1000); // 1 saniye bekle
digitalWrite(13, LOW); // ledi sondur
delay(1000);
}
setup() kart açıldığında bir kez çalışır — pin modları ve başlangıç ayarları buradadır. loop() ise adı üstünde: sonsuz döngüde döner, programın asıl işi burada yaşar. Satır sonundaki // yorumlar kodun ne yaptığını anlatır — derleyici onları görmez ama altı ay sonra kodu açan siz görürsünüz.

Temel Fonksiyonlar: Küçük Sözlük
- pinMode(pin, mod): Pini giriş (INPUT) ya da çıkış (OUTPUT) yapar.
- digitalWrite / digitalRead: Dijital pine HIGH/LOW yazar, pinden okur — led sürmenin ve buton okumanın temeli.
- analogRead(pin): Analog pindeki gerilimi 0-1023 arası sayıya çevirir — potansiyometre ve sensör okumaları.
- analogWrite(pin, deger): PWM ile 0-255 arası kademeli çıkış — led parlaklığı, motor hızı.
- delay(ms): Milisaniye cinsinden bekletir.
- Serial.begin / Serial.println: Seri monitöre veri yazdırır — Arduino programcısının "ekranı" ve bir numaralı hata ayıklama aracı.
İşin büyütücüsü kütüphanelerdir: LCD ekran, sıcaklık sensörü, servo motor gibi donanımların hazır kod paketleri IDE'nin kütüphane yöneticisinden tek tıkla kurulur — karmaşık protokolleri sıfırdan yazmak yerine hazır fonksiyonları çağırırsınız.

Kod Karta Nasıl Yüklenir?
Akış dört adımdır: Arduino IDE resmi siteden indirilir; kart USB ile bağlanır; IDE'de kart modeli ve bağlantı noktası (port) seçilir; Yükle düğmesine basılır. IDE kodu derler, hata yoksa karta aktarır — yükleme sırasında kartın TX/RX ledleri telaşla yanıp söner. Kod bir kez yüklendikten sonra kartta kalıcıdır: Arduino'yu bilgisayardan ayırıp pille besleseniz de, siz yenisini yükleyene kadar aynı programı çalıştırır.
Neden Arduino ile Başlamalı?
Üç sebep: açık kaynak (donanım şemaları ve yazılım ücretsiz; projeleriniz için kimseye lisans ödemezsiniz), uygun maliyet (kart ve başlangıç seti, hobiye başlama maliyetlerinin en düşüklerinden) ve dev ekosistem — akla gelen hemen her sensör ve modül için kütüphane, örnek ve çözülmüş sorun hazır bekler. "Kapı açılınca telefonuma haber gelsin" fikrinden çalışan prototipe giden yol, hiçbir platformda bu kadar kısa değildir.

Kod yazmadan önce mantığı denemek isteyenler için Arduino simülatörü yazımız risksiz bir başlangıç sunar; sensörlerden motor kontrolüne sistemli ilerlemek isteyenler için Arduino eğitimi uygulamalı yol haritasıdır.
Sıkça Sorulan Sorular
Arduino programlamada setup() ve loop() ne işe yarar?
setup() fonksiyonu kart açıldığında yalnızca bir kez çalışır; pin modlarını ayarlamak (pinMode), seri haberleşmeyi başlatmak (Serial.begin) gibi başlangıç işlemleri burada yapılır. loop() ise setup bittikten sonra sonsuz döngüde sürekli tekrar eder ve programın ana akışını barındırır. Her Arduino programında bu iki fonksiyon mutlaka bulunur.
Arduino hangi dille programlanır?
Arduino, C ve C++ temelli bir dille programlanır. Arduino IDE bu kodu derleyip kartın anlayacağı makine koduna çevirir ve USB üzerinden mikrodenetleyiciye yükler. digitalWrite, analogRead gibi hazır fonksiyonlar dili basitleştirir; ancak alt yapıda standart C++ söz dizimi geçerlidir.
Arduino kütüphanesi nedir ve nasıl kullanılır?
Kütüphane, belirli bir sensör veya modülü kullanmak için önceden yazılmış hazır kod paketidir. Örneğin bir LCD ekran veya DHT11 sıcaklık sensörü için kütüphaneyi IDE'deki Kütüphane Yöneticisinden yükler, kodun başına dahil ederek o cihaza ait fonksiyonları doğrudan çağırırsınız. Bu sayede karmaşık iletişim protokollerini sıfırdan yazmanız gerekmez.
Arduino'da dijital ve analog pin farkı nedir?
Dijital pinler yalnızca iki durum okur veya yazar: HIGH (5V) ve LOW (0V). Analog pinler ise 0-5V arası gerilimi 0-1023 arası bir değere çevirerek okur (10 bit çözünürlük). Bir butonun basılı olup olmadığını dijital pinle, bir potansiyometrenin kademeli konumunu analog pinle okursunuz.
Arduino kodu karta nasıl yüklenir?
Kartı USB ile bilgisayara bağlarsınız, Arduino IDE'de doğru kart modelini ve bağlantı noktasını (port) seçersiniz, ardından Yükle (Upload) düğmesine basarsınız. IDE kodu derler, hatasızsa bootloader aracılığıyla mikrodenetleyiciye aktarır. Yükleme sırasında kart üzerindeki TX/RX LED'leri yanıp söner.
PWM nedir ve Arduino'da nasıl kullanılır?
PWM (darbe genişlik modülasyonu), dijital pinden hızlı açma-kapama yaparak ortalama bir analog gerilim taklit etme yöntemidir. analogWrite(pin, deger) fonksiyonuyla 0-255 arası bir değer verilir; bu sayede LED parlaklığı ayarlanabilir veya motor hızı kademeli kontrol edilebilir. Yalnızca PWM işareti taşıyan pinler bu işlevi destekler.


