Bluetooth Kontrollü Araba – Hata Rehberi

Herkese merhaba! Bugün Arduino kullanarak yaptığınız Bluetooth kontrollü arabanızdaki tüm sorunları çözmek için buradayım. Blogdaki konu başlıkları sırasıyla şunlar olacak;

  1. Giriş
  2. Donanım Kontrolleri
    • Arduino Kartı Kontrolü
    • DC Motor Kontrolü
    • Kablo Kontrolü
    • Pil Kontrolü
    • Motor Sürücü Kontrolü
    • Bluetooth Modülü Kontrolü
  3. Yazılım Kontrolleri
  4. Örnek Şema ve Kod
  5. Öneriler ve Tavsiyeler

1. Giriş

Araba yaptınız ve hiç çalışmıyor diye bu blogu ziyaret ediyor olabilirsiniz. Merak etmeyin, bu blogu bitirdikten sonra tastamam bir şekilde her şeyi çalıştırmış olacaksınız. Yanlış duymadınız, söylenenleri dikkatli bir şekilde yaparsanız mutlaka ama mutlaka bir sonuç alıp projenizi rahatlıkla bitireceksiniz. Giriş biraz reklam gibi oldu ama sağlam bir blog olacağını düşünüyorum; azıcık pazarlayalım, değil mi? 🙃

Genellikle bu projede alttaki malzemeler kullanılmaktadır. Ben de bu malzemelere göre yorum yapacağım ve hataları alttaki malzemelere göre çözeceğiz;

  • Arduino Kartı
  • DC Motor
  • Kablo
  • Pil
  • Motor Sürücü
  • Bluetooth Modülü

2. Donanım Kontrolleri

Donanım kontrollerini yaparken dikkatli ve iyi test yaptığınızdan emin olmalısınız. Adımların herhangi birini kaçırmak demek, maalesef hatayı bulamamaktır.

  • Arduino Kartı Kontrolü

Arduino’nun kontrolü için şunları yapmamız gerekiyor;

  • Arduino ile Blink projesinin yapılması ve Arduino üzerindeki LED’in 1 saniye aralıklarla yanıp söndüğünü tespit etmelisiniz. Eğer bu adımda problem yaşıyorsanız Arduino kartınızı değiştirmelisiniz.
  • Bluetooth modülleri genelde SoftwareSerial kütüphanesini kullanırlar ve bu kütüphane belirli pinleri kullanır. Örneğin, 2 ve 3 numaralı pinler. Arduino kodunda belirtilen bu pinler ile Blink projesinin denenmesi daha da mantıklı olacaktır. Bu pinlerin çalıştığından emin olduktan sonra bir sonraki kısma geçebiliriz. Eğer bu pinlerde bir sorun var ise yine Arduino kartını değiştirmelisiniz.
  • DC Motor Kontrolü

DC motorların kontrolü çok basit, motorların gerilim isteğine göre gerilim verip dönüp dönmediklerine bakacağız. Eğer dönüyorlarsa tam tersi kutupları da değdiriyoruz ve ters dönüp dönmediğine bakıyoruz. Bu sayede motorların kontrolünü de yapmış oluyoruz.

Eğer elinizde uyumlu bir adaptör yoksa 9V’lik bir pili de direkt olarak motorlara değdirebilirsiniz fakat motorların bu pildeki gerilimi destekleyecek türde olması gerektiğini unutmayın. Örneğin 1V’lik motorlara 9V vermek, çok mantıklı değildir. Genelde 6V, 9V, 12V veya 24V’lik motorlar ile çalıştığımız için 9V gayet ara bir değerdir fakat yine ben belirteyim.

Eğer motorlar dönmüyorsa ve dönüşlerinde bir problem varsa motorları değiştirmelisiniz.

  • Kablo Kontrolü

Kabloları multimetre aracılığıyla kontrol edebilirsiniz, kısa devre konumuna alınan multimetrenin bir ucunu bir kablonun ucuna, diğer ucunu ise kablonun diğer bir ucuna değdirerek ses gelmesini bekliyoruz. Eğer ses gelmezse kablolar yanlış yerlere takılmış, kablonuz kopuk veya bozuk olabilir.

  • Pil Kontrolü

