SD Card shield를 통해, Arduino의 데이터를 SD Card에 저장해보자.
▶ 이 가이드를 따라하면
- Arduino에 저장장치를 써보자.
▶ 먼저 읽으면 좋은 글
- Arduino 일반 : http://bbangpan.tistory.com/1
▶ 부품 설명 및 회로 구성
Arduino에서도 전원을 끄고 켠 이후에도 기존 내용을 저장하고 싶을 때가 있다. 물론 플래쉬메모리와 유사한 EEPROM (UNO의 경우 512 bytes) 을 활용할 수 있지만 매우 작다.
(https://www.arduino.cc/en/Tutorial/EEPROMWrite ) 다른 방법이 없는가? 있다. SD카드 쉴드가 그것이다. SD카드/microSD(SDHC 포함) 카드 두가지를 모두 사용할 수 있다. 이 방식은 다른 쉴드에 탑재되어 있기도 한데, 이더넷 쉴드에도 이 SD카드 슬롯이 달려있다(주로 네트워크 전송 전에 데이터를 로깅하기 위한 용도로 사용됨).
본 글에서는 이 부류들의 가장 대표적인 SD Card Shield를 살펴보기로 하자. 각 제조사나 버전에 따라서 지원하는 메모리 카드나 Arduino Mega호환 여부 등이 다르므로 스펙을 잘 살펴보고 필요에 따라 구매하면 된다. 여기서는 SD Card Shield V3.1을 사용한다(동일 제품 V3.0과 유사). 단 이 버전은 또한 Arduino Mega와는 호환되지 않으므로 주의한다 (핀을 수작업으로 분기하면 Mega에서도 작동하긴 한다고 한다. )
역시 어떻게 생겼는지 보자. 자세한 스펙은 http://www.seeedstudio.com/wiki/SD_Card_Shield_V3.0 에서 확인한다. (참조로 SD와 MicroSD를 동시에 장착하지 말도록 권장하고 있다)
<SD Card Shield V3.1 앞뒤/모습. SD/MicroSD를 지원하고 작은 스위치로 둘중 하나를 선택하게 되어있다.>
<MicroSD 카드를 끼우고 Arduino UNO에 결합시켰다>
메모리 카드는 FAT16,FAT32만 지원하므로 NTFS로 포맷하지 않도록 한다. 필자의 경우에는 32G SDHC카드를 끼웠는데 정상동작했다(스펙에는 16G이하만 지원한다고 나온다)
그러면 작동을 시켜보자.
▶ 소스 코드 입력 및 구동
SdFat라이브러리가 필요한데 https://github.com/greiman/SdFat 에서 받는다. 주의할 것은 이 라이브러리를 받아서 압축을 풀 때 SdFat만, Arduino설치폴더/libraries에 넣도록 하자. 전체를 모두 압축 풀수도 있는데, 그러면 특정 헤더파일을 찾지 못하는 경우가 있다.
Github 오른쪽 중앙의 download ZIP에서 받은 후에
<download ZIP을 선택하자>
압축 풀면 나오는 SdFat_master/SdFat 폴더를 Arduino설치폴더/libraries밑에 복사하고 Arduino Sketch를 재실행하면 예제에서 ReadWrite예제를 열어서 작동할 수 있다.
<파일/예제/SdFat/ReadWrite 를 선택해 컴파일하고 업로드하자>
이 예제는 SD카드 안에 test.txt라는 파일을 만들어서 간단한 예제 텍스트를 쓴 후에, 해당 파일을 읽어서 쓴 내용을 Serial로 뿌려주는 역할을 한다. 정상 작동하면 아래와 같이 볼 수 있다.
<예제 실행 후 시리얼 모니터 화면>
해당 메모리 카드를 메모리 리더에 넣고 실제 test.txt가 생성되었는지 확인해보자. 신기하게 생성일이 2000년인 파일이 생겼음을 알 수 있다. 이 ReadWrite외에도 타 예제를 통해 파일 정보 확인 등 다양한 활동이 가능하다.
<해당 메모리의 파일 실제 목록이다. test.txt가 생겼다>
내부에 포함된 예제를 변형하여 다양한 정보를 저장 혹은 읽을 수 있다.
▶ 구매 가이드
Arduino SD Card Shield : http://www.aliexpress.com/w/wholesale-sd-card-shield.html?spm=2114.01020208.0.325.Wm7B96&site=glo&SearchText=sd+card+shield&g=y&SortType=total_tranpro_desc&groupsort=1&initiative_id=SB_20151031065757&shipCountry=kr
▶ 강의 키워드
아두이노 SD카드 쉴드, Arduino SD Card Shield, 아두이노 메모리, 아두이노 저장장치, 아두이노 메모리, FAT, FAT16, FAT32, SdFat
'아두이노 기타모듈' 카테고리의 다른 글
[기타/로직레벨컨버터] 3.3V to 5V logic level converter를 이해하자 (0) | 2020.07.14 |
---|---|
[복합/TM1638] TM1638 8 digits, 8 LEDs (7 segments), 8 keys 세트 (1) | 2015.12.13 |
[기타/케이스] Arduino UNO/Mega, 라즈베리파이 플라스틱 케이스를 씌워보자 (2) | 2015.10.14 |
[에디슨/USB드라이브] 에디슨의 USB drive(storage)를 자체에서 마운트해서 사용하기 (0) | 2015.09.12 |
[기타/레이저] 아두이노로 레이저를 쏴보자. TTL 레이저 모듈! (0) | 2015.06.22 |
[쉴드/종합] DFRobot blunoAccessory 쉴드로 OLED+DHT11+LED+Joystick 등을 종합 사용 (0) | 2015.06.03 |
[기타/RTC breakout] 실시간 시간을 알려주는 RTC breakout(DS1307 혹은 DS3231) (2) | 2015.04.18 |