一般而言,Arduino系統板上的AVR微控制器晶片,會內建512Bytes(512B)容量的EEPROM記憶體,可供程式開發者自由運用。EEPROM是很普及的晶片,許多晶片商均有供貨,如Atmel、MAXIM、Microchip、NXP、Holtek、Nuvoton等。
EEPROM的特性是系統斷電後,資料依然能夠留存,有了這個內建的EEPROM,可以省去外接EEPROM或DIP Switch(中文稱為指撥開關)的麻煩。
想使用Arduino內建的EEPROM,在程式最初就要含括進來,即使用以下指令:
而在Arduino的初始執行階段,即setup()函式內,不需要下任何指令,而後直接在迴圈執行階段進行操作,即loop()函式內。
EEPROM的操作指令相當簡單,只有2個,即是寫入、讀取,格式如下:
寫入指令:
讀取指令:
其中addr就是address位址,val就是value數值,addr與val可以給直接數值,也可以用變數替代。
另外有一個EEPROM.clear指令,但說穿了,就是用程式寫迴圈,將每個位址的資料都寫入數值0,若要使用EEPROM.clear,就得在setup()函式內放入以下程式:
EEPROM的操作很簡單,但要附帶說明兩點,一是更高階的AVR微控制器晶片應有更高容量的EEPROM,如此迴圈最大數值就不能設512,而要改成1024等。另也有人把Arduino程式強行燒錄到更少硬體資源的ATtiny系列晶片內,那可能就沒有512bytes可以用,容量可能降至256/128/64Bytes,如ATtiny48/88僅有64Bytes,甚至完全沒有,如ATtiny20、ATtiny40等。
若真的MCU內建的都不夠用,那就只好外接(大陸稱外設),外接為了減少接腳(大陸稱引腳)數的使用,一般都用串列介面來連接,但串列介面又有很多種,如MicroWire(TI/NS公司提出)、1-Wire(MAXIM/Dallas Semiconductor公司提出)、UNI/O(Microchip公司提出)、SPI(Motorola/Freescale公司提出)、I2C(NXP/Philips Semiconductor公司提出)等,AVR微控器本身也內建SPI、I2C等串列介面,有關SPI、I2C介面的操作,待以後有機會再說明。

典型I2C介面的EEPROM,編號24LC256,內有256kbits的儲存容量,換算成Byte則為32KB。
- Ollama官方模型分類觀察 - 2025/06/13
- COMPUTEX Taipei 2025量子技術展示觀察 - 2025/05/29
- Arduino Cloud Editor加入大語言模型幫手功能 - 2025/05/28
訂閱MakerPRO知識充電報
與40000位開發者一同掌握科技創新的技術資訊!