Pillerinizi kontrol etmeniz için artı ve eksi kutuplarına multimetrenin artı ve eksisine dikkat edecek şekilde değdirmeli ve satın alınan pil değeri ile multimetre ekranında çıkan pil değerinin aynı olmasına dikkat etmelisiniz. Arduino ile yapılan arabalarda eğer motor olarak ekstrem şeyler satın almazsanız genelde 9V’luk bir pil işinizi görecektir.

Ben yine daha çevreci ve ekonomik olması için şarj edilebilir bir pil almanızı veya yapmanızı öneriyorum. Yapma kısmıyla alakalı harika bir blog yazdım fakat bazı eksikliklerden dolayı paylaşamadım, en kısa sürede onu da sizlerle paylaşacağım.

En az 3S’lik bir Li-Ion veya Li-Po pil almanızı ve akım miktarını da, projenizin akım kapasitesine göre ayarlamanızı öneriyorum.

Eğer en az 9V değerinde bir pil varsa, kontrolleri yapılı ve ekranda da en az 7-8V görüyorsanız bir sonraki kısma geçebilirsiniz. 7V gerilim aşağısındaki piller, hem motorları hem de Arduino’yu besleme konusunda sıkıntılar yaşayacaktır ve eksik kalacaktır.

Eğer bu adımda bir hata aldıysanız yukarıdaki dediğim şeyleri yapmanızı ve pilinizi farklı bir model ile değiştirmenizi önereceğim. Hiç yoktan yeni ve Duracell marka bir pil almak mantıklı, değil mi?

  • Motor Sürücü Kontrolü

L298N motor sürücüsü üzerinden gidelim. Üzerinde bulunan pinler şu şekildedir;

EN Pinleri

Kaba tâbirle motorlara giden gerilimi ayarlamak için bu pinleri kullanıyoruz, bu pinler çoğu durumda mini jumper ile takılı gelmektedir. Bir ucunda ENA veya ENB, diğer ucunda ise +5V pini bulunmaktadır. Bu durumda motorlara maksimum lojik sinyal (+5V gerilim) gideceği için, motor sürücüsüne giren kaynak gerilim, çıkış kaynağının aynısı olacaktır.

Yani, aldığı gerilimi, maksimum ve direkt bir şekilde çıkışlara (motorlara) verecektir. Bu pinleri direkt olarak mini jumper ile birlikte takılı bırakalım, şu anlık PWM sinyali kullanmayalım, direkt olarak son sürat çalışsınlar.

IN Pinleri

Bu pinlere Arduino’daki dijital pinlerden gelen sinyal kablolarını bağlamalı, gönderilen sinyalin değeri kadar geldiğini ölçmeli ve teyit etmeliyiz. Genelde bir hattan (IN1 veya IN3 hattından) 5V; diğer hattan (IN2 veya IN4 hattından) ise 0V gelmelidir. Durmasını istiyorsak iki hatta da 0V gelmelidir. Bu pinlerden gelen 1 ve 0’lara göre OUT hattı aktif veya pasif edilecektir.

Bir ucu IN1 veya IN3 hattına değdirip diğer ucu ise IN2 veya IN4 hattına değdirerek ölçüm yapabilirsiniz.

OUT Pinleri

Bu pinlere, motorların kutuplarını ayrı ayrı bağlamalıyız. Tek motor için OUT1 ve OUT2’yi veya OUT3 ve OUT4 pinlerini kullanabilirsiniz. Kullandığınız pini ölçtüğünüzde gerekli gerilim gelmiyorsa, sinyal gelmiyor veya motor sürücünün entegresi bozuk olabilir.

Sinyalin gelip gelmediğini anlamak için IN1 ve IN2 portunu ölçmeli ve gerilimin 0V veya 5V olduğunu görmelisiniz. Eğer sinyal geliyor fakat OUT çıkışlarına ulaşmıyorsa giriş gerilimi karta gelmiyor, dağıtılmıyor veya kart bozuk demektir.

Bir ucu OUT1 veya OUT3 hattına değdirip diğer ucu ise OUT2 veya OUT4 hattına değdirerek ölçüm yapabilirsiniz.

Güç Pinleri

