[복사하고 따라하는 아두이노] 아두이노 EEPROM(feat.write&read)
안녕하세요. 공대 박형입니다.
오늘은 아두이노 EEPROM write, raed 함수 예제를 실습해보겠습니다.
아두이노 EEPROM에서는 5개의 함수가 있습니다.
1.write : EEPROM의 인덱스에 전달된 매개변수 값을 저장
2.read : 매개변수로 전달되는 인덱스에 저장되어 있는 1바이트값을 읽어와서 반환
3.update : EEPROM의 인덱스에 저장된 ㄱ밧이 전달된 매개변수 값과 다를 경우 값을 저장
4.put : EEPROM의 위치(location)에 전달된 데이터(구조체)를 저장
5.get : 매개변수로 전달되는 위치(location)에 저장되어 있는 데이터를 가져옴
이번 시간에는 write 와 read기능을 실습해 보겠습니다.
#include <EEPROM.h>
void setup()
{
for (int i=0;i<20;i++){
EEPROM.write(i,i*2);
}
}
void loop(){
}
EEPROM의 write 함수를 사용하여 EEPROM의 0~19번째 인덱스에 순차적으로 2의 배수 값을 넣는 프로그램을 만들었습니다. 인덱스[0]에는 0이 저장되고 인덱스[1]에는 2가 저장되 인덱스[19]에는 38이 저장됐습니다. 이제 저장된 값을 읽어보겠습니다.
#include <EEPROM.h>
void setup()
{
Serial.begin(9600);
for (int j=0;j<21;j++){
Serial.print("EEPROM lndex [");
Serial.print(j);
Serial.print("] = ");
Serial.println(EEPROM.read(j));
}
}
void loop(){
}
for문을 사용해 EEPROM의 인덱스 0~20까지의 숫자를 출력하는 프로그램을 만들었습니다. write를 사용해 인덱스에 값을 저장한 인덱스는 0~19입니다. 즉 인덱스[20]에는 아무 값도 저장하지 않았습니다. 그럼 어떤 결과 나왔는지 함께 보시죠.
인덱스 0~19에는 2의 배수가 순차적으로 저장된 것을 확인할 수 있습니다. 그리고 인덱스[20]은 255가 저장되어 있습니다. 그렇다는 말은 EEPROM 설정을 하지 않은 상태에서 빈 인덱스를 읽으면 255가 출력되는것을 알 수 있습니다.
다음 시간에는 EEPROM의 get, put 함수를 사용해 위치(location)에 데이터를 저장하고 읽어오는 예제를 실습하겠습니다.
궁금한 부분은 문의주시면 답변드리겠습니다.
읽어주셔서 감사합니다.