4 Eylül 2026 Cuma

Program Kodları
//AÇIKLAMA
//Harici 25LC512 EEPROM'a veri gönderme ve okuma işlemi yapıldı. EEPROM'un adresleri
//16 bitliktir. "SPI.transfer(adres)" komutu ile 8 bitlik adres gönderebiliriz. Bu nedenle
//bu komutu arda arda kullanıp adresi 8 bit 8 bit şeklinde gönderebilir yada 
//"SPI.transfer16(adres)" komutu ile adresi tek seferde gönderebiliriz.
//NOT: EEPROM'a okuma-yazma işlemi yavaş olduğundan adres ve veri gönderme komutlarından 
//sonra delay() kullanmak gerekmektedir.

#define WRITE 0x02
#define READ 0x03
#define WREN 0x06
#include<SPI.h>
unsigned int veri;
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(0x0005);       //yazılacak adres gönderildi
  delay(5);
  SPI.transfer(0x0F);           //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(0x0005);       //okunacak adres gönderildi
  delay(5);
  veri = SPI.transfer(0);       //veri okunarak veri değişkenine atandı
  delay(5);
  digitalWrite(SS, HIGH);

  //okunan verinin Arduino D portuna gönderme
  PORTD = veri;

  delay(2000);

}


Devre Şeması




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