VIN ve GND pinine, güç kaynağının artısına ve eksisine, akımına ve gerilimine dikkat edecek şekilde bağlayınız. L298N üzerindeki ışıkların yandığından, eğer CON5 pini takılı ise +5V hattına +5V gerilim geldiğinden, IN1, IN2, IN3 ve IN4 pinlerine kablo bağlanmadığından ve OUT1, OUT2, OUT3 ve OUT4 pinlerine ise hiç gerilim gelmediğinden emin olunuz.

CON5 Pini

L298N motor sürücü üzerinde, OUT1 ve OUT2 çıkışlarının arka tarafına mini jumper takıldığından emin olunuz. Bu mini jumper sayesinde 5V hattına 5V gerilim gelmektedir. Bu mini jumper +5V hattını açmaya yarıyor.

Eğer mini jumper (CON5) takılı olmazsa güç girişinden girilen gerilim değeri +5V hattına düşürülmeden ulaşacaktır. Yani, girişe ne verdiyseniz +5V hattından bunu alacaksınız.

Tüm bunları kontrol ettiniz ve halen çalışmıyorsa son olarak alttaki bağlantıyı kurup ve kodu yazıp deneme yapmanız gerekiyor. Yukarıdaki kontrollere göre Arduino, motor, kablolar, pil ve motor sürücü çalıştığı için hata olmaması gerekiyor çünkü kontrollerini siz yaptınız.

Arduino UNO, L298N Motor Sürücü, Motor ve Pil için Bağlantı Şeması:

Arduino UNO, L298N Motor Sürücü, Motor ve Pil için Örnek Kod:

const int IN1 = 13; // IN1 Pini
const int IN2 = 12; // IN2 Pini
const int IN3 = 11; // IN3 Pini
const int IN4 = 10; // IN4 Pini

void setup() 
{
  pinMode(IN1, OUTPUT); 
  pinMode(IN2, OUTPUT);
  pinMode(IN3, OUTPUT);
  pinMode(IN4, OUTPUT);
}

void loop() 
{
  digitalWrite(IN1, HIGH);
  digitalWrite(IN2, LOW);
  digitalWrite(IN3, HIGH);
  digitalWrite(IN4, LOW);

  delay(1000);

  digitalWrite(IN1, LOW);
  digitalWrite(IN2, HIGH);
  digitalWrite(IN3, LOW);
  digitalWrite(IN4, HIGH);

  delay(1000);

  digitalWrite(IN1, HIGH);
  digitalWrite(IN2, LOW);
  digitalWrite(IN3, LOW);
  digitalWrite(IN4, LOW);

  delay(1000);

  digitalWrite(IN1, LOW);
  digitalWrite(IN2, LOW);
  digitalWrite(IN3, HIGH);
  digitalWrite(IN4, LOW);

  delay(1000);
}

Bu kodları denerken motorlarınızı veya arabanızı iyi bir yere bağladığınızdan ve tekerlerin hava kaldığından emin olunuz. Bir anda hareketlenen şeylerin olmasını istemezsiniz.

Şimdi ise L293D motor sürücüsünü test etmek için bağlantı şeması ve kodlarını verelim;

Arduino UNO, L293D Motor Sürücü Shield, Motor ve Pil için Bağlantı Şeması:

Şema üzerindeki kartın tam manasıyla çizimi olmadığı için bunu kullandım fakat elinizdeki kart farklı veya şundan olabilir. Korkmayın, her ikisi de benzer özelliktedir.

Kart üzerinde ‘Power (VIN) Jumper’ etiketli bir yeri görürseniz, o yere bağlı olan mini jumperi takınız ve karta harici bir pil ile güç veriniz. Bu sayede hem motorlara hem de karta gerilim gidecektir. Bahsettiğimiz mini jumper, tıpkı L298N motor sürücüsü üzerinde bulunan CON5 pini gibi bir işlev görecektir.

Bu kartın arızası genelde zor ve karmaşık olduğu için motorlarınız çalışmazsa jumper pinini, shieldin Arduino üzerine tam olarak oturduğunu, motorların ve güç kabloların konnektörlere tam olarak oturduğundan ve kodlardan emin olmalısınız. Eğer tüm bu adımlardan eminseniz ve kart hâlen çalışmıyorsa, maalesef motor sürücüsü bozuktur.

