Arduino içerisinde hiç şüphesiz Serial monitör kullanımı kaçınılmaz bir yoldur. Seri Ekran sayesinde yazmış olduğumuz kodları denetleriz. Seri haberleşmeyi başlatarak arduinomuzun içerisinde dönen kodları nerede ve ne şekilde çalıştığını gözlemleyebiliriz. Seri ekranı kullanarak bug denilen hataları debug ederek yok ederiz.
C++ dilinde yazmış olduğumuz kodlar doğru yazılmış olsa dahi algoritmanın çalışmasına aykırı olabilir. Algoritma kod doğru olduğu için size hata vermez ve kodları çalıştırmaya başlar. Lakin kodların çalışmasına rağmen sizin arduinoya yapmasını söylediğiniz şeyler gerçekleşmeyebilir. Arduino buna tepki veremeyebilir yada verdiği tepkiyi biz gözlemleyemeyebiliriz. İşte böyle durumlarda imdadımıza seri haberleşme yetişmekte. Arduino içerisinde hangi satırda ne olduğu, ne yapıldığı gibi bilgileri seri ekrana yazdırabiliyoruz. Bu sayede o an olması gerekeni takip edebiliyoruz.
Örneğin bir buton ve bir ledimiz olsun. Butona basınca ledin yanmasını sağlayacak olalım. Bağlantılarımızı yaptık, kodlarımızı yazdık ve arduinoya yükledik. Şimdi sıra geldi çalıştırmaya, butona bastık led yandı ise sorun yok peki ya led yanmadı ise, işte şimdi sorunlar başladı; acaba buton mu arızalı? acaba butonu yanlış mı bağladık? acaba kodlarda bir hatamı yaptık, acaba butona basdık ama led mi arızalı, ledi mi yanlış bağladık?……çok basit bir devre de bile gördüğünüz gibi bir çok sorun ve problemle karşılaşmak mümkün. İşte bun tarz sorunları ve soruları ortadan kaldırmak ve işi hızlandırmak için seri haberleşmeyi kullanabiliriz. Bu sayede butona basılıp basılmadığı basılmışsa ledin bağlı olduğu pinin sürüldüğü yada sürülmediği gibi detayları hemen seri ekrandan okuyabilir sorunun nereden ve ne şekilde eksik olduğunu anında çözebiliriz.
Arduino da seri haberleşmeyi başlatabilmek için SERİAL.BEGİN komutu kullanırız ve sonucuda SERİAL.PRİNT ile yazıdrabiliriz.
Videoyu İzlemek İçin TıklayınızVideo içerisinde kullandığımız bağlantı Şeması ve Kodlar
//Görsel İşitsel Teknoloji Kanalı
//wwww.teknikerler.com
//Kerim Arı Youtube kanalı Seri Haberleşme kullanımı örnek Kodları
int buton1 = 2;
int sayac = 0;
int buton2 = 3;
int led = 6;
void setup()
{
pinMode(buton1, INPUT);
pinMode(buton2, INPUT);
pinMode(led, OUTPUT);
Serial.begin(9600);//seri ekranımızı başlattık
}
void loop()
{
int bt1_durum = digitalRead(buton1);
int bt2_durum = digitalRead(buton2);
if (bt1_durum == 1)
{
sayac++;
delay(150);
Serial.println("buton 1 ebasildi");
}
if (bt2_durum == 1)
{
sayac--;
delay(150);
Serial.println("buton 2 ye basildi");
}
else if (sayac == 5)
{
Serial.print("sayac degeri: ");
Serial.println(sayac);
digitalWrite(led, 1);
}
else if (sayac == 8)
{
Serial.print("sayac degeri: ");
Serial.println(sayac);
digitalWrite(led, 1);
delay(500);
digitalWrite(led, 0);
delay(500);
}
else
{
digitalWrite(led, 0);
Serial.println(sayac);
}
}