아두이노 - 마이크로 SD 카드 | Arduino - Micro SD Card
이 튜토리얼에서는 Arduino와 Micro SD 카드를 사용하는 방법을 배우게 됩니다. 구체적으로, 우리는 다음을 배울 것입니다:
아두이노 - 마이크로 SD 카드에 파일을 열고 없으면 생성하는 방법
아두이노 - 마이크로 SD 카드의 파일에 데이터를 쓰는 방법
아두이노 - 마이크로 SD 카드의 파일을 문자별로 읽는 방법
아두이노 - 마이크로 SD 카드의 파일을 줄별로 읽는 방법
아두이노 - 마이크로 SD 카드의 기존 파일에 내용 추가하는 방법
아두이노 - 마이크로 SD 카드의 파일을 덮어쓰는 방법
1 | × | Arduino Uno | Amazon | |
1 | × | USB 2.0 cable type A/B | 쿠팡 | Amazon | |
1 | × | Micro SD Card | Amazon | |
1 | × | Micro SD Card Module | 쿠팡 | Amazon | |
1 | × | Jumper Wires | Amazon | |
1 | × | USB 3.0 SD Card Reader | Amazon | |
1 | × | (Optional) 9V Power Adapter for Arduino | Amazon | |
1 | × | (Recommended) Screw Terminal Block Shield for Arduino Uno | 쿠팡 | Amazon | |
1 | × | (Recommended) Breadboard Shield For Arduino Uno | 쿠팡 | Amazon | |
1 | × | (Recommended) Enclosure For Arduino Uno | Amazon | |
공개: 이 섹션에서 제공된 링크 중 일부는 제휴 링크입니다. 이 링크를 통해 구매한 경우 추가 비용없이 수수료를 받을 수 있습니다. 지원해 주셔서 감사합니다.
Micro SD 카드 모듈은 아두이노와 인터페이스할 수 있으며 Micro SD 카드를 장착할 수 있습니다. 다시 말해, Micro SD 카드 모듈은 아두이노와 Micro SD 카드 사이의 연결고리입니다.
Micro SD 카드 모듈에는 6개의 핀이 포함됩니다:
VCC 핀: 아두이노의 5V 핀에 연결하세요.
GND 핀: 이 핀을 아두이노의 GND에 연결하세요.
MISO 핀: (Master In Slave Out) 이 핀을 아두이노의 MISO 핀에 연결하세요.
MOSI 핀: (Master Out Slave In) 이 핀을 아두이노의 MOSI 핀에 연결하세요.
SCK 핀: 이 핀을 아두이노의 SCK 핀에 연결하세요.
SS 핀: (Slave Select) 이 핀을 아두이노 코드에서 SS 핀으로 지정된 핀에 연결하세요.
이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
※ NOTE THAT:
이더넷 쉴드 또는 Micro SD 카드 홀더가 있는 어떠한 쉴드를 사용한다면, Micro SD 카드 모듈을 사용할 필요가 없습니다. 단지 쉴드의 Micro SD 카드 홀더에 Micro SD 카드를 삽입하기만 하면 됩니다.
마이크로 SD 카드를 마이크로 SD 카드 모듈에 삽입하세요
위의 배선도대로 마이크로 SD 카드 모듈과 아두이노 사이의 배선을 하세요
USB 케이블을 이용해 아두이노를 PC에 연결하세요
아두이노 IDE를 열고 올바른 보드와 포트를 선택하세요
아두이노 IDE에서 시리얼을 열기
아래 코드를 복사해서 아두이노 IDE에 붙여넣기하세요
#include <SD.h>
#define PIN_SPI_CS 4
File myFile;
void setup() {
Serial.begin(9600);
if (!SD.begin(PIN_SPI_CS)) {
Serial.println(F("SD CARD FAILED, OR NOT PRESENT!"));
while (1);
}
Serial.println(F("SD CARD INITIALIZED."));
if (!SD.exists("arduino.txt")) {
Serial.println(F("arduino.txt doesn't exist. Creating arduino.txt file..."));
myFile = SD.open("arduino.txt", FILE_WRITE);
myFile.close();
}
if (SD.exists("arduino.txt"))
Serial.println(F("arduino.txt exists on SD Card."));
else
Serial.println(F("arduino.txt doesn't exist on SD Card."));
}
void loop() {
}
SD CARD INITIALIZED.
arduino.txt doesn't exist. Creating arduino.txt file...
arduino.txt exists on SD Card.
다음 실행에 대한 시리얼 모니터의 결과
SD CARD INITIALIZED.
arduino.txt exists on SD Card.
※ NOTE THAT:
시리얼 모니터를 열기 전에 첫 번째 업로드가 완료되기 전에는 첫 실행에서 시리얼 모니터의 출력을 볼 수 없을 수 있습니다.
아래 코드는 다음을 수행합니다:
#include <SD.h>
#define PIN_SPI_CS 4
File myFile;
void setup() {
Serial.begin(9600);
if (!SD.begin(PIN_SPI_CS)) {
Serial.println(F("SD CARD FAILED, OR NOT PRESENT!"));
while (1);
}
Serial.println(F("SD CARD INITIALIZED."));
myFile = SD.open("arduino.txt", FILE_WRITE);
if (myFile) {
myFile.println("Created by ArduinoGetStarted.com");
myFile.println("Learn Arduino and SD Card");
myFile.close();
} else {
Serial.print(F("SD Card: error on opening file arduino.txt"));
}
myFile = SD.open("arduino.txt", FILE_READ);
if (myFile) {
while (myFile.available()) {
char ch = myFile.read();
Serial.print(ch);
}
myFile.close();
} else {
Serial.print(F("SD Card: error on opening file arduino.txt"));
}
}
void loop() {
}
시리얼 모니터가 파일의 내용을 보여주었습니다.
Created by ArduinoGetStarted.com
Learn Arduino and SD Card
※ NOTE THAT:
기본적으로 데이터는 파일 끝에 추가될 것입니다. 위의 코드로 Arduino를 재부팅하면 텍스트가 파일에 다시 추가됩니다 ⇒ 시리얼 모니터는 아래와 같이 더 많은 줄을 보여줄 것입니다:
ArduinoGetStarted.com에서 제작
아두이노와 SD 카드 배우기
ArduinoGetStarted.com에서 제작
아두이노와 SD 카드 배우기
모듈에서 마이크로 SD 카드를 분리한 후 PC에서 내용을 확인할 수도 있습니다 (USB SD 카드 리더기가 필요합니다).
#include <SD.h>
#define PIN_SPI_CS 4
File myFile;
void setup() {
Serial.begin(9600);
if (!SD.begin(PIN_SPI_CS)) {
Serial.println(F("SD CARD FAILED, OR NOT PRESENT!"));
while (1);
}
Serial.println(F("SD CARD INITIALIZED."));
myFile = SD.open("arduino.txt", FILE_WRITE);
if (myFile) {
myFile.println("Created by ArduinoGetStarted.com");
myFile.println("Learn Arduino and SD Card");
myFile.close();
} else {
Serial.print(F("SD Card: error on opening file arduino.txt"));
}
myFile = SD.open("arduino.txt", FILE_READ);
if (myFile) {
int line_count = 0;
while (myFile.available()) {
char line[100];
int line_length = myFile.readBytesUntil('\n', line, 100);
line_count++;
Serial.print(F("Line "));
Serial.print(line_count);
Serial.print(F(": "));
Serial.write(line, line_length);
Serial.write('\n');
}
myFile.close();
} else {
Serial.print(F("SD Card: error on opening file arduino.txt"));
}
}
void loop() {
}
시리얼 모니터에서의 결과
SD CARD INITIALIZED.
Line 1: Created by ArduinoGetStarted.com
Line 2: Learn Arduino and SD Card
※ NOTE THAT:
파일의 내용이 이전에 삭제되지 않은 경우 시리얼 모니터에서 더 많은 줄을 볼 수 있습니다.
기본적으로 내용은 파일의 끝에 추가됩니다. 파일을 덮어쓰는 가장 간단한 방법은: 기존 파일을 삭제하고 같은 이름으로 새 파일을 생성하는 것입니다.
#include <SD.h>
#define PIN_SPI_CS 4
File myFile;
void setup() {
Serial.begin(9600);
if (!SD.begin(PIN_SPI_CS)) {
Serial.println(F("SD CARD FAILED, OR NOT PRESENT!"));
while (1);
}
Serial.println(F("SD CARD INITIALIZED."));
SD.remove("arduino.txt");
myFile = SD.open("arduino.txt", FILE_WRITE);
if (myFile) {
myFile.println("Created by ArduinoGetStarted.com");
myFile.println("Learn Arduino and SD Card");
myFile.close();
} else {
Serial.print(F("SD Card: error on opening file arduino.txt"));
}
myFile = SD.open("arduino.txt", FILE_READ);
if (myFile) {
while (myFile.available()) {
char ch = myFile.read();
Serial.print(ch);
}
myFile.close();
} else {
Serial.print(F("SD Card: error on opening file arduino.txt"));
}
}
void loop() {
}
시리얼 모니터의 결과
SD CARD INITIALIZED.
Created by ArduinoGetStarted.com
Learn Arduino and SD Card
모듈에서 마이크로 SD 카드를 분리한 다음, PC에서 내용을 확인하기 위해 열 수도 있습니다 (USB SD 카드 리더기가 필요합니다).
비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.