6 Eylül 2026 Pazar

1. EEPROM Boyutu Öğrenme
#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

Arduino Eğitimi Konu - 7

Toplam Sayfa Görüntüleme Sayısı

Sensörlerin Arduino İle Kullanımı

Popular Posts

Yararlanılan Kaynaklar

İletişim

gokdag17@gmail.com