Arduino UNO, L293D Motor Sürücü Shield, Motor ve Pil için Örnek Kod:

#include <AFMotor.h> 

AF_DCMotor motor1 (1, MOTOR12_64KHZ); // Motor 1
AF_DCMotor motor2 (2, MOTOR12_64KHZ); // Motor 2

void setup() 
{
  motor1.setSpeed(255); // Motor 1 Hız Ayarı
  motor2.setSpeed(255); // Motor 2 Hız Ayarı
}

void loop()
{
  motor1.run(FORWARD);
  motor2.run(FORWARD);

  delay(1000);
    
  motor1.run(BACKWARD);
  motor2.run(BACKWARD);

  delay(1000);

  motor1.run(FORWARD);
  motor2.run(RELEASE);

  delay(1000);
  
  motor1.run(RELEASE);
  motor2.run(FORWARD);

  delay(1000);
}

Eğer bu adıma kadar başarılı bir şekilde geldiyseniz yalnızca bluetooth modüllerini test etmelisiniz. Şimdi ona geçebiliriz.

  • Bluetooth Modülü Kontrolü

Tüm bu adımları yaptıysanız ve halen sorunu çözemediyseniz sorun büyük ihtimalle yukarıdaki malzemelerde değil, farklı yerlerde olmalı. Bluetooth modülü de kontrol edileceklerden bir tanesidir, şimdi kontrole geçelim;

İlk önce bluetooth modülüne gerekli gerilimi vermelisiniz. Bazen 3.3V ile çalışırken bazen 5V ile çalışırlar. Modülün arkasında gerilim ile alakalı bir bilgi görebilirsiniz. “Level xx” tarzında bir şey göreceksiniz, oradaki rakama göre gerilim vermelisiniz.

Siz yine 3.3V verin daha sonra 5V verirsiniz. 3.3V gerilimde çalışmıyorsa 5V gerilim verelim ve ışık üzerindeki değişimi görelim. HC-06 ve HC-05 bluetooth modüllerinde genelde kırmızı bir ışık, belirli zaman aralıklarla yanıp söner. Eğer bu ışık yanmıyorsa bluetooth modülü bozuk olabilir veya gerekli gerilim gelmiyordur. Kontrolü yapıldıktan sonra yenisini alınabilir.

Işık yanıyorsa veri iletişimine bakmamız gerekiyor. Bluetooth bağlantısı için “SoftwareSerial” kütüphanesini kullanacağız. Gerekli bağlantıları ve kodları aşağıda bulabilirsiniz;

Arduino UNO ve Bluetooth Modülü için Bağlantı Şeması:

Arduino UNO ve Bluetooth Modülü için Örnek Kod:

#include <SoftwareSerial.h>

SoftwareSerial Bluetooth (3, 2); // (RX, TX) Pinleri

void setup() 
{
  Bluetooth.begin(9600);
  
  while (!Serial) 
  {
    ; 
  }

  Serial.begin(9600);
}

void loop() 
{ 
  if (Bluetooth.available() > 0) 
  {
    Serial.println(Bluetooth.read());
  }
}

Arduino UNO ve Bluetooth Modülü için Örnek Android Uygulaması:

Şuradaki uygulamayı da kurup bu üçlü arasındaki ilişkiyi görebilirsiniz. Eğer bluetooth tarafında bir sorun yaşarsanız modülünüzü değiştirmenizi önereceğim. Bazı modüller çalışsa bile veri iletişiminde maalesef ölü oluyorlar. Bunu da ancak değiştirerek çözebilirsiniz.

Uygulamayı kurup, donanım bağlantılarını yapıp, Arduino kodunu da yükledikten sonra seri haberleşme ekranını açıyor ve APK dosyası tarafından gönderdiğimiz verinin seri haberleşme ekranına gelmesini bekliyoruz. Eğer veri gelmezse tüm bağlantılarınızı kontrol etmenizi ve daha sonra ise modülünüzü değiştirmeyi önereceğim.

Tüm kontroller bu kadardı, şimdi biraz daha detaya inme zamanı! 🙃

3. Yazılım Kontrolleri

Tüm kontrolleri yaptınız ve halen sorunu bulamadınız mı? Oysa ki oldukça fazla uğraşmıştık, şimdi sizlere tüm süreçteki yazılım ve donanım ilişkisinden bahsedeceğim ve hatayı bulmanız biraz daha kolay olacak.

