Rehberler · 12 dk okuma

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.

Arduino devrelerinde kullanılan beyaz breadboard, güç rayları ve orta oluk
Çalışmayan projelerin büyük kısmında sorun koddan önce breadboard'dadır: bir satır kayması, ortadaki oluğun yanlış tarafı ya da ikiye bölünmüş bir güç rayı.

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.

KatmanBelirti1 dakikalık testOlası neden
1. GüçHiçbir şey olmuyor, karttaki ışıklar sönük ya da kart ısınıyorKarttaki 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üklemeKod değişti ama kart eski davranışı sürdürüyorIDE'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ğeriLED yanmıyor ya da çok sönük, buton hep basılı görünüyorLED'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. KodKart çalışıyor ama davranış yanlışKoddaki pin numaralarını devreyle tek tek eşleştir; seri monitöre ara mesaj yazdırYanlış pin numarası, eksik pinMode, = ile == karışması, uygun olmayan eşik ya da bekleme süresi
6. Sensör ve çevreDeğerler hep aynı, saçma ya da zıplıyorSensö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.

Kablo değiştirirken kartın USB kablosunu çıkar. 5V ya da 3,3V pinini doğrudan GND'ye bağlama; kart ısınır, bilgisayar USB portunu kapatabilir. Bir parça ısınıyorsa, yanık kokusu geliyorsa ya da güç ışığı titriyorsa teşhise devam etmeden önce beslemeyi kes.

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.

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.

C++ (Arduino IDE)
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üğünAnlamıBakılacak katman
Seri monitör boş, L ışığı da yanıp sönmüyorKod çalışmıyor ya da karta hiç gitmedi1. Güç, 2. Yükleme
Anlamsız karakterler akıyorSeri monitörün hızı Serial.begin(9600) ile aynı değil5. Kod (baud ayarı)
"1) setup bitti" arada bir tekrar ediyorKart kendini resetliyor, genellikle besleme yetmiyor1. Güç
2 ve 3 sırayla geliyor, L yanıp sönüyor ama harici LED yanmıyorKod ve kart sağlam; harici LED'in yolu bozuk3. 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ç eksik3. Bağlantı, 4. Parça değeri
A0 bağlı değilken rastgele zıplıyorPin 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çümMultimetre ayarı ve uçlarBeklenenMultimetre yoksa
Besleme gerilimiDC 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 VON ışığı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ğdirBip 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 dokun220 Ω için yaklaşık 209–231 Ω (yüzde 5 tolerans)Renk halkalarını oku ve renk kodu hesaplayıcısıyla doğrula
Sinyal gerilimiDC 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ğerSeri 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.

Işığa göre direnci değişen LDR (fotodirenç) komponenti
LDR'nin direnci ışık arttıkça düşer. Gece lambası projesinde 10 kΩ dirençle gerilim bölücü kurar; ikisinin yeri değişirse LED aydınlıkta yanıp karanlıkta söner.
  1. Güç: ON ışığı yanıyor, ısınan parça yok. Geç.
  2. 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ı.
  3. 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?
  4. 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.
  5. 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.
  6. 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.
  7. 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ük1. GüçBaşka bir USB kablosu ve portu dene; 5V ile GND arasında kısa devre araArduino pil ile çalıştırma
Kod yüklenmiyor, avrdude ya da port hatası2. YüklemeAraçlar menüsünde kart ve port; veri taşıyan kabloArduino kod yüklenmiyor
Derlerken kırmızı hata satırları5. Kodİlk hata satırını oku, satır numarasına gitDerleme hataları
LED yanıyor ama çok sönük4. Parça değeri, 5. KodDirenç renkleri; setup() içinde pinMode(…, OUTPUT) var mı?LED nedir
Sensör hep 0 ya da hep 10233. 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 gibi3. BağlantıPull-down direnç var mı ya da INPUT_PULLUP kullanılmış mı?Buton nasıl bağlanır
Servo titriyor1. GüçServoyu ayrı 5 V kaynaktan besle, GND'leri birleştirServo motor nedir
Kart rastgele resetleniyor1. 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 karakterler5. KodSeri monitördeki hızı Serial.begin() değeriyle eşitleSerial 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.

  1. Belirti: Ne olmasını bekliyorduk, ne oluyor? Tek cümleyle yazın.
  2. Güç: ON ışığı yanıyor mu? USB'yi çıkarın; ısınan bir parça var mı?
  3. Yükleme: Yükleme hatasız bitti mi? Araçlar menüsünde kart ve port doğru mu?
  4. Kart: Blink yüklenince karttaki L ışığı yanıp sönüyor mu?
  5. 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ı?
  6. Parça: LED'in uzun bacağı pine mi gidiyor? Direnç renkleri listedeki değerle aynı mı? Modülde VCC ve GND doğru mu?
  7. Kod: Koddaki pin numaraları devreyle aynı mı? Seri monitöre ara mesaj yazdırınca hangisi en son görünüyor?
  8. 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.

Tüm projeleri gör
Ldr İle Gece Lambası
#12Başlangıç

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

4.8(102)
205
Ldr İle Işık Şiddeti Okuma
#11Başlangıç

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

4.6(81)
139
Led Yakma
#1Başlangıç

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

4.6(188)
1127
Buton İle Led Yakma (Push)
#9Başlangıç

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

4.8(113)
229
Buton İle Led Yakma (On Off)
#10Başlangıç

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

4.8(100)
167
HC-SR04 Mesafe Ölçme (Serial Ekran)
#27Başlangıç

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

4.6(46)
71
DHT11 İle Sıcaklık Ve Nem
#55Orta

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

4.7(47)
73
Raspberry Pi Pico Harici LED Yakma (Breadboard)
#148Başlangıç

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

4.5(2)
7