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
Serial.print("kaydedilen i değeri "); // kaydettiğimiz i değeri ekrana yazdırılır
Serial.println(i);
}
}
}