Yazılımdaki Biçimsel Hataların Kontrolü:

Yazdığınız yazılımda biçimsel olarak hatalar çıkabilir. Noktalı virgül, büyük/küçük harf uyumu ve eksik veya yanlış yazımlar olabilir, hele ki bir yerden kopyalıyorsanız bu hataları almanız oldukça yüksektir.

Yazılımdaki Kütüphanelerin Kontrolü:

Eğer özel bir kütüphane kullanıyorsanız biçimsel veya mantıksal hata alabilirsiniz. Bu kütüphaneler arasındaki uyumsuzluğu gösterdiği gibi, herhangi bir değişiklik yapıldığında da meydana gelebilir.

Pinlerin Kontrolü:

Donanımsal ile yazılımsal bağlantılar arasında uyumsuzluk olabilir, bunu da kesinlikle kontrol etmelisiniz. Tüm tanımlanan pinlerin hangi pine gittiğini ve doğru mu olduğunu, tanımlanmayan pinlerin ise boşta mı olduğunu kontrol etmelisiniz.

Yazılımdaki Mantıksal Hataların Kontrolü:

Mantıksal hatalar görünmez ama bir şeylerin ters gittiğini gösteren hatalardır. Bir şey eksik çalışıyorsa üstteki yerleri kontrol etmelisiniz. Eğer sorun halen çözülmemişse mantıksal hatalara yani, motor kontrollerine, pinlere, pinlerin çıkış mı yoksa giriş mi olduğuna, okunup okunmadığı gibi durumlara bakmalısınız.

Android Uygulamanın Kontrolü:

Farklı farklı android uygulamaları (APK) kullanmanızı öneriyorum. Özellikle kendi yaptığınızdan ziyade hazır ve en fazla indirilen uygulama ile çalışmalısınız. Çalıştığını gördükten sonra kendi uygulamanızı yapabilir ve üzerinde çalışabilirsiniz. Eğer daha önce defalarca yapmamış ve tecrübe sahibi değilseniz ilk baştan kendi uygulamanız üzerinden ilerlememek en mantıklısı olacaktır.

4. Örnek Şema ve Kod

Bu şemaya göre yapar ve yukarıdaki tüm adımlardan eminseniz, bağlantılarınız eksik veya yanlış olabilir. Bunu tam olarak çözmek için kendi hazırladığım bağlantıları ve kodları kullanırsanız tüm sorunların çözüleceğini düşünüyorum.

Arduino UNO, L298N Motor Sürücü, Bluetooth Modülü, Motor ve Pil için Bağlantı Şeması:

Arduino UNO, L298N Motor Sürücü, Bluetooth Modülü, Motor ve Pil için Örnek Kod:

#include <SoftwareSerial.h>
SoftwareSerial Bluetooth (3, 2); // (RX, TX) Pinleri

#define ENA 11
#define IN1 10
#define IN2 9
#define IN3 8
#define IN4 7
#define ENB 6

#define solMotorHizi 255 // Sol motorun hızını ayarlamak için kullanılan komuttur.
#define sagMotorHizi 255 // Sağ motorun hızını ayarlamak için kullanılan komuttur.

#define solaDonKomutu 1  // Android uygulamadan gelen sola dönme komutudur.
#define ileriGitKomutu 2 // Android uygulamadan gelen ileri gitme komutudur.
#define sagaDonKomutu 3  // Android uygulamadan gelen sağa dönme komutudur.
#define geriGitKomutu 4  // Android uygulamadan gelen geri gitme komutudur.

int gelenVeri = 0;

void setup() 
{
  Bluetooth.begin(9600);
  
  pinMode(ENA, OUTPUT);
  pinMode(IN1, OUTPUT);
  pinMode(IN2, OUTPUT);
  pinMode(IN3, OUTPUT);
  pinMode(IN4, OUTPUT);
  pinMode(ENB, OUTPUT);
  
  analogWrite(ENA, solMotorHizi);
  analogWrite(ENB, sagMotorHizi);
}

