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);
}
沒有留言:
張貼留言