Arduino Ghi Biến vào Thẻ SD

Trong hướng dẫn này, chúng ta sẽ học cách ghi biến vào thẻ nhớ MicroSD bằng Arduino. Cụ thể, chúng ta sẽ học:

Để đọc các cặp khóa-giá trị từ thẻ nhớ Micro SD và chuyển đổi chúng sang các kiểu int, float và chuỗi, Xem Arduino - Đọc Cấu hình từ thẻ SD

thẻ sd cho Arduino micro

Phần cứng cần chuẩn bị

1×Arduino Uno R3
1×USB 2.0 cable type A/B (for USB-A PC)
1×USB 2.0 cable type C/B (for USB-C PC)
1×Micro SD Card
1×Micro SD Card Module
1×dây jumper
1×(Tùy chọn) MicroSD to SD Memory Card Adapter
1×(Khuyến nghị) Screw Terminal Block Shield for Arduino Uno
1×(Khuyến nghị) Breadboard Shield for Arduino Uno
1×(Khuyến nghị) Enclosure for Arduino Uno
1×(Khuyến nghị) Prototyping Base Plate & Breadboard Kit for Arduino UNO

Or you can buy the following kits:

1×DIYables STEM V3 Starter Kit (Arduino included)
1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)

Về mô-đun thẻ nhớ Micro SD

Nếu bạn không biết về Module thẻ nhớ Micro SD (bố trí chân, cách nó hoạt động, cách lập trình ...), hãy tìm hiểu chúng trong hướng dẫn Arduino - Thẻ nhớ Micro SD.

Sơ đồ đấu dây

sơ đồ nối dây của mô-đun thẻ nhớ micro sd Arduino

This image is created using Fritzing. Click to enlarge image

※ Lưu ý:

Nếu bạn sử dụng một Ethernet shield hoặc bất kỳ shield nào có khay đựng thẻ Micro SD, bạn sẽ không cần dùng Mô-đun Thẻ Micro SD. Bạn chỉ cần chèn thẻ Micro SD vào khay đựng thẻ Micro SD trên shield.

Arduino - Cách ghi một biến vào một tập tin trên thẻ nhớ Micro SD

Đoạn mã dưới đây thực hiện:

  • Ghi một biến int vào thẻ nhớ Micro SD
  • Ghi một biến float vào thẻ nhớ Micro SD
  • Ghi một biến chuỗi vào thẻ nhớ Micro SD
  • Ghi một mảng ký tự vào thẻ nhớ Micro SD
  • Ghi một mảng byte vào thẻ nhớ Micro SD
/* * Mã Arduino này được phát triển bởi newbiely.vn * Mã Arduino này được cung cấp để sử dụng công khai, không có ràng buộc. * Để xem hướng dẫn chi tiết và sơ đồ kết nối, vui lòng truy cập: * https://newbiely.vn/tutorials/arduino/arduino-write-variable-to-sd-card */ #include <SD.h> #define PIN_SPI_CS 4 File myFile; int myInt = -52; float myFloat = -12.7; String myString = "HELLO"; char myCharArray[] = "ArduinoGetStarted.com"; byte myByteArray[] = {'1', '2', '3', '4', '5'}; void setup() { Serial.begin(9600); if (!SD.begin(PIN_SPI_CS)) { Serial.println(F("SD CARD FAILED, OR NOT PRESENT!")); while (1); // don't do anything more: } Serial.println(F("SD CARD INITIALIZED.")); Serial.println(F("--------------------")); SD.remove("arduino.txt"); // delete the file if existed // create new file by opening file for writing myFile = SD.open("arduino.txt", FILE_WRITE); if (myFile) { myFile.println(myInt); // write int variable to SD card in line myFile.println(myFloat); // write float variable to SD card in line myFile.println(myString); // write String variable to SD card in line myFile.println(myCharArray); // write char array to SD card in line myFile.write(myByteArray, 5); myFile.write("\n"); // new line for (int i = 0; i < 5; i++) { myFile.write(myByteArray[i]); // new line if (i < 4) myFile.write(","); // comma } myFile.write("\n"); // new line myFile.close(); } else { Serial.print(F("SD Card: error on opening file arduino.txt")); } // open file for reading myFile = SD.open("arduino.txt", FILE_READ); if (myFile) { while (myFile.available()) { char ch = myFile.read(); // read characters one by one from Micro SD Card Serial.print(ch); // print the character to Serial Monitor } myFile.close(); } else { Serial.print(F("SD Card: error on opening file arduino.txt")); } } void loop() { }

Hướng dẫn từng bước

  • Đảm bảo thẻ nhớ Micro SD được định dạng FAT16 hoặc FAT32 (tìm trên Google)
  • Sao chép mã ở trên và mở bằng Arduino IDE
  • Nhấp nút Tải lên trên Arduino IDE để tải mã lên Arduino
  • Xem kết quả trên Serial Monitor.
COM6
Send
SD CARD INITIALIZED. -------------------- -52 -12.70 HELLO ArduinoGetStarted.com 12345 1,2,3,4,5
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • Tháo thẻ Micro SD khỏi module thẻ Micro SD
  • Lắp thẻ Micro SD vào đầu đọc thẻ SD USB
  • Kết nối đầu đọc thẻ SD USB với máy tính
  • Mở tập tin arduino.txt trên máy tính của bạn, nó trông như sau
Arduino ghi giá trị của một biến vào thẻ nhớ micro sd.

Arduino - Cách ghi một cặp khóa-giá trị vào một tập tin trên thẻ nhớ microSD

/* * Mã Arduino này được phát triển bởi newbiely.vn * Mã Arduino này được cung cấp để sử dụng công khai, không có ràng buộc. * Để xem hướng dẫn chi tiết và sơ đồ kết nối, vui lòng truy cập: * https://newbiely.vn/tutorials/arduino/arduino-write-variable-to-sd-card */ #include <SD.h> #define PIN_SPI_CS 4 File myFile; int myInt = -52; float myFloat = -12.7; String myString = "HELLO"; char myCharArray[] = "ArduinoGetStarted.com"; byte myByteArray[] = {'1', '2', '3', '4', '5'}; void setup() { Serial.begin(9600); if (!SD.begin(PIN_SPI_CS)) { Serial.println(F("SD CARD FAILED, OR NOT PRESENT!")); while (1); // don't do anything more: } Serial.println(F("SD CARD INITIALIZED.")); Serial.println(F("--------------------")); SD.remove("arduino.txt"); // delete the file if existed // create new file by opening file for writing myFile = SD.open("arduino.txt", FILE_WRITE); if (myFile) { myFile.print("myInt="); // write key to SD card myFile.println(myInt); // write int variable to SD card in line myFile.print("myFloat="); // write key to SD card myFile.println(myFloat); // write float variable to SD card in line myFile.print("myString="); // write key to SD card myFile.println(myString); // write String variable to SD card in line myFile.print("myCharArray="); // write key to SD card myFile.println(myCharArray); // write char array to SD card in line myFile.print("myByteArray="); // write key to SD card myFile.write(myByteArray, 5); myFile.write("\n"); // new line myFile.print("myByteArray2="); // write key to SD card for (int i = 0; i < 5; i++) { myFile.write(myByteArray[i]); // new line if (i < 4) myFile.write(","); // comma } myFile.write("\n"); // new line myFile.close(); } else { Serial.print(F("SD Card: error on opening file arduino.txt")); } // open file for reading myFile = SD.open("arduino.txt", FILE_READ); if (myFile) { while (myFile.available()) { char ch = myFile.read(); // read characters one by one from Micro SD Card Serial.print(ch); // print the character to Serial Monitor } myFile.close(); } else { Serial.print(F("SD Card: error on opening file arduino.txt")); } } void loop() { }

Hướng dẫn từng bước

  • Sao chép mã ở trên và mở bằng Arduino IDE
  • Nhấp vào nút Tải lên trên Arduino IDE để tải mã lên cho Arduino
  • Xem kết quả trên Serial Monitor.
COM6
Send
SD CARD INITIALIZED. -------------------- myInt=-52 myFloat=-12.70 myString=HELLO myCharArray=ArduinoGetStarted.com myByteArray=12345 myByteArray2=1,2,3,4,5
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • Rút thẻ Micro SD khỏi mô-đun thẻ Micro SD
  • Chèn thẻ Micro SD vào một đầu đọc thẻ SD USB
  • Kết nối đầu đọc thẻ SD USB với máy tính
  • Mở tệp arduino.txt trên máy tính của bạn, nó trông như sau
Arduino ghi biến vào thẻ nhớ microsd

Video Tutorial

Việc sản xuất video tốn rất nhiều thời gian. Nếu video hướng dẫn hữu ích cho việc học của bạn, hãy đăng ký kênh YouTube để ủng hộ. Nếu nhu cầu đủ cao, chúng tôi sẽ cố gắng làm thêm nhiều video.

Tài liệu tham khảo hàm