void loop() 
{
  if (Bluetooth.available() > 0)
  {
    gelenVeri = Bluetooth.parseInt();
  }

  else if (gelenVeri == ileriGitKomutu) // İleri gidecek.
  {
    digitalWrite(IN1, HIGH);
    digitalWrite(IN2, LOW);
    digitalWrite(IN3, HIGH);
    digitalWrite(IN4, LOW);
  }
  
  else if (gelenVeri == geriGitKomutu) // Geri gidecek.
  {
    digitalWrite(IN1, LOW);
    digitalWrite(IN2, HIGH);
    digitalWrite(IN3, LOW);
    digitalWrite(IN4, HIGH);
  }
  
  else if (gelenVeri == solaDonKomutu) // Sola dönecek.
  {
    digitalWrite(IN1, LOW);
    digitalWrite(IN2, LOW);
    digitalWrite(IN3, HIGH);
    digitalWrite(IN4, LOW);
  }
  
  else if (gelenVeri == sagaDonKomutu) // Sağa dönecek.
  {
    digitalWrite(IN1, HIGH);
    digitalWrite(IN2, LOW);
    digitalWrite(IN3, LOW);
    digitalWrite(IN4, LOW);
  }
  
  else // Duracak.
  {
    digitalWrite(IN1, LOW);
    digitalWrite(IN2, LOW);
    digitalWrite(IN3, LOW);
    digitalWrite(IN4, LOW);
  } 
  
}

Arduino UNO, L293D Motor Shield, Bluetooth Modülü, Motor ve Pil için Bağlantı Şeması:

Şemada hoş durması sebebiyle 9 ve 10 numaralı pinleri bluetooth için kullandım. Eğer servo motor takacaksanız bluetooth maalesef çalışmayacaktır. Bu kart üzerinde yalnızca 2 ve 13 numaralı pinler boştadır. Servo motoru şu an kullanmayacağım için 9 ve 10 numaralı pine bluetooth modülünü bağladım.

Arduino UNO, L293D Motor Shield, Bluetooth Modülü, Motor ve Pil için Örnek Kod:

#include <AFMotor.h>
#include <SoftwareSerial.h>
SoftwareSerial Bluetooth (10, 9); // (RX, TX) Pinleri

AF_DCMotor motor1 (1, MOTOR12_64KHZ); // 1.Motor
AF_DCMotor motor2 (2, MOTOR12_64KHZ); // 2.Motor

#define solMotorHizi 255 // Sol motorun hızını ayarlamak için kullanılan komuttur.
#define sagMotorHizi 255 // Sağ motorun hızını ayarlamak için kullanılan komuttur.

#define solaDonKomutu 1  // Android uygulamadan gelen sola dönme komutudur.
#define ileriGitKomutu 2 // Android uygulamadan gelen ileri gitme komutudur.
#define sagaDonKomutu 3  // Android uygulamadan gelen sağa dönme komutudur.
#define geriGitKomutu 4  // Android uygulamadan gelen geri gitme komutudur.

int gelenVeri = 0;

void setup() 
{
   Bluetooth.begin(9600); 
   
   motor1.setSpeed(solMotorHizi); 
   motor2.setSpeed(sagMotorHizi); 
}
void loop() 
{
  if (Bluetooth.available() > 0)
  {
    gelenVeri = Bluetooth.parseInt();    
  }
  
  else if (gelenVeri == ileriGitKomutu) // İleri gidecek.
  {
    motor1.run(FORWARD);
    motor2.run(FORWARD);
  }
  
  else if (gelenVeri == geriGitKomutu) // Geri gidecek.
  {
    motor1.run(BACKWARD);
    motor2.run(BACKWARD);
  }
  
  else if (gelenVeri == sagaDonKomutu) // Sağa dönecek.
  {
    motor1.run(FORWARD);
    motor2.run(RELEASE);    
  }
  
  else if (gelenVeri == solaDonKomutu) // Sola dönecek.
  {
    motor1.run(RELEASE);
    motor2.run(FORWARD);
  }
  
  else // Duracak.
  {
    motor1.run(RELEASE);
    motor2.run(RELEASE);
  }
}

Bluetooth Kontrollü Araba için Örnek Android Uygulaması:

