아두이노 나노 - 마이크로 SD 카드 | Arduino Nano - Micro SD Card

이 튜토리얼은 아두이노 나노와 함께 마이크로 SD 카드를 사용하는 방법을 안내합니다. 자세히, 우리는 배울 것입니다:

Arduino Nano Micro SD Card

준비물

1×Arduino Nano Amazon
1×USB A to Mini-B USB cable 쿠팡 | 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 Nano Amazon
1×(Recommended) Screw Terminal Adapter for Arduino Nano 쿠팡 | Amazon
공개: 이 섹션에서 제공된 링크 중 일부는 제휴 링크입니다. 이 링크를 통해 구매한 경우 추가 비용없이 수수료를 받을 수 있습니다. 지원해 주셔서 감사합니다.

마이크로 SD 카드 모듈에 대하여

마이크로 SD 카드 모듈은 아두이노 나노와 마이크로 SD 카드 사이의 연결입니다. 이것은 두 기기 간의 통신을 용이하게 하여 아두이노 나노가 마이크로 SD 카드에 접근할 수 있도록 합니다.

마이크로 SD 카드 모듈 핀배열

Micro SD Card Module pinout

Micro SD 카드 모듈에는 6개의 핀이 있습니다:

  • VCC 핀: 아두이노의 5V 핀에 연결해야 합니다.
  • GND 핀: 아두이노의 GND에 연결해야 합니다.
  • MISO 핀: (Master In Slave Out) 아두이노의 MOSI 핀에 연결해야 합니다.
  • MOSI 핀: (Master Out Slave In) 아두이노의 MISO 핀에 연결해야 합니다.
  • SCK 핀: 아두이노의 SCK 핀에 연결해야 합니다.
  • SS 핀: (Slave Select) 아두이노 나노 코드에서 SS 핀으로 지정된 핀에 연결해야 합니다.

준비

Micro SD 카드가 FAT16 또는 FAT32로 포맷되었는지 확인하세요 (자세한 정보는 온라인에서 검색하세요).

선연결

마이크로 SD 카드 모듈을 아두이노 나노에 연결하기 위해서 남성 대 여성 점퍼 케이블을 사용할 수 있습니다.

Arduino Nano Micro SD Card Module wiring diagram

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.

또는 마이크로 SD 카드 모듈을 브레드보드에 연결한 다음, 남성 대 남성 점퍼 와이어를 사용할 수 있습니다.

Arduino Nano Micro SD Card Module wiring diagram

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.

아두이노 나노 - Micro SD 카드에서 파일을 열고 없으면 생성하는 방법

아두이노 나노 코드

사용 방법

  • 마이크로 SD 카드를 마이크로 SD 카드 모듈에 삽입하세요.
  • 배선도를 따라 마이크로 SD 카드 모듈을 아두이노 나노에 연결하세요.
  • USB 케이블을 사용하여 아두이노 나노를 컴퓨터에 연결하세요.
  • 아두이노 IDE를 열고 적절한 보드와 포트를 선택하세요.
  • 아두이노 IDE에서 시리얼 모니터를 엽니다.
  • 아래의 코드를 복사하여 아두이노 IDE에 붙여넣기하세요.
/* * 이 Arduino Nano 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino Nano 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-nano/arduino-nano-micro-sd-card */ #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() { }
  • Arduino IDE에서 Upload 버튼을 클릭하여 코드를 컴파일하고 Arduino Nano에 업로드하세요.
  • 첫 실행의 출력을 확인하기 위해 시리얼 모니터를 확인하세요.
COM6
Send
SD CARD INITIALIZED. arduino-nano.txt doesn't exist. Creating arduino-nano.txt file... arduino-nano.txt exists on SD Card.
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

다음 실행에서 시리얼 모니터에 표시될 출력

COM6
Send
SD CARD INITIALIZED. arduino-nano.txt exists on SD Card.
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ NOTE THAT:

시리얼 모니터를 열기 전에 첫 번째 업로드를 하면 시리얼 모니터에서 출력을 관찰하지 못할 수 있습니다.

  • 모듈에서 마이크로 SD 카드를 제거하십시오.
  • 마이크로 SD 카드를 USB SD 카드 리더기에 넣으십시오.
  • USB SD 카드 리더기를 PC에 연결하십시오.
  • 파일이 존재하는지 여부를 확인하십시오.

아두이노 나노 - 마이크로 SD 카드에 있는 파일로부터 데이터를 읽고/쓰는 방법

다음 코드:

  • 파일에 데이터를 저장합니다.
  • 파일의 내용을 문자별로 읽고 시리얼 모니터에 표시합니다.
/* * 이 Arduino Nano 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino Nano 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-nano/arduino-nano-micro-sd-card */ #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(); // Micro SD 카드에서 한 번에 하나의 문자를 읽기 Serial.print(ch); // 문자를 시리얼 모니터에 출력 } myFile.close(); } else { Serial.print(F("SD Card: error on opening file arduino.txt")); } } void loop() { }

시리얼 모니터가 파일의 내용을 표시했습니다.

COM6
Send
Created by ArduinoGetStarted.com Learn Arduino Nano and SD Card
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ NOTE THAT:

기본적으로 데이터는 파일 맨 끝에 추가될 것입니다. 위의 코드로 Arduino Nano를 다시 시작하면, 텍스트가 다시 파일에 추가됩니다. 이로 인해 시리얼 모니터가 다음과 같이 더 많은 줄을 표시하게 됩니다:

...시리얼_모니터

ArduinoGetStarted.com에서 생성함

Arduino Nano 및 SD 카드 배우기

ArduinoGetStarted.com에서 생성함

Arduino Nano 및 SD 카드 배우기

...시리얼_모니터

모듈에서 마이크로 SD 카드를 제거하고 USB SD 카드 리더기를 사용하여 컴퓨터에서 내용을 볼 수 있습니다.

아두이노 나노 - 마이크로 SD 카드의 파일을 줄 단위로 읽는 방법

/* * 이 Arduino Nano 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino Nano 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-nano/arduino-nano-micro-sd-card */ #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"); // Arduino에 줄 쓰기 myFile.println("Learn Arduino and SD Card"); // Arduino에 다른 줄 쓰기 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]; // 최대 100자, 필요에 따라 바꾸세요 int line_length = myFile.readBytesUntil('\n', line, 100); // Micro SD Card에서 한 줄씩 읽기 line_count++; Serial.print(F("Line ")); Serial.print(line_count); Serial.print(F(": ")); Serial.write(line, line_length); // 문자를 시리얼 모니터에 출력하기 // \n 문자는 readBytesUntil 함수에 의해 이스케이프됨 Serial.write('\n'); // 새 줄 문자 출력 } myFile.close(); } else { Serial.print(F("SD Card: error on opening file arduino.txt")); } } void loop() { }

시리얼 모니터에 표시된 결과.

COM6
Send
SD CARD INITIALIZED. Line 1: Created by ArduinoGetStarted.com Line 2: Learn Arduino Nano and SD Card
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ NOTE THAT:

파일의 내용이 사전에 지워지지 않은 경우 시리얼 모니터에서 추가 라인을 관찰할 수 있습니다.

아두이노 나노 - 마이크로 SD 카드에 있는 파일을 덮어쓰는 방법

기본적으로, 내용은 파일의 끝에 추가될 것입니다. 파일을 덮어쓰는 가장 쉬운 방법은 기존 파일을 삭제하고 동일한 이름으로 새 파일을 생성하는 것입니다.

/* * 이 Arduino Nano 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino Nano 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-nano/arduino-nano-micro-sd-card */ #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(); // 마이크로 SD 카드에서 한 번에 하나의 문자 읽기 Serial.print(ch); // 시리얼 모니터에 문자 출력 } myFile.close(); } else { Serial.print(F("SD Card: error on opening file arduino.txt")); } } void loop() { }

시리얼 모니터에 표시된 결과입니다.

COM6
Send
SD CARD INITIALIZED. Created by ArduinoGetStarted.com Learn Arduino Nano and SD Card
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • 아두이노 나노를 재시작하세요.
  • 파일에 있는 자료가 시리얼 모니터에 추가되었는지 확인하세요.

모듈에서 Micro SD 카드를 제거하고 PC에서 그 내용을 볼 수 있습니다. 이를 위해서는 USB SD 카드 리더기가 필요합니다.

동영상

비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!