일상 박형

카테고리       

[복사하고 따라하는 아두이노] 아두이노 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)에 데이터를 저장하고 읽어오는 예제를 실습하겠습니다.

 

궁금한 부분은 문의주시면 답변드리겠습니다.

 

읽어주셔서 감사합니다.

공유하기

facebook twitter kakaoTalk kakaostory naver band