Arduino eeprom kullanımı – Arduino kalıcı hafıza – Arduino Kursu -Ders 28-

Arduino içerisinde eeprom kullanarak arduinonun enerjisi kesilse dahi silinmeyen veriler saklayabiliriz. Bir işlem sırasında enerjisi kesilirse enerji geldiği zaman kaldığı yerden işleme devam edebilmesi için kalıcı hafızayı yani eepromu kullanırız.
Akıllı ev otomasyon sistemlerinden tutunda fabrikalardaki sayıcılara kadar bir çok projede bazı bilgiler saklanmak ister. Olası enerji kesintilerinde bazı bilgilerin yada bazı işlemlerin enerji geldiği zaman kaldığı yerden devam etmesi beklenir. Arduino ile bu tarz bir sistem kurduğunuzda bilgilerinizi saklayabileceğiniz yer tamda epromdur. Arduinonun kalıcı hafızasında sizin istediğiniz bilgiler saklanır ve ihtiyaç anında tekrar o bilgileri geri çağırabilir ve kullanabilirsiniz.

Çok basit bir mağaza sisteminde müşteri giriş çıkışlarını ve bu sayıları tuttuğunuzu varsayalım. Böyle bir durumda enerjinin hiç kesilmemesi gerekir enerji kesilirse sayaç sıfırlanır. İşte bu tarz bir olumsuzlukta eprom imdadımıza yetişiyor. Yada bir kuluçka makinası düşünelim belli nem ve ısı miktarlarına göre işlemler yapılması gerekir enerji gidip geldiğinde kaldığımız yerden ve bizim ayarladığımız kişisel ayarlardan devamı için yine epromu kullanırız.
Eeprom’un genel ve kullanım mantığını örnekle anlatmaya çalıştım, videoyu izleyerek detayları hakkında bilgi sahibi olabilirsiniz.

Videoyu İzlemek İçin Tıklayınız

//Görsel İşitsel Teknoloji Kanalı
//wwww.teknikerler.com
//Kerim Arı Youtube kanalı eeprom- kalıcı hafıza - kullanımı örnek Kodları

#include <EEPROM.h>

int kayit_adresi, kaydedilecek_veri;
int okunacak_adres, okunan_veri;

#define k_led 2
#define s_led 3
#define y_led 4
#define buton 8

int sayac;

void setup() {

 Serial.begin(9600);
 pinMode(k_led, OUTPUT);
  pinMode(s_led, OUTPUT);
  pinMode(y_led, OUTPUT);
  pinMode(buton, INPUT);


}

void loop() {

   sayac= okunan_veri;
   int btn_durum = digitalRead(buton);

   if (btn_durum==1)
   {
    sayac++;
    delay(200);
    if(sayac>4)
    {
      sayac=0;
      }
   kayit_adresi = 10;
   kaydedilecek_veri = sayac;
    EEPROM.write(kayit_adresi,kaydedilecek_veri);
    delay(10);
    }
   
   
   
   
   okunacak_adres = 10;
   okunan_veri = EEPROM.read(okunacak_adres);
   delay(10);
   sayac= okunan_veri;
   Serial.print("okunan_veri :");
   Serial.println(okunan_veri);
   Serial.print("sayac degeri :");
   Serial.println(sayac);
   delay(200);

   if(okunan_veri==1)
   {
    digitalWrite(k_led,HIGH);
    digitalWrite(y_led, LOW);
    digitalWrite(s_led, LOW);
    
    }
   
 else if(okunan_veri==2)
{
  digitalWrite(s_led,HIGH);
  digitalWrite(y_led, LOW);
  digitalWrite(k_led, LOW);
  
}
 else if(okunan_veri==3)
{
  digitalWrite(y_led,HIGH);
  digitalWrite(s_led, LOW);
  digitalWrite(k_led, LOW);
  
}
 
else 

{
  digitalWrite(y_led, LOW);
  digitalWrite(k_led, LOW);
  digitalWrite(s_led, LOW);
  }

}