愛體驗認證

2019年5月4日 星期六

TCweng_讀寫Arduino EEPROM記憶體

繼上一篇:EEPROM 記憶體介紹https://tcweng.blogspot.com/2019/05/eeprom.html

TC就一直很想要介紹怎麼讀寫arduino的EEPROM了
因此隔天就馬上跑來寫這篇文章XD

這邊先提供外接EEPROM記憶體的教學連結
https://tcweng.blogspot.com/2019/05/tcwengeeprom-arduino-at24c256.html


先簡單介紹一下:

EEPROM在系統斷電後
資料依然能夠留存
因此如果利用EEPROM儲存檔案
可以省去外接EEPROM的麻煩
而且在下次開機時也可以繼續使用上次的資料

是不是有讀者想到這個可以用來幹嘛了😁😁😏
TC看到Arduino有這個功能後
想到的就是可以拿來儲存紀錄天氣
這樣就不用外接任何的SD卡等等裝置
而且穩定度上非常高!!!!!
用過SD模組的就知道
就算在怎麼想破頭腦
就是有那麼一點的不穩定



進入今天的正題:

要使用Arduino內建的記憶體
要先匯入<EEPROM.h>函示庫

#include <EEPROM.h>



而在setup()區域中
不需要寫任何的程式做設定
(除非有要先寫入某些數值進入記憶體)



底下是最重要的幾個指令:
addr=地址 . val=數值

寫入指令:
EEPROM.write(addr, val);

讀取指令:
EEPROM.read(addr);

清除指令
EEPROM.clear
!!!這個指令是清除全部記憶體





底下是兩個實作範例

寫入檔案範例:
#include <EEPROM.h>
int addr = 0;

void setup() {
  
}

void loop() {
  
  int val = analogRead(0) / 4;  // val=讀取類比0腳位的訊號
  EEPROM.write(addr, val);   //將數值val存入位置addr

  addr = addr + 1;  // 將位置加1,類似門牌號加一的意思
  if (addr == EEPROM.length()) {  //假設記憶體全部用完則從門牌號0開始

    addr = 0;
  }


  delay(100);
}





讀取檔案範例:
#include <EEPROM.h>

int address = 0;
byte value;

void setup() {
  Serial.begin(9600);

}

void loop() {

  value = EEPROM.read(address);

  Serial.print(address);
  Serial.print("\t");
  Serial.print(value, DEC);
  Serial.println();

  address = address + 1;
  if (address == EEPROM.length()) {
    address = 0;
  }

  delay(500);
}

沒有留言:

張貼留言