이 아두이노 튜토리얼에서는 아두이노 보드와 SD 카드 모듈 사용법을 배우고, DS3231 실시간 시계 모듈과 조합해 온도 센서 데이터를 SD 카드에 저장한 후 엑셀로 가져와 차트를 만드는 데이터 로깅 예제를 실습합니다. 아래 비디오를 시청하거나 작성된 튜토리얼을 읽어보세요.
작동 원리
먼저 SD 카드 모듈을 살펴보겠습니다. 표준 마이크로 SD 카드(작동 전압 3.3V)와 호환됩니다. 따라서 모듈에는 전압 레귤레이터와 레벨 시프터가 있어 아두이노의 5V 핀과도 사용할 수 있습니다.
SD 카드 모듈은 6개 핀을 가집니다: 전원용 VCC, GND 2개와 SPI 통신용 4개 핀. 아두이노 보드와의 연결 방법은 다음과 같습니다.
각 아두이노 보드마다 SPI 핀이 다르므로 이에 맞춰 연결해야 합니다.
필요한 부품은 아래 링크에서 구할 수 있습니다:
마이크로 SD 카드 모듈………………..
아두이노 보드 ……………………………
브레드보드와 점퍼 와이어 ………
아두이노 SD 카드 모듈 코드
이제 아두이노를 프로그래밍해 보겠습니다. 간단한 코드입니다:
/*
* 아두이노 SD 카드 튜토리얼 예제
* by Dejan Nedelkovski, www.HowToMechatronics.com
*/
#include <SD.h>
#include <SPI.h>
File myFile;
int pinCS = 53; // 아두이노 우노의 경우 핀 10
void setup() {
Serial.begin(9600);
pinMode(pinCS, OUTPUT);
// SD 카드 초기화
if (SD.begin()) {
Serial.println("SD card is ready to use.");
} else {
Serial.println("SD card initialization failed");
return;
}
// 파일 생성/열기
myFile = SD.open("test.txt", FILE_WRITE);
// 파일 열기 성공 시 쓰기
if (myFile) {
Serial.println("Writing to file...");
myFile.println("Testing text 1, 2 ,3...");
myFile.close();
Serial.println("Done.");
} else {
Serial.println("error opening test.txt");
}
// 파일 읽기
myFile = SD.open("test.txt");
if (myFile) {
Serial.println("Read:");
while (myFile.available()) {
Serial.write(myFile.read());
}
myFile.close();
} else {
Serial.println("error opening test.txt");
}
}
void loop() {
// 비워둠
}코드 언어: Arduino (arduino)
코드 설명: 표준 SD, SPI 라이브러리를 포함하고 "File" 객체 생성, SPI 버스 ChipSelect 핀 정의(아두이노 메가 기준 핀 53). 이 예제는 한 번만 실행하면 되므로 모든 코드를 setup에 넣고 loop는 비워둡니다.