Ana içeriğe atla

Seri Port Üzerinden Arduino Kontrolü


Seri port ekranından bir değer girerek bilgisayarımızdan arduinomuzu kontrol edebiliriz. Bunun nasıl olduğunu anlayabilmek için bir örnek tasarlayalım. Programda sıfırdan sonsuza kadar birer birer sayma işlemi yapalım. Sayma işlemini seri port ekranında göstereceğiz. Sonra seri port ekranında istenilen bir değer girildiğinde o andaki değeri eeprom hafızasına kaydedilmesini sağlayacağız. Daha sonra enerji kesilip arduino tekrar başlatıldığında eeproma kaydettiğimiz değerden saymaya devam etmesini sağlayacağız. Hatta kaydettiğimiz sayının hangisi olduğunu yine seri port ekranında gösterelim.
Şimdi bu özelliği kullanabilmek için seri port kesmesini bilmemiz gerekir. Seri porttan bir değer girdiğimizde ana programdan çıkıp kesme fonksiyonuna geçiş yaparız. Bu fonksiyonda yazdığımız komutlar bittikten sonra ana döngüye geri döneriz. Bunun için “void serailEvent()” komutunu kullanırız. Örneğimizin kodlarını yanlarına açıklama satırları ile aşağıya aktarıyorum.

#include <EEPROM.h>         // EEPROM kütüphanesi eklenir

int adrs = 10;                        // EEPROM da kullanacağımız adresin değeri
int i = 0;                                   // sayma yapacağımız değişken
char kyt = 'kaydet';            // seri porttan girmek istediğimiz değer
char data;                           // seri porttan girdiğimiz değerin tutulduğu değişken

void setup() {                   
  
Serial.begin(9600);        // seril port ile haberleşmenin başlatılması
  i = EEPROM.read(adrs);      // EEPROM da kaydettiğimiz değeri i değişkenine atıyoruz

}

void loop() {                               
Serial.println(i);                         // değişkenimizi seri port ekranında gösteriyoruz

  i=  i+1;                                    // i değişkeni bir artırıyoruz
  delay(300);                               // 300 ms bekletiyoruz

}

void serialEvent()   //Seri port üzeriden veri geldiğinde serialEvent fonksiyonuna geçiş yaparız

{

  while (Serial.available())       // veri alındığı sürece döngü devam eder

  {

   data = char(Serial.read());      // seri port ekranından giriş yaptığımız değer data değişkenine atanır
   if (data == kyt) {       // daha önceden değerini belirlediğimiz “kyt” değişkeni ile data karşılaştırılır
   EEPROM.write(adrs, i);     // eğer if değeri doğru ise gönder dediğimiz andaki i değeri kaydedilir
   Serial.print("kaydedilen i değeri   "); // kaydettiğimiz i değeri ekrana yazdırılır
   Serial.println(i);                                 // kaydettiğimiz i değeri ekrana yazdırılır
    }


  }

}
       



Yorumlar

Bu blogdaki popüler yayınlar

Meşe Bilişim Software Testing Dersi

Manisa Celal Bayar Üniversitesi Bilgisayar Mühendisliği Bölümü ile bazı özel ve kamu kurumları ortaklığında gerçekleştirilen Software Testing Dersi dahilinde bugün Meşe Bilişim şirketinde şirket kurucusu Şahin Mersin ile ilk dersimizi gerçekleştirdik.

Üniversitenin Bilgisayar Mühendisliği bölümünde okuyan 3 veya 4'üncü sınıf öğrencileri tarafından tercih edilebilen Software Testing dersi intörn eğitim modelini temelinde barındıran bir ders ve bence öğrenciler için müthiş bir fırsat.

Manisa Teknokent içerisinde yer alan Meşe Bilişim şirketinde bir dönem süresince Software Testing dersini almaya devam edeceğiz. Şirket benimle birlikte 10 kişilik bir öğrenci kadrosuna bu dönem ev sahipliği yapacak.

Dersin ilk gününde Meşe Bilişim şirket kurucusu Şahin Mersin, biz öğrencilerine dönem süresince ders dahilinde yapacaklarımızdan bahsetti. Yaklaşık 5 farklı projeden söz eden Şahin Bey'in açık kaynaklı projelere katkıda bulunmak hedefi açıkcası beni etkiledi. Bu doğrultuda, ürettiğimiz…

Mqtt Nedir?

Message Queuing Telemetry Transport (MQTT) kelimelerinin baş harfleri ile tanıdığımız bu teknoloji mesajın karşı tarafa ulaştırılması için kullanılan haberleşme protokolüdür.  Haberleşme için mesaj yayınlayan, mesaja abone olan ve mesaj trafiğini kontrol eden yöneticiden oluşmaktadır. Mesaj trafiğini kontrol eden yöneticiye BROKER, mesaj yayınına PUBLISH ve aboneye SUBSCRIBE denir. Mesaj alışverişi publisher dan subscriber lara doğru yani yayıncılardan abonelere doğru olmaktadır. MQTT de asenkron haberleşme protokolü kullanılmaktadır. Mesaj yayıncıları ve mesaj alıcılar arasında eşzamansız olarak veri taşınmaktadır. Diğer haberleşme yapılarına göre basit oluşu ve minimum kaynak tüketmesi sebebiyle “machine-to-machine” (M2M)  makineden makineye veri iletiminde ve (IOT) “Internet of Things” İnternete bağlı nesnelerin mesajlaşmasında tercih edilmektedir.   MQTT IBM de çalışan Dr Andy Stanford-Clark ve Arcom da çalışan Arlen Nipper (şu an Eurotech) tarafından 1999 yılında oluşturulmuştur…

Meşe Bilişim Logolar