Arduino Projem Çalışmıyor: 10 Dakikalık Teşhis Sırası
Arduino projem çalışmıyor diyorsan dıştan içe 6 adımlık teşhis sırası: güç, yükleme, bağlantı, parça, kod, sensör. Akış tablosu, test kodu ve 8 maddelik kart.
Arduino projen çalışmıyorsa sorunu rastgele kablo söküp takarak değil, dıştan içe sırayla ara: önce güç (kart açılıyor mu?), sonra yükleme (kod gerçekten karta gitti mi?), sonra bağlantı (GND ortak mı, kablo doğru pinde mi?), sonra parçanın yönü ve değeri (LED ters mi, direnç doğru mu?), sonra kod (pin numarası ve mantık) ve en son sensör ya da çevre (ışık, mesafe, besleme gerilimi). Her katmanda tek bir test yap ve her seferinde yalnız bir şeyi değiştir. Bu sırayla giden biri arızaların çoğunu 10 dakika içinde bulur; çünkü en sık görülen hatalar en dış katmanlardadır ve onları kontrol etmek en ucuz olandır.
Bu yazı tek tek hata mesajlarını listelemiyor; bir teşhis yöntemi veriyor. Önce yöntemin iki kuralını, sonra her katman için belirti, 1 dakikalık test ve olası neden içeren bir akış tablosunu göreceksin. Ardından Blink ve seri monitörle devreyi parçalara bölen kısa bir test kodu, multimetreyle yapılacak 4 ölçüm (multimetren yoksa LED ve seri monitörle yapılan karşılıkları), BlueGrays'teki ücretsiz bir projede adım adım bir arıza teşhisi, belirtiye göre hızlı bakış tablosu ve sınıfta kullanmak için 8 maddelik bir teşhis kartı geliyor.

Teşhisin iki kuralı: dıştan içe ve tek değişken
Dıştan içe gitmenin mantığı basit: iç katmanlar dış katmanlara bağlıdır. Kart beslenmiyorsa kodun doğru olup olmaması önemsizdir; kod karta yüklenmediyse kablolamayı düzeltmek hiçbir şeyi değiştirmez. Dış katmanlar aynı zamanda en hızlı kontrol edilenlerdir: güç ışığına bakmak 5 saniye, yükleme mesajını okumak 10 saniye sürer, ama koddaki bir mantık hatasını bulmak dakikalar alabilir. İkinci kural tek değişken kuralıdır. Aynı anda hem kabloyu, hem direnci, hem de koddaki eşik değerini değiştirirsen proje çalışsa bile neyin düzelttiğini bilemezsin; çalışmazsa da yeni bir hata eklemiş olabilirsin. Bir değişiklik yap, test et, sonucu not al, sonra diğerine geç.
- Belirtiyi tek cümleyle yaz: "Elimi LDR'nin üstüne koyunca LED'in yanmasını bekliyorum, hiç yanmıyor." "Çalışmıyor" bir belirti değildir; ne beklediğini ve ne olduğunu ayrı ayrı yazınca aranacak katman çoğu zaman kendiliğinden belli olur.
- Kablo takarken USB'yi çıkar: Bağlantıları değiştirirken kart beslemede kalırsa yanlış bir temas kısa devre yapabilir. Değişikliği yap, gözle kontrol et, sonra tak.
- Bilinen sağlam parçayla değiştir: Şüphelendiğin LED'i, kabloyu ya da sensörü çalıştığını bildiğin bir başkasıyla değiştirmek, ölçüm aleti olmadan yapılabilecek en güçlü testtir.
- Not al: "Kabloyu 7'den 8'e aldım, değişmedi" gibi kısa notlar aynı testi iki kez yapmanı önler; foruma ya da öğretmenine soracaksan da hazır bir özet olur.
- Basitleştir: Proje büyükse modülleri tek tek çıkar. Önce yalnız kart, sonra kart ve çıkış parçası, sonra giriş parçası. Hangi parçayı ekleyince bozulduğunu görmek arızanın yerini gösterir.
10 dakikalık teşhis akış tablosu
Aşağıdaki tabloyu yukarıdan aşağı oku ve bir katmanın testi geçmeden bir alttakine inme. Her test yaklaşık bir dakika sürer, yani altı katmanın hepsi 6–10 dakikada biter. Testlerin çoğu için yalnız gözlerin, karttaki ışıklar ve Arduino IDE'nin seri monitörü yeterli; multimetre varsa işini hızlandırır ama zorunlu değil. "Olası neden" sütunu, test başarısız olduğunda ilk bakman gereken yerleri sıklık sırasına yakın bir düzende veriyor.
| Katman | Belirti | 1 dakikalık test | Olası neden |
|---|---|---|---|
| 1. Güç | Hiçbir şey olmuyor, karttaki ışıklar sönük ya da kart ısınıyor | Karttaki ON ışığı yanıyor mu? USB'yi çıkarıp parçalara dokun, ısınan var mı? | Yalnız şarj eden USB kablo, gevşek port, 5V ile GND arasında kısa devre, ters bağlanmış modül |
| 2. Yükleme | Kod değişti ama kart eski davranışı sürdürüyor | IDE'de yükleme tamamlandı mesajı geldi mi, hata satırı var mı? Araçlar menüsünde kart ve port doğru mu? | Yanlış kart ya da port, derleme hatası, sürücü eksik, seri monitör portu meşgul ediyor |
| 3. Bağlantı | Bir parça hiç tepki vermiyor ya da arada bir çalışıyor | Şemayı büyüt, her kabloyu iki ucundan say; GND kartla ortak mı? | Breadboard'da kayık satır, bölünmüş güç rayı, D ve A pinlerinin karışması, kırık jumper |
| 4. Parça yönü ve değeri | LED yanmıyor ya da çok sönük, buton hep basılı görünüyor | LED'in uzun bacağı pine mi gidiyor? Direnç renkleri ne diyor? Buton 90 derece çevrik mi? | Ters LED, 220 Ω yerine 10 kΩ direnç, LDR ile direncin yer değiştirmesi, modülde VCC ve GND sırası |
| 5. Kod | Kart çalışıyor ama davranış yanlış | Koddaki pin numaralarını devreyle tek tek eşleştir; seri monitöre ara mesaj yazdır | Yanlış pin numarası, eksik pinMode, = ile == karışması, uygun olmayan eşik ya da bekleme süresi |
| 6. Sensör ve çevre | Değerler hep aynı, saçma ya da zıplıyor | Sensör değerini seri monitörde izle, ortamı değiştir (ışığı kapat, elini yaklaştır) | Ortam ışığı, sensörün menzil dışı kalması, ısınma süresi, 3,3 V ve 5 V uyumsuzluğu, uzun kablo ve parazit |
1. ve 2. katman: güç ve yükleme
Arduino Uno'da iki ışık bu iki katmanın ilk ipucudur. ON ışığı kartın beslendiğini gösterir; yanmıyorsa önce USB kablosunu değiştir, çünkü bazı kablolar yalnız şarj içindir ve veri taşımaz. ON yanıyor ama kart USB'ye takılınca bilgisayar sesi kesiliyorsa ya da ışık sönüp yanıyorsa devrede bir kısa devre olabilir: USB'yi çıkar, 5V ve GND hatlarını izle, ters takılmış bir modül ya da iki rayı birleştiren bir kablo ara. Isınan bir parça her zaman ciddi bir işarettir; o parçayı çıkarmadan karta yeniden güç verme. Motor, servo ya da röle kullanıyorsan USB'nin verdiği akım yetmeyebilir; bu durumda belirti genellikle "hiç çalışmamak" değil, rastgele reset ya da titremedir. Pil ve adaptörle besleme seçenekleri için Arduino pil ile çalıştırma yazısına bakabilirsin.
Yükleme katmanında tek bir soruya cevap arıyorsun: karttaki kod, ekranda gördüğün kod mu? Arduino IDE yükleme bittiğinde alttaki bilgi alanında yüklemenin tamamlandığını yazar; kırmızı satırlar varsa kod karta hiç gitmemiştir ve kart eski programını çalıştırmaya devam eder. Bu çok sinsi bir durumdur, çünkü kodda yaptığın düzeltmenin işe yaramadığını sanırsın. avrdude, port ve sürücü hataları için Arduino kod yüklenmiyor, derleme aşamasında takılıyorsan derleme hataları yazısı her mesajı tek tek açıklıyor. Basit bir kanıt testi de var: koddaki bir bekleme süresini 100'den 1000'e çıkar ve yükle. LED'in ritmi değişmiyorsa sorun yükleme katmanındadır. ESP32'de bazı kartlar yükleme sırasında BOOT tuşuna basılı tutulmasını ister; Raspberry Pi Pico'da ise Thonny'nin sağ alt köşesinde MicroPython yorumlayıcısının seçili olduğunu kontrol et.
3. katman: bağlantılar, GND ve pinler
Kart beslenip kod yüklendiğine göre sıra kablolarda. En sık iki hata ortak GND'nin unutulması ve breadboard'un yanlış okunmasıdır. Bir sensör ya da modül ayrı bir kaynaktan besleniyorsa bile GND'si Arduino'nun GND'sine bağlı olmalı, yoksa sinyal gerilimi bir referansa sahip olmaz. Breadboard'da ortadaki oluk iki yarıyı birbirinden ayırır ve uzun breadboard'larda kenardaki güç rayları ortada ikiye bölünmüş olabilir; rayın bir yarısına 5V verip diğer yarısındaki parçayı beslediğini sanmak çok yaygın bir hatadır. Bu katmanın en iyi yöntemi şemayla birebir karşılaştırmadır: her kabloyu tek tek, iki ucuyla birlikte say ve şemadaki karşılığını parmağınla göster. Dijital 2 ile analog A2'yi, 5V ile VIN'i karıştırmak, kablonun bir sıra kaymış olması bu sayımda hemen çıkar. Şema sembolleri yabancı geliyorsa devre şeması nasıl okunur yazısı breadboard'a aktarmayı adım adım anlatıyor.
4. katman: parça yönü ve değeri
Bağlantılar doğru ama bir parça hâlâ tepki vermiyorsa parçanın kendisine bak. LED'in uzun bacağı (anot) dirençten pine, kısa bacağı (katot) GND'ye gitmeli; ters takılan LED genellikle zarar görmez, yalnızca yanmaz. Dirençler en çok karışan parçadır: 220 Ω kırmızı-kırmızı-kahverengi, 10 kΩ kahverengi-siyah-turuncu halkalıdır. LED'in yanına 10 kΩ takılırsa LED fark edilmeyecek kadar sönük yanar; LDR ya da butonun yanına 220 Ω takılırsa okumalar anlamsızlaşır. Halkaları renk kodu hesaplayıcısıyla okuyabilir, LED'e uygun direnci LED direnci hesaplayıcısıyla bulabilirsin. Dört bacaklı butonlar 90 derece çevrik takılırsa her zaman basılı ya da hiç basılmamış görünür. Modüllerde VCC, GND ve sinyal sırası üreticiye göre değişir; pin etiketini kartın üzerinden oku, internetteki bir resimden değil. Transistör ve gerilim regülatörü gibi üç bacaklı parçalarda da bacak sırası modele göre farklıdır.
5. katman: kod (pin numarası ve mantık)
Donanım sağlamsa kodun devreyle aynı şeyi söyleyip söylemediğine bak. İlk kontrol pin numaralarıdır: LED fiziksel olarak 8'e takılıyken kodda digitalWrite(9, HIGH) yazıyorsa her şey kusursuz görünür ama hiçbir şey olmaz. İkinci kontrol pinMode'dur: setup() içinde pinMode(pin, OUTPUT) unutulursa digitalWrite(pin, HIGH) pini çıkış yapmaz, yalnızca dahili pull-up direncini açar ve LED çok sönük yanar. Bu, "LED sönük" belirtisinin direnç dışındaki en sık nedenidir. Üçüncü kontrol mantıktır: if (deger = 100) yazmak karşılaştırma yapmaz, değişkene 100 atar ve koşul her zaman doğru olur; doğrusu ==. Eşik değerleri ve bekleme süreleri de bu katmana girer: ortamına uymayan bir eşik, sensör kusursuz çalışsa bile hiçbir şeyin tetiklenmemesine yol açar. Kütüphane kullanan projelerde doğru kütüphanenin kurulu olduğunu da kontrol et; ayrıntılar Arduino kütüphane ekleme yazısında.
6. katman: sensör ve çevre
Son katman, devre ve kod doğruyken bile sonucu bozan dış koşullardır. LDR'nin değeri odanın ışığına göre değişir; gündüz pencere kenarında çalışan bir eşik akşam lamba ışığında tutmayabilir. HC-SR04 kumaş gibi yumuşak yüzeylerde yankı alamaz ve 2 cm'den yakını ölçemez. MQ serisi gaz sensörleri ölçmeden önce birkaç dakika ısınmak ister. DHT11 saniyede bir okumadan hızlı okunursa hata verir. ESP32 ve Raspberry Pi Pico'nun pinleri 3,3 V ile çalışır; 5 V çıkış veren bir sensörü doğrudan bağlamak hem yanlış okumaya hem de pinin zarar görmesine yol açabilir. Uzun kablolar, motorların yarattığı parazit ve boşta kalan girişler de değerlerin zıplamasına neden olur. Bu katmanda en iyi araç seri monitördür: sensörün ham değerini izle ve ortamı bilerek değiştir. I2C ekran ya da sensör hiç cevap vermiyorsa I2C nedir yazısındaki tarayıcı kodu adresi gösterir.
Böl ve yönet: Blink ile kartı, seri monitörle adımları doğrula
Katmanlar arasında hızlı ilerlemenin en iyi yolu devreyi ve kodu parçalara bölmektir. İlk parça kartın kendisi: hiçbir şey bağlamadan karttaki L ışığını yakıp söndüren bir kod yükle. L ışığı yanıp sönüyorsa güç, yükleme ve kart sağlamdır; artık sorunu kartın dışında aramalısın. İkinci parça çıkış: aynı kodda harici LED'i de yak. Üçüncü parça giriş: sensör değerini seri monitöre yazdır. Aşağıdaki kod üç parçayı birden yapar ve her adımda seri monitöre numaralı bir kontrol noktası yazar. Harici LED'i 220 Ω dirençle 9 numaralı pine, test edeceğin analog sensörün sinyalini A0'a bağla; seri monitörü 9600 baud'a ayarla.
1const int LED_PIN = 9; // Harici LED pini / External LED pin
2const int SENSOR_PIN = A0; // Analog sensör pini / Analog sensor pin
3
4void setup() {
5 Serial.begin(9600); // Seri monitör de 9600 olmalı / Serial Monitor must be 9600 too
6 pinMode(LED_BUILTIN, OUTPUT); // Karttaki L ışığı / On-board L LED
7 pinMode(LED_PIN, OUTPUT); // Harici LED çıkış / External LED as output
8 Serial.println("1) setup bitti"); // Kontrol noktası 1 / Checkpoint 1
9}
10
11void loop() {
12 digitalWrite(LED_BUILTIN, HIGH); // Kart canlı mı? / Is the board alive?
13 digitalWrite(LED_PIN, HIGH); // Harici LED açık / External LED on
14 Serial.println("2) LED acik"); // Kontrol noktası 2 / Checkpoint 2
15 delay(500);
16
17 digitalWrite(LED_BUILTIN, LOW);
18 digitalWrite(LED_PIN, LOW); // Harici LED kapalı / External LED off
19 Serial.println("3) LED kapali"); // Kontrol noktası 3 / Checkpoint 3
20 delay(500);
21
22 int value = analogRead(SENSOR_PIN); // 0-1023 arası okuma / Reading from 0 to 1023
23 Serial.print("4) A0 = ");
24 Serial.println(value); // Sensör değeri / Sensor value
25}| Seri monitörde ve kartta gördüğün | Anlamı | Bakılacak katman |
|---|---|---|
| Seri monitör boş, L ışığı da yanıp sönmüyor | Kod çalışmıyor ya da karta hiç gitmedi | 1. Güç, 2. Yükleme |
| Anlamsız karakterler akıyor | Seri monitörün hızı Serial.begin(9600) ile aynı değil | 5. Kod (baud ayarı) |
| "1) setup bitti" arada bir tekrar ediyor | Kart kendini resetliyor, genellikle besleme yetmiyor | 1. Güç |
| 2 ve 3 sırayla geliyor, L yanıp sönüyor ama harici LED yanmıyor | Kod ve kart sağlam; harici LED'in yolu bozuk | 3. Bağlantı, 4. Parça yönü ve değeri |
| A0 hep 0 ya da hep 1023 civarı | Sinyal hattı GND'ye ya da 5V'a gidiyor, sensör beslenmiyor ya da bölücü direnç eksik | 3. Bağlantı, 4. Parça değeri |
| A0 bağlı değilken rastgele zıplıyor | Pin boşta; bu normaldir, sensörü bağlayınca durmalı | 3. Bağlantı |
Bu kodun asıl gücü kontrol noktalarıdır. Kendi projende de aynı yöntemi kullan: setup() sonuna ve loop() içindeki her önemli adımın arkasına kısa bir Serial.println() ekle, örneğin "butona basildi" ya da "esik asildi". Seri monitörde hangi mesajın en son göründüğü, programın nerede takıldığını gösterir. Bir koşulun neden çalışmadığını anlamak için koşuldan hemen önce karşılaştırdığın değeri yazdır; "deger < 50" hiç doğru olmuyorsa değerin hiç 50'nin altına inmediğini orada görürsün. Büyük projelerde de aynı mantıkla bir kısmı geçici olarak yorum satırına alıp parçaları tek tek dene. Seri monitörün baud hızı, satır sonu ve çizici gibi ayarları için Arduino Serial Monitor kullanımı yazısına bakabilirsin.
Multimetreyle 4 ölçüm (yoksa LED ve seri monitörle)
Multimetre teşhisi tahminden ölçüme çevirir, ama yalnızca dört ölçüm Arduino arızalarının çoğunu kapsar. Ölçümlerden önce aleti doğru kademeye al: gerilim için DC V, kablo ve satır kontrolü için bip (süreklilik), direnç için Ω. Bip ve direnç ölçümlerini her zaman USB çıkarılmışken yap. Multimetren yoksa son sütundaki yöntemler aynı soruya daha kaba ama yeterli bir cevap verir. Ölçüm aletinin kademeleri ve uçların takılacağı yuvalar multimetre nasıl kullanılır yazısında resimli olarak anlatılıyor.
| Ölçüm | Multimetre ayarı ve uçlar | Beklenen | Multimetre yoksa |
|---|---|---|---|
| Besleme gerilimi | DC V; siyah uç GND, kırmızı uç 5V pini (kart USB'de) | Yaklaşık 4,7–5,1 V; 3,3V pininde yaklaşık 3,3 V | ON ışığına bak, Blink'i yükle; L ışığı düzenli yanıp sönüyorsa besleme yeterli |
| Kablo ve breadboard satırı | Bip modu, USB çıkarılmış; uçları kablonun iki ucuna ya da aynı satırdaki iki deliğe değdir | Bip sesi; ses yoksa kablo kırık ya da satır farklı | Şüpheli kabloyu bilinen sağlam bir kabloyla değiştir; LED ve 220 Ω direnci o kablo üzerinden 5V ile GND arasına bağla |
| Direnç değeri | Ω kademesi; direnci devreden çıkarıp iki bacağına dokun | 220 Ω için yaklaşık 209–231 Ω (yüzde 5 tolerans) | Renk halkalarını oku ve renk kodu hesaplayıcısıyla doğrula |
| Sinyal gerilimi | DC V; siyah uç GND, kırmızı uç çıkış pinine ya da sensörün sinyal hattına | Çıkış HIGH iken yaklaşık 5 V, LOW iken 0 V; LDR bölücüsünde ışıkla değişen bir değer | Seri monitörde analogRead değerini izle (5 V yaklaşık 1023, 0 V yaklaşık 0); çıkış pinine LED bağla |
Örnek teşhis: Ldr İle Gece Lambası projesinde LED yanmıyor
Yöntemi BlueGrays'teki ücretsiz bir projede deneyelim: Ldr İle Gece Lambası. Devrede LDR'nin bir ucu 5V'a, diğer ucu A0'a gider; A0 ile GND arasına 10 kΩ direnç bağlanır ve bu ikisi bir gerilim bölücü oluşturur. LED 330 Ω dirençle 13 numaralı pine bağlıdır. Kod A0'ı okur, değer 50'nin altındaysa ortamı karanlık sayıp LED'i yakar. Belirti şu: "Elimle LDR'nin üstünü kapatıyorum, LED hiç yanmıyor." Rastgele kablo değiştirmek yerine katmanları sırayla geçelim.

- Güç: ON ışığı yanıyor, ısınan parça yok. Geç.
- Yükleme: Yükleme hatasız bitti. Emin olmak için koddaki 50'yi geçici olarak 2000 yap ve yükle; analogRead en fazla 1023 verdiği için koşul hep doğru olur ve LED sürekli yanmalı.
- Bağlantı ve L ışığı: 13 numaralı pin karttaki L ışığına da bağlıdır. 2000 eşiğiyle L yanıyor ama harici LED yanmıyorsa kod çalışıyordur; sorun LED'in yolundadır. LED'in uzun bacağı 330 Ω üzerinden 13'e, kısa bacağı GND'ye gidiyor mu?
- Parça yönü ve değeri: LED ters değil, ama LED'in yanında 330 Ω yerine 10 kΩ varsa LED fark edilmeyecek kadar sönük yanar. İki direnci renklerinden ayır.
- Kod ve sensör: Harici LED 2000 eşiğiyle yanıyorsa eşiği 50'ye geri al. Bu kez gerçek değerleri görmek için aynı devreye Ldr İle Işık Şiddeti Okuma projesinin kodunu yükle; bu kod aynı LDR bağlantısıyla A0'ı her yarım saniyede seri monitöre yazar.
- Değerleri oku: Diyelim ki açıkta 600 civarı, elinle kapattığında 120 civarı görüyorsun. Değer hiç 50'nin altına inmediği için LED de hiç yanmaz. Gece lambası koduna dön ve eşiği 200–300 aralığına çıkar.
- Ters davranışı ayırt et: Kapattığında değer düşeceğine yükseliyorsa LDR ile 10 kΩ yer değiştirmiştir. Değer elini kıpırdatmadan rastgele zıplıyorsa A0 kablosu LDR ile direncin birleştiği satıra oturmamıştır.
Bu örnekte arızayı bulan şey yeni bir bilgi değil, sıraydı: önce LED'in kendisinin yanabildiğini kanıtladık, sonra sensörün gerçekte ne okuduğuna baktık. Uygulamada aynı projenin Kodu anla sekmesindeki Takıldıysan bölümünde bu belirtilerin beşi zaten belirti ve çözüm çifti olarak var: karanlıkta harici LED'in hiç yanmaması, LED'in aydınlıkta yanıp karanlıkta sönmesi, el kapatınca bile yanmaması, sürekli yanık kalıp titremesi ve yükleme hatası. Projenin Sorun Giderme bölümü ise güçten başlayıp yüklemeye, pin numaralarına, breadboard'a, jumper kablolara, GND'ye, LED'e ve dirence uzanan 10 adımlık genel bir kontrol listesi verir. Fark ettiysen bu sıra, yazının başındaki katmanlarla neredeyse aynı.
Uygulamada yardım: proje çalışmayınca nereye bakmalısın?
- Sorun Giderme: Proje sayfasında "Projeniz çalışmıyorsa aşağıdaki adımları kontrol edin." diye başlayan sıralı kontrol listesi. 170'i aşkın projede var ve Premium ile açılır; ücretsiz projelerde de bu bölüm Premium ile görünür. Neyin bozuk olduğunu hiç bilmiyorsan baştan sona geçmek için doğru yer.
- Kodu anla > Takıldıysan: O projenin koduna ve devresine özgü belirti ve çözüm çiftleri. Ücretsiz projelerde herkese açık, Premium projelerde Premium ile açılır. Belirtini tek cümleyle yazabiliyorsan önce buraya bak. Bölümün tamamı Kodu anla yazısında.
- Birlikte yapalım adımlarına dön: Rehber modunda 2. Devreyi kur adımına geri dönüp devreyi baştan, kartın USB kablosu takılı değilken kur; 3. Kodu yükle adımında Arduino IDE'nin Araçlar menüsündeki kart ve port seçimini tekrar kontrol et. Mod kaldığın adımı hatırlar. Nasıl çalıştığı ilk Arduino projesi yazısında.
- Devre şemasını büyüt: Devre Şeması görselini iki parmakla büyüt ve kablolarını bağlantı bağlantı karşılaştır; istersen Galeriye Kaydet ile kaydedip baktığın kabloları işaretle. Bu yöntem 3. katmandaki hataların çoğunu yakalar.
- Forumda doğru soru: Bunların hepsini denedin ve hâlâ çalışmıyorsa Öğren › Forum'da Soru kategorisinde konu aç. Kartı, kodun tamamını, bağlantıları, beklenen ve gerçek davranışı, hangi katmanları denediğini yaz ve devrenin net bir fotoğrafını ekle. Nasıl yazılacağı forumda soru sorma yazısında.
Belirtiye göre hızlı bakış
| Belirti | Önce bakılacak katman | İlk test | İlgili yazı |
|---|---|---|---|
| Hiçbir şey olmuyor, ON ışığı da sönük | 1. Güç | Başka bir USB kablosu ve portu dene; 5V ile GND arasında kısa devre ara | Arduino pil ile çalıştırma |
| Kod yüklenmiyor, avrdude ya da port hatası | 2. Yükleme | Araçlar menüsünde kart ve port; veri taşıyan kablo | Arduino kod yüklenmiyor |
| Derlerken kırmızı hata satırları | 5. Kod | İlk hata satırını oku, satır numarasına git | Derleme hataları |
| LED yanıyor ama çok sönük | 4. Parça değeri, 5. Kod | Direnç renkleri; setup() içinde pinMode(…, OUTPUT) var mı? | LED nedir |
| Sensör hep 0 ya da hep 1023 | 3. Bağlantı | Sensörün VCC ve GND'si, sinyal kablosunun satırı, bölücü direnç | Gerilim bölücü |
| Buton kendi kendine basılıyor gibi | 3. Bağlantı | Pull-down direnç var mı ya da INPUT_PULLUP kullanılmış mı? | Buton nasıl bağlanır |
| Servo titriyor | 1. Güç | Servoyu ayrı 5 V kaynaktan besle, GND'leri birleştir | Servo motor nedir |
| Kart rastgele resetleniyor | 1. Güç | Motor ya da röleyi çıkarıp dene; seri monitörde setup mesajı tekrar ediyor mu? | Arduino kendini resetliyor, ESP32 brownout |
| Seri monitörde anlamsız karakterler | 5. Kod | Seri monitördeki hızı Serial.begin() değeriyle eşitle | Serial Monitor kullanımı |
Öğretmenler için: 8 maddelik teşhis kartı
Diyelim ki 24 kişilik bir sınıfta 8 grup aynı anda devre kuruyor ve dersin ilk 15 dakikasında altı grup "hocam çalışmıyor" diye el kaldırıyor. Aşağıdaki kartı her grubun masasına koy ve kuralı baştan söyle: el kaldırmadan önce kartı yukarıdan aşağı geçin, hangi maddede takıldığınızı ve neyi değiştirdiğinizi kartın arkasına yazın. Bu hem senin vaktini açar hem de öğrencilere sorun çözme alışkanlığı kazandırır; teşhis notları da değerlendirme için kullanılabilecek bir süreç kanıtıdır. Kalabalık sınıfta grup düzeni için kalabalık sınıfta Arduino dersi, süreci puanlamak için değerlendirme rubriği yazılarına bakabilirsin.
- Belirti: Ne olmasını bekliyorduk, ne oluyor? Tek cümleyle yazın.
- Güç: ON ışığı yanıyor mu? USB'yi çıkarın; ısınan bir parça var mı?
- Yükleme: Yükleme hatasız bitti mi? Araçlar menüsünde kart ve port doğru mu?
- Kart: Blink yüklenince karttaki L ışığı yanıp sönüyor mu?
- Bağlantı: Şemayı büyütün, her kabloyu iki ucundan sayın. GND ortak mı, kablolar doğru pinde ve doğru satırda mı?
- Parça: LED'in uzun bacağı pine mi gidiyor? Direnç renkleri listedeki değerle aynı mı? Modülde VCC ve GND doğru mu?
- Kod: Koddaki pin numaraları devreyle aynı mı? Seri monitöre ara mesaj yazdırınca hangisi en son görünüyor?
- Sensör ve sonraki adım: Sensör değeri seri monitörde mantıklı mı, ortam değişince değişiyor mu? Hâlâ çözülmediyse Takıldıysan ve Sorun Giderme'ye bakın, sonra öğretmeni çağırın. Her seferinde tek bir şey değiştirin ve not alın.
Teşhis bir yetenektir ve her arızada biraz daha hızlanır: ilk projende 20 dakika süren arama, beşinci projende 3 dakikaya iner, çünkü hangi katmana bakacağını belirtiden tahmin etmeye başlarsın. Bir dahaki sefere proje çalışmadığında kabloları sökmeden önce bu sırayı aç ve yukarıdan aşağı ilerle. Pratik yapmak için yazıdaki gece lambası gibi küçük projeler idealdir; BlueGrays uygulamasında 60 ücretsiz projenin her birinde devre şeması, kod ve Kodu anla bölümü hazır, böylece bir sonraki arızada nereye bakacağını zaten biliyor olursun.
Sıkça sorulan sorular
Arduino projem neden çalışmıyor?
En sık nedenler sırasıyla besleme sorunları, kodun karta yüklenmemiş olması, eksik ortak GND ya da breadboard'da kaymış bir kablo, ters takılmış LED ya da yanlış değerde direnç ve koddaki yanlış pin numarasıdır. Bu sırayla, her seferinde tek bir şeyi değiştirerek kontrol edersen arızanın yerini çoğu zaman 10 dakika içinde bulursun.
Arduino'nun bozuk olup olmadığını nasıl anlarım?
Karttaki her şeyi çıkar, yalnız USB kablosuyla bağla ve Blink örneğini yükle. ON ışığı yanıyor, yükleme hatasız bitiyor ve L ışığı yanıp sönüyorsa kart büyük ihtimalle sağlamdır; sorun devrede ya da kodun geri kalanındadır. Kart hiç port vermiyorsa önce başka bir veri kablosu ve USB portu dene.
Arduino'ya kod yükleniyor ama çalışmıyor, neden olur?
Önce yüklemenin gerçekten tamamlandığını kontrol et; hata satırı varsa kart eski kodu çalıştırır. Yükleme tamamsa koddaki pin numaralarını devreyle eşleştir, setup() içinde pinMode satırlarının olduğuna bak ve setup() sonuna bir Serial.println() ekleyerek programın oraya ulaşıp ulaşmadığını seri monitörde gör.
Seri monitörde neden anlamsız karakterler çıkıyor?
Seri monitörün hızı koddaki Serial.begin() değeriyle aynı değildir. Kodda 9600 yazıyorsa seri monitörün sağ altındaki hızı da 9600 yap. ESP32'de açılış mesajları 115200 baud ile gönderildiği için 9600'de birkaç satır anlamsız görünmesi normaldir.
Multimetre olmadan Arduino devresi nasıl test edilir?
Karttaki ON ve L ışıkları beslemeyi ve kartı, seri monitöre yazdırılan analogRead değerleri sensör sinyalini gösterir. Şüpheli kabloyu ya da LED'i bilinen sağlam bir parçayla değiştirmek de süreklilik testinin yerini tutar. Direnç değerini renk halkalarından okuyup renk kodu hesaplayıcısıyla doğrulayabilirsin.
Arduino analog sensör neden hep 0 ya da 1023 gösteriyor?
Hep 0 genellikle sinyal hattının GND'ye gittiğini ya da sensörün beslenmediğini, hep 1023 sinyal hattının doğrudan 5V'a bağlı olduğunu ya da bölücü direncin eksik olduğunu gösterir. Sensörün VCC ve GND bağlantısını, sinyal kablosunun doğru satırda olduğunu ve LDR gibi parçalarda 10 kΩ direncin takılı olduğunu kontrol et.
Bu yazıdan sonra yapabileceğin projeler
Tüm projeleri gör
Ldr İle Gece Lambası
Hava karardığında kendiliğinden yanan, sabah olunca sönen küçük bir gece lambası. Işık sensörü odadaki aydınlığı ölçer; Arduino ortam yeterince karanlıksa LED'i yakar, aydınlanınca söndürür. Sokak lam

Ldr İle Işık Şiddeti Okuma
Odanın ne kadar aydınlık olduğunu sayıyla görmek ister misin? Işığa duyarlı küçük bir parça olan LDR ortam ışığını ölçer ve Arduino bu değeri yarım saniyede bir bilgisayar ekranına yazar. Elinle üstün

Led Yakma
Elektroniğin ilk merhabası: tek bir LED'i yakıp söndürmek. Arduino LED'i çok kısa aralıklarla yakıp söndürür, ışık hızlı hızlı göz kırpar. Kartın bir ışığı nasıl yönettiğini en sade haliyle görür, son

Buton İle Led Yakma (Push)
Kapı zili gibi: bastığın sürece ışık yanar, bırakınca söner. Arduino butonu sürekli dinler; butona basılıyken LED'i yakar, elini çektiğin an söndürür. Kartın dışarıdan gelen bir dokunuşu nasıl hissett

Buton İle Led Yakma (On Off)
Bir butona bir kez basınca ışık yanar, bir daha basınca söner; tıpkı odandaki lamba düğmesi gibi. Arduino her basışı fark edip LED'in durumunu tersine çevirir, düğme içindeki minik titreşimler ışığı k

HC-SR04 Mesafe Ölçme (Serial Ekran)
Yarasalar karanlıkta yollarını nasıl buluyorsa HC-SR04 sensörü de öyle çalışır: duyamadığın bir ses gönderir, yankısını dinler ve önündeki cismin ne kadar uzakta olduğunu ölçer. Arduino bu mesafeyi sa

DHT11 İle Sıcaklık Ve Nem
Odan kaç derece, hava nemli mi, kuru mu? DHT11 sensörü sıcaklığı ve nemi ölçer, Arduino da bu değerleri iki satırlık LCD ekrana yazar ve birkaç saniyede bir yeniler. Sensöre bir şey olursa ekranda hat

Raspberry Pi Pico Harici LED Yakma (Breadboard)
Pico'nun dahili LED'inden sonraki adım: breadboard'a harici LED bağlayıp GP14 pini üzerinden kontrol etmek. Bu proje ile Pico'nun herhangi bir genel amaçlı GPIO pinini output olarak nasıl kullanacağını, LED'in polaritesini (uzun bacak = anot/+, kısa bacak = katot/–) ve neden akım sınırlama direnci (220Ω) şart olduğunu öğreniyorsun. Direnci koymazsan LED'e aşırı akım gider ve yanabilir. Devre çok basit: Pico GP14 → 220Ω direnç → LED (+) → LED (–) → Pico GND. Wokwi'de simüle edebilir, gerçek bread
Diğer yazılar
BlueGrays uygulaması
Bu devreyi telefonunda adım adım kur
Devre şeması, kod ve parça listesi tek ekranda. 200'den fazla Arduino, ESP32 ve Pico projesi seni bekliyor.
Telefonunla tara
Kamerayı koda tut; telefonunun uygulama mağazası açılır.
ya da mağazada aç

