코인 Ticker 만들기 #10.EEPROM 제어하기
- 윈드마켓
- 2019년 1월 23일
- 2분 분량
이번 강좌에서는 Wemos D1 mini 의 EEPROM 에 데이터를 저장(Write)하고 읽는(Read) 방법에 대해서 배워보도록 하겠습니다.
우선 Wemos D1 mini 의 EEPROM 용량을 아래 경로를 통해 살펴보면 4M(4096 byte) 임을 확인할 수 있습니다.
https://wiki.wemos.cc/products:retired:d1_mini_v2.2.0
4096 바이트를 사용할 수 있다는것은
0번째 주소부터 4095번째 주소까지 사용을 할 수 있으며
주소당 1byte 를 기록할 수 있다는 것입니다.
샘플 소스로 바로 넘어가 보도록 하겠습니다.
1. 아두이노 IDE 를 열고 파일 / 새파일 메뉴를 실행합니다.
2. 아래 소스코드를 아두이노 IDE 의 새파일에 복사해 넣습니다.
#include <EEPROM.h>
void setup() {
Serial.begin(115200);
EEPROM.begin(4096); // 0~4095
}
void loop() {
// EEPROM.write(addr, data);
EEPROM.write(10, 6); // data length write 0 address
EEPROM.write(11, 'k'); // data write 1 address
EEPROM.write(12, 'k'); // data write 2 address
EEPROM.write(13, 'a'); // data write 3 address
EEPROM.write(14, 'k'); // data write 4 address
EEPROM.write(15, 'j'); // data write 5 address
EEPROM.write(16, 'i'); // data write 6 address
EEPROM.commit();
delay(100);
int size = EEPROM.read(10);
Serial.print("size:");
Serial.println(size);
String strMsg;
for ( int i=0; i < size; i++ ){
strMsg += (char)(EEPROM.read(11+i));
}
Serial.print("msg:");
Serial.println(strMsg);
delay(1000);
}
3. 소스를 간단하게 설명드리면
10번째 주소에 data의 총 길이 6을 write 하고
11번째 주소 ~ 16번째 주소까지 kkakji 라는 문자열을 각각 분리해서 넣어줍니다.
commit 을 통해서 EEPROM 에 최종 기록하게 됩니다.
EEPROM의 10번째 주소에서 data size 를 읽어서 size 란 변수에 담고
시리얼 모니터로 size 를 출력해 줍니다.
strMsg 라는 스트링 변수에
for 반복문으로 EEPROM 에서 11번째 주소값부터 읽어서 char 로 변환한 후 순서대로 담아놓습니다.
마지막으로 시리얼을 통해 strMsg 를 출력해 줍니다.
4. 소스를 컴파일 하고 Wemos D1 mini 보드에 업로드 해줍니다.
- 컴파일 하려고 확인버튼을 누르면 소스를 저장하도록 하는데요.
적당한 위치에 eeprom_write.ino 라고 저장합니다.
5. 아두이노 IDE 에서 툴 / 시리얼 모니터 를 실행해 줍니다.
6. 아래와 같이 출력되는 것을 보실 수 있습니다.

이상으로 EEPROM 에 데이터를 저장(Write)하고 읽는(Read) 방법에 대해서 알아보았습니다.
감사합니다.
Comments