#include <EEPROM.h>
int eeprom_boyut;
void setup()
{
Serial.begin(9600);
eeprom_boyut = EEPROM.length();
Serial.print("EEPROM Boyutu= ");
Serial.println(eeprom_boyut);
}
void loop()
{
}
2. EEPROM Yazma, Okuma, Silme
#include <EEPROM.h>
int eeprom_oku;
int eeprom_oku_1;
int eeprom_oku_2;
void setup()
{
Serial.begin(9600);
//EEPROM yazma-okuma
EEPROM.write(12, 45); //12. adrese 45 sayısını yaz.
delay(10);
eeprom_oku = EEPROM.read(12); //12. adresteki veriyi oku
Serial.print("12'nci adresteki veri= ");
Serial.println(eeprom_oku);
//EEPROM yazma-okuma
EEPROM.write(25, 75); //25. adrese 75 sayısını yaz.
delay(10);
eeprom_oku = EEPROM.read(25); //25. adresteki veriyi oku
Serial.print("25'nci adresteki veri= ");
Serial.println(eeprom_oku);
//EEPROM silme-okuma
EEPROM.write(12, NULL); //12. adresteki veriyi sil
delay(10);
EEPROM.write(25, NULL); //25. adresteki veriyi sil
delay(10);
eeprom_oku_1 = EEPROM.read(12);
eeprom_oku_2 = EEPROM.read(25);
Serial.print("eeprom_oku_1= "); Serial.println(eeprom_oku_1);
Serial.print("eeprom_oku_2= "); Serial.println(eeprom_oku_2);
}
void loop() {
// put your main code here, to run repeatedly:
}3. EPPROM Update
#include <EEPROM.h>
int oku;
void setup()
{
Serial.begin(9600);
}
void loop()
{
EEPROM.update(32, 128); //32. adresi okur, orada 128 değeri varsa yazmaz, yoksa oraya 128 değerini yazar.
delay(10);
oku = EEPROM.read(32);
Serial.print("32. adresteki veri= ");
Serial.println(oku);
while (1); //bu satırsa sonsuz döngü oluşur ve program burada kalır.
}
4. EEPROM'a Doğrudan Yazma ve Okuma
#include <EEPROM.h>
int eeprom_dogrudan_oku;
void setup()
{
Serial.begin(9600);
}
void loop()
{
EEPROM[71] = 154; //71. adrese 154 sayısını yaz.
delay(10);
eeprom_dogrudan_oku = EEPROM[71]; //71. adreteki veriyi oku ve değişkene ata.
Serial.print("71. adresteki veri= ");
Serial.println(eeprom_dogrudan_oku);
EEPROM[71] = 179; //71. adrese 179 sayısını yaz.
delay(10);
eeprom_dogrudan_oku = EEPROM[71]; //71. adreteki veriyi oku ve değişkene ata.
Serial.print("71. adresteki veri= ");
Serial.println(eeprom_dogrudan_oku);
while(1); //bu satırsa sonsuz döngü oluşur ve program burada kalır.
}
5. EEPROM.get() ve EEPROM.put() Komutları Kullanımı
//AÇIKLAMA
//Bu uygulamada "float(4 byte)" ve "dizi" veri tipindeki değerlerin
//eeprom a yazma, okuma işlemleri yapılacaktır.
#include <EEPROM.h>
float sayi, sayi_oku;
char dizi[7] = {'m', 'e', 'h', 'm', 'e', 't'};
char dizi_oku[7];
int adres_sayi, adres_dizi;
void setup()
{
Serial.begin(9600);
}
void loop()
{
sayi = 24.75;
adres_sayi = 72;
adres_dizi = 114;
//virgüllü sayı yazma-sayi_okuma-seri port ekranına yazdırma
EEPROM.put(adres_sayi, sayi); //belirlenen adresten itibaren sayıyı eeproma yaz.
delay(10);
EEPROM.get(adres_sayi, sayi_oku); //belirlenen adresten itibaren veriyi okumaya başla ve sayi_oku değişkenine ata.
Serial.print("sayi_oku değeri= ");
Serial.println(sayi_oku);
//virgüllü sayı yazma-sayi_okuma-seri port ekranına yazdırma
EEPROM.put(adres_dizi, dizi); //belirlenen adresten itibaren diziyi eeproma yaz.
delay(10);
EEPROM.get(adres_dizi, dizi_oku); //belirlenen adresten itibaren veriyi okumaya başla ve dizi_oku değişkenine ata.
Serial.print("dizi_oku değeri= ");
Serial.println(dizi_oku);
while (1);
}
6. EEPROM'a Büyük Sayı Yazma ve Okuma
//AÇIKLAMA
//2 baytlık sayıları eeproma yazma ve tekrar okuma işlemi yapılacaktır.
//Arduino eeprom hücreleri 1 bayttır. Bu nedenle 2 baytlık sayı iki ayrı
//hücreye 1 bayt 1 bayt olarak yazılacaktır. Sonra okuma işleminde sayı
//2 ayrı hücreden 1 bayt 1 bayt okunacak ve birleştirilecektir.
#include <EEPROM.h>
int sayi, okunan_sayi; //int 2 baytlıktır.
int oku, dusukbyte, yuksekbyte, dusuk_oku, yuksek_oku;
void setup()
{
Serial.begin(9600);
}
void loop()
{
//sayıyı düşük ve yüksek baytlara ayırma ve seri porta yazdırma
sayi = 32760;
dusukbyte = lowByte(sayi); //sayının ilk 8 biti alındı
yuksekbyte = highByte(sayi); //sayının son 8 biti alındı
Serial.print("Yüksek Bayt(MSB) ");
Serial.println("Düşük Bayt(LSB)");
Serial.print(yuksekbyte, BIN);
Serial.print(" ");
Serial.println(dusukbyte, BIN);
//düşük ve yüksek baytları eeprom a yazdırma
EEPROM.write(10, dusukbyte); //10. adrese düşük bayt yazdırıldı
delay(10);
EEPROM.write(11, yuksekbyte); //11. adrese yüksek bayt yazdırıldı
delay(10);
//düşük ve yüksek baytları eeprom dan okuyup birleştirerek sayıyı elde etme ve ekrana yazdırma:
//eepromdan sayılar okunduğunda int değişkenine atanınca şöyle olur:
//dusuk_oku=00000000 11111000, yuksek_oku=00000000 01111111 olur.
//bu nedenle yuksek_oku değişkenindeki sayı yüksek bayt kısmına gelmesi için
//8 bit sola kaydırılır ve ardından yüksek ve düşük baytlar toplanır.
dusuk_oku = EEPROM.read(10);
yuksek_oku = EEPROM.read(11);
okunan_sayi = dusuk_oku + (yuksek_oku << 8);
Serial.print("Okunan Sayı= "); Serial.println(okunan_sayi);
while (1); //bu satırsa sonsuz döngü oluşur ve program burada kalır.
}
0 comments:
Yorum Gönder