Direnç Hayat Kurtarır: LED bağlarken mutlaka seri olarak bir direnç kullanmalısın. Direnç koymazsan LED yüksek akımdan dolayı anında yanabilir, hatta Arduino pinine zarar verebilirsin.
GND Ortak Olmalı: Projende Arduino dışında harici bir güç kaynağı (pil, adaptör) kullanıyorsan, o kaynağın eksi ($-$) kutbunu mutlaka Arduino’nun GND pinine bağlamalısın. Ortak şasi (GND) olmazsa sinyaller birbirini tanımaz ve devren çalışmaz.
5V Çıkış Gücü Sınırı: Arduino’nun üzerindeki 5V pini küçük sensörleri beslemek için harikadır. Ancak servo motor, step motor veya yüksek akım çeken bileşenleri direkt bu pinden beslersen Arduino aşırı ısınıp reset atabilir. Motorlar için her zaman harici güç kullanmalısın.
Buzzer Seçimi (Aktif vs. Pasif): Aktif buzzer’a sadece elektrik ($5\text{V}$) verdiğinde direkt düz bir "biiip" sesi çıkarır. Pasif buzzer ise bir hoparlör gibidir; ona tone() fonksiyonu ile farklı frekanslar göndererek kendi şarkılarını veya melodilerini (örneğin havalı bir açılış introsu) çaldırabilirsin.
Kısa Devre Koruması: Breadboard üzerinde çalışırken devreye enerji vermeden önce kabloları son bir kez kontrol et. Artı ($+$) ve eksi ($-$) hatlarının birbirine doğrudan değmediğinden emin olmalısın, yoksa USB portunu veya kartı eritebilirsin.
Büyük Düşman "Delay": Kodun içine delay(1000); yazdığında Arduino o 1 saniye boyunca tamamen donar ve hiçbir sensörü okuyamaz. Bunun yerine arka planda zamanı sayan millis() fonksiyonunu öğrenirsen, kartın aynı anda hem sensör okuyup hem de işlem yapabilir.
Pin Tanımlamayı Doğru Yapmak: Pin numaralarını int ledPin = 13; şeklinde tanımlamak yerine const byte ledPin = 13; veya #define ledPin 13 şeklinde tanımlarsan, Arduino’nun mikroişlemcisindeki RAM hafızasını boşuna harcamamış olursun.
Seri Port Ekranı (Serial Monitor): Kodun çalışmıyorsa veya sensörün ne algıladığını göremiyorsan Serial.begin(9600); ile seri iletişimi başlat. Serial.println(sensorDegeri); yazarak bilgisayar ekranından anlık olarak verileri takip edip hatayı şıp diye bulabilirsin.
Baud Rate Uyumu: Koduna Serial.begin(9600); yazdıysan, sağ üstten açtığın Seri Port Ekranı'nın altındaki değerin de 9600 baud olarak seçildiğinden emin ol. Yoksa ekranda garip ters soru işaretleri ve anlamsız semboller görürsün.
Hafıza Tasarrufu (F Fonksiyonu): Seri ekrana çok fazla uzun metin yazdırıyorsan, bunları Serial.print(F("Sistem Baslatildi...")); şeklinde $F()$ içine al. Bu sayede metinler RAM yerine program hafızasında (Flash) tutulur ve kodun kilitlenmez.
Ultrasonik Sensör (HC-SR04) Mantığı: Bu sensör ses dalgası gönderip geri alarak mesafe ölçer. Önünde ses dalgasını emen yumuşak bir yüzey (kumaş, sünger) varsa mesafeyi yanlış ölçebilir veya tamamen sıfır görebilir. Sert yüzeylerde en iyi sonucu verir.
PWM (Sinyal Genişlik Modülasyonu): Bir LED'in parlaklığını kısmak veya motor hızını ayarlamak istiyorsan kabloyu sadece yanında yaklaşık işareti ($\sim$) olan pinlere ($3, 5, 6, 9, 10, 11$) bağlamalısın. analogWrite() komutu sadece bu pinlerde çalışır.
Analog ve Dijital Farkı: Bir buton basıldı mı basılmadı mı ($1$ veya $0$) öğrenmek için Dijital ($D$) pinleri; bir potansiyometrenin veya ışık sensörünün (LDR) ne kadar şiddette veri ürettiğini ($0-1023$ arası) ölçmek için Analog ($A0-A5$) pinleri kullanmalısın.
Buton Titremesi (Debounce): Fiziksel bir butona bastığında mekanik olarak milisaniyeler içinde yüzlerce kez temas eder. Kod bunu "butona ardı ardına çok hızlı basıldı" sanabilir. Başına küçük bir gecikme koyarak veya yazılımsal debounce kullanarak bu sinyal kirliliğini önleyebilirsin.
Map Fonksiyonu ile Değer Ölçekleme: LDR veya potansiyometreden gelen $0-1023$ arasındaki analog veriyi, bir motor hızı ($0-255$) veya açı değeri ($0-180$) formatına dönüştürmek için map() fonksiyonunu kullanabilirsin. Tek satırda tüm matematiksel oranlamayı halleder.
Klon Kartlarda CH340 Sürücüsü: Eğer uygun fiyatlı klon bir Arduino Uno aldıysan ve bilgisayar kartı hiç görmüyorsa, internetten CH340 Driver adlı küçük sürücüyü indirip kurman gerekir. Kurduktan sonra bilgisayarın kartı anında tanıyacaktır.
Doğru Port ve Kart Seçimi: Kod yüklerken aldığın en yaygın hata kartın seçilmemesidir. Arduino IDE menüsünden Araçlar > Kart kısmından Arduino Unoyu, Araçlar > Port kısmından da kartının bağlı olduğu COM portunu (örneğin COM3) seçtiğinden her zaman emin ol.
Kodun Başı ve Sonu: void setup() bölümüne yazılan kodlar Arduino açıldığında sadece bir kez çalışır (pin modları, başlangıç ayarları). void loop() içindekiler ise elektrik olduğu sürece sonsuz bir döngüde sürekli baştan aşağı çalışmaya devam eder.
Açıklama Satırları (Yorum): Yazdığın kod bloklarının yanına // Bu kısım buzzerı öttürür şeklinde açıklamalar ekle. Kod uzadığında veya aylar sonra sayfaya geri döndüğünde hangi satırın ne işe yaradığını unutmazsın.
Harici Kütüphane Ekleme: Gelişmiş sensörler veya ekranlar kullanırken kodları sıfırdan yazmak yerine Taslak > Library Ekle > Kütüphaneleri Yönet kısmından o sensörün adını aratarak hazır kütüphanesini tek tıkla yükleyebilir ve örnek kodları anında kullanabilirsin.