Yine şu uygulamayı kullanmanızı önereceğim, modüle bağlandıktan sonra tuş atamalarını yapmayı unutmayınız. Eğer farklı tuş ataması yapacaksanız Arduino kodlarındaki “solaDonKomutu” gibi olan ifadelerin karşısında yer alan değerleri de güncellemeniz gerekiyor.

Android ve Arduino tarafındaki tuş atamaları yapmayı sakın unutmayın, yoksa eksik bağlantı sağlarsınız.

Tüm bunları yaptıktan sonra sorunsuz çalışan bir projeniz olmalı, eğer böyle bir şey olmadıysa lütfen blogu baştan ve bir kaç bilen kişiyle okumanızı önereceğim. Birlikten kuvvet doğar! Şimdi ise naçizane tavsiyeler vererek blogu bitirmek istiyorum. Yine maalesef uzun soluklu bir yazı oldu. 🙃

5. Öneriler ve Tavsiyeler

Bu önerilerim ve tavsiyelerim kişisel olup edindiğim tüm tecrübelerimden derlenmiş ve suyu sıkılmış bir özettir. Uygulamanız ve önermeniz mantıklı olacağın gibi, hataları da beraberinde def edecektir.

Doğru ve güvenilir kaynak:

En önemlisi bu arkadaşlar. Farklı farklı kaynaklara bakarak bulamaç bir şey çıkarmak yerine, sonucunda ortaya bir şeyler çıkaran insanların çoğunluk olduğu bir yerden kaynak bakmak mantıklı olacaktır. Daha da önemlisi şu:

Neredeyse tüm kaynakları okuyup projeye doğru ve güvenilir bir bilgi ile girişmek olacaktır. Tek bir kaynağın güvenilirliği konusunda endişe ederken, tüm kaynakların analizini yapmak ve çıkan bilgiye göre bir şeylere kalkışmak sizce de mantıklı, değil mi?

Sürekli kontrol edilen, emin olunan ve doğrulanmış bağlantılar:

Bu da çok önemlidir. Hangi pini, kabloyu, konnektörü nereye taktığınızdan; konnektörün kablo sıralamalarını, pin dizilişlerini bildiğinizden ve doğru çalıştığından emin olmalısınız. Atlayacağınız en ufak bir detay, projenizi yıpratabilir. Emin olun, doğrulayın ve sürekli kontrol edin!

Doğru donanım kullanımı:

Dandik ürünler kullanıp bir şeyler yapmaya çalışan insanlar, maalesef bu tarz hata rehberleriyle karşı karşıya kalabilirler. Bu tarz hata rehberleri de dandik ürünler kullanan insanların yaşadığı sorunları çözmeleri için oluşturulur. Biz böyle şeyleri yazmayalım, siz de kaliteli (maalesef pahalı) şeyler kullanın, mantıklı olmaz mı? 🙃

Komponentlerin kontrolü:

Çalıştığınız tüm komponentleri ayrı ayrı ve emin olduğunuz bir şekilde kontrol edin. Yukarıda bununla alakalı harika bilgiler verdim. Bu bilgileri kullanarak yapacağınız gibi, datasheet denilen teknik kitapçıklara da bakabilirsiniz. Tüm işlevleri vs. öğrendikten sonra hata çıksa ne olacak ki? Zaten biliyorsunuz, yenisini alır ve nokta koyarsınız.

Yazılımdaki mantıksal ve biçimsel kontroller:

Biçimsel hatayı çözersiniz de; mantıksal hatayı çözmek biraz zor… Motorun ters dönmesinden bahsetmiyorum bile; arabanızın pervâsız bir şekilde dönmesinden ve arada bir kafayı yiyip bağlantıyı koparmasından bahsediyorum.

Bunlar gibi farklı hataları da yaşayabilirsiniz, bunları çözmenin de başlıca yolları var. Tüm kodların ne işe yaradığını analiz etmek ve herhangi bir kod satırı eklerken diğer kod satırlarına etkisini bilmek. Bunu da yapmak için maalesef bilmek ve araştırmak lazım.

Bilmeden, emin olmadan, araştırmadan ve soruşturmadan doğru bilgiyi elde etmek; blogun özeti bu olsak gerek. 🙃

Paylaşmayı ve merak ettiğiniz yerleri sormayı unutmayın. Bir sonraki blogda görüşmek üzere! 🙃

Comments

Leave a Comment

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>