4 Eylül 2026 Cuma

Program Kodları
//AÇIKLAMA
//Bu uygulamada sayfa yazma işlemi yapılmıştır. for döngüsü ile 0'dan başlayıp 
//127'ye kadar olan sayılar EEPROM'a gönderilmiştir. Bu sayılar EEPROM'un 0x0000-0x007F
//adreslerine yazılmıştır. Bu adres aralığı 1 sayfaya tekabül eder.
//Burada verinin yazılacağı adres bilgisi 0x0000'dan başlayarak artırılmamış sadece 
//başlangıç değeri olarak 0x0000 adresi belirtilmiştir. EEPROM'a arka arkaya 8 bitlik 
//her veri gönderildiğinde EEPROM adresi kendi artırmıştır. Bu şekilde EEPROM'a tek 
//seferde 128 bayt veri yazılabilir. Bu durum EEPROM'un özelliğidir.

#define WRITE 0x02
#define READ 0x03
#define WREN 0x06
#include<SPI.h>
unsigned int veri;
int i;
void setup()
{
  SPI.begin();
  SPI.setClockDivider(SPI_CLOCK_DIV4);
  DDRD = 0b11111111;
}

void loop()
{
  //yazma işlemini etkinleştirme
  digitalWrite(SS, LOW);
  SPI.transfer(WREN);
  delay(5);
  digitalWrite(SS, HIGH);
  delay(5);

  //veri yazma
  digitalWrite(SS, LOW);
  SPI.transfer(WRITE);    //yazma komutu gönderildi
  delay(5);
  SPI.transfer16(0x0000); //yazma için sayfa başlangıç adresi gönderildi
  delay(5);
  for (i = 0; i < 128; i++)
  {
    SPI.transfer(i);     //1 bayt veri gönderildi
    delay(5);
  }
  digitalWrite(SS, HIGH);
  delay(5);

  //okuma işlemi
  digitalWrite(SS, LOW);
  SPI.transfer(READ);       //okuma komutu gönderildi
  delay(5);
  SPI.transfer16(0x0000);   //okuma için sayfa başlangıç adresi gönderildi
  delay(5);
  for (i = 0; i < 128; i++)
  {
    veri = SPI.transfer(0);  //veri okunarak veri değişkenine atandı
    PORTD = veri;
    delay(500);
  }
  digitalWrite(SS, HIGH);
  delay(5);
}



Devre Şeması




0 comments:

Yorum Gönder

Arduino Eğitimi Konu - 7

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

Sensörler ve Aygıtların Arduino İle Kullanımı

Popular Posts

Yararlanılan Kaynaklar

İletişim

gokdag17@gmail.com