Ana içeriğe atla

Arduino EEPROM Kullanma

Arduino içerisinde kalıcı ve geçici hafıza bölümleri vardır. Yazdığımız kodlar kalıcı bölümlerde kaydedilirken programın çalışması esnasında oluşan değişkenler geçici hafızalarda kaydedilir. Arduinodan enerji kesildiği zaman geçici hafızada olan veriler silinir. Eğer program esnasında elde ettiğimiz değerleri kaydetmek istersek başka bir hafızaya ihtiyaç duyarız. Arduinoda elde ettiğimiz verileri saklayabildiğimiz EEPROM (Electronically Erasable Programmable Read Only Memory) bellekler mevcuttur. Bu belleklerin boyutları mikrodenetleyici modellerine göre değişkenlik gösterebilir. Örnek olarak atmega328 de 1kb, atmega168 de 512 mb, atmega2560 da 4kb eeprom hafıza yer alır.
EEPROM hafızaları kullanmak için 2 komut mevcuttur. EEPROM.write(adres,degisken) komutu ile istediğimiz adrese değişkenimizin değerini atarız. EEPROM.read(degisken) komutu ile daha önce kayıtlı bir değişkenin değerini okumuş oluruz. Şimdi bu konuyla alakalı bir örnek tasarlayalım. Birden sonsuza kadar sayma işlemi yapalım ve seri port ekranında gösterelim. Her sayma işleminden sonra değişkenimiz kaydedilsin. Böylece eğer kartımızdan enerji kesilirse veya reset atılırsa sayımız kaldığı yerden saymaya devam edecektir. Şimdi bu örneğin kodunu yazalım.


[code]
#include <EEPROM.h>
int adrs = 10;              // istenilen değerin kaydedileceği adres birimi
int i = 0;                      // sayma yapacağımız değişken
void setup() {
  Serial.begin(9600);
  i = EEPROM.read(adrs);           // EEPROM kaydedilmiş değer i değişkenine atanır
  i=i+1;
  }
void loop() {
  EEPROM.write(adrs,i);           // son i değeri EEPROM kaydedilir
  Serial.println(i);                      // i değişkeni seri port ekranında yazdırılır
  i=i+1;                                       // sayımız bir arttılr
  delay(300);                             // 300 ms bekleme
}
[/code]

Kodumuzu atıp çalıştırdıktan sonra arduinomuza reset atalım yada doğrudan enerjisini keselim. Sayma işlemine devam ettiğini göreceksiniz.



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