轉載請註明:@小五義http://www.cnblogs.com/xiaowuyi QQ羣:64770604編程
1、EEPROM簡介ide
EEPROM (Electrically Erasable Programmable Read-Only Memory),上電可擦可編程只讀存儲器--一種掉電後數據不丟失的存儲芯片,簡而言之就是你想斷電後arduino還要保存一些參數,就使用EEPROM吧。在各型號的arduino控制器上的AVR芯片均帶有EEPROM,也有外接的EEPROM芯片,常見arduino控制器的EEPROM大小:Arduino UNO、Arduino duemilanove-m32八、Zduino m328均使用ATmega328芯片,EEPROM都爲1K,Arduino duemilanove-m168的EEPROM爲512bytes。下面以arduino leonardo介紹arduino自帶的EEPROM使用方法,以及arduino插拔次數的計數方法,arduino中已經存在EEPROM類庫,咱們要使用得先調用EEPROM.h,而後使用write和read方法,便可操做EEPROM。oop
2、arduino iDE中的例程(具體程序請從ide中添加)ui
1.寫入例程spa
選擇 File>Examples>EEPROM>eeprom_write。blog
2.讀取例程
選擇 File>Examples>EEPROM>eeprom_read。文檔
3.清除
選擇 File>Examples>EEPROM>eeprom_clear
清除EEPROM的內容,其實就是把EEPROM中每個字節寫入0,由於只用清一次零,因此整個程序都在setup部分完成。get
3、利用EEPROM存儲記錄arduino使用次數it
記錄arduino的使用次數,就是記錄arduino上電次數。考慮利用eeprom進行存儲,每上電一次,存儲數值加1。class
(1)清零程序
在arduino首次使用或者記錄時,先清零,保證從0開始記數。具體代碼以下:
##轉載請註明:@小五義http://www.cnblogs.com/xiaowuyi QQ羣:64770604 #include <EEPROM.h> int address ;//應用EEPROM地址位爲1 int value=0; void setup() { value==1 ; EEPROM.write(address, value); while (!Serial) { ; // wait for serial port to connect. Needed for Leonardo only } } void loop() { //Serial.print(address); Serial.print(value); Serial.println(); delay(1000); }
(2)記數程序
清零後,將此記數程序燒入,之後每次上電,EEPROM的存儲值會加1,實現對arduino使用次數的記錄。具體代碼以下:
##轉載請註明:@小五義http://www.cnblogs.com/xiaowuyi QQ羣:64770604 #include <EEPROM.h> int address ;//應用EEPROM地址位爲1 int value; void setup() { // initialize serial and wait for port to open: Serial.begin(9600); value = EEPROM.read(address); value+=1 ; EEPROM.write(address, value); while (!Serial) { ; // wait for serial port to connect. Needed for Leonardo only } } void loop() { //Serial.print(address); Serial.print(value); Serial.println(); delay(1000); }
最後,感謝公司李同窗的文檔整理。