การเขียนข้อมูลลง SD Card ด้วยบอร์ด LARB32

บอร์ด LARB32 ได้ออกแบบช่องต่อใช้งานอุปกรณ์ต่อพ่วงที่สื่อสารแบบ SPI ไว้ 2 ชุดได้แก่

  1. ช่องต่อคอนเนคเตอร์แบบ IDC 7×2 Pin สำหรับต่อจอแสดงผลแบบ TFT รองรับการใช้งานจอสัมผัส สามารถเข้าไปดูบทความได้ที่ การใช้งานจอ TFT Touch Screen บน ESP32 ด้วยบอร์ด LARB32
  2. ช่องต่อคอนเนคเตอร์แบบ JST XH 2.54 7 Pin สำหรับต่ออุปกรณ์ต่ออื่นๆ เช่น SD Card และ RFID 

โดยมีขาเชื่อมต่อใช้งานดังนี้

Pin

GPIO

คำอธิบาย

3V3

–

ไฟเลี้ยงวงจร 3.3 โวลต์

RST

GPIO4

ขารีเซ็ตสำหรับบางอุปกรณ์

GND

–

Ground

MISO

GPIO19

ส่งข้อมูลจาก Slave ไปยัง Master

MOSI

GPIO23

ส่งข้อมูลจาก Master ไปยัง Slave

SCK

GPIO18

สัญญาณนาฬิกา

CS3

GPIO12

CS ของอุปกรณ์

รุ่นของโมดูล SD Card ที่มีวางขาย

  1. โมดูลอ่าน SD Card แบบใหญ่ จากการทดลองเชื่อมต่อแล้วใช้งานไม่ได้ ❌ไม่แนะนำให้ใช้
  2. โมดูลอ่าน Micro SD Card ขนาดกลาง มีวงจรลดแรงดันสามารถใช้งานได้แต่ช่องไฟเลี้ยงของโมดูลต้องการไฟ 5V อาจต้องต่อไฟเลี้ยงแยกให้โมดูล ❌ถ้าไม่มีทางเลือกก็ใช้ได้แต่ไม่แนะนำให้ใช้
  3. โมดูลอ่าน Micro SD Card ขนาดเล็ก ใช้ไฟเลี้ยง 3.3 โวลต์ ✔️สามารถต่อใช้งานได้ปกติ

อุปกรณ์ที่ใช้มีดังนี้

  1. บอร์ด LARB32
  2. สายเชื่อมต่อพอร์ต SPI
  3. โมดูล Micro SD Card
  4. เม็มโมรี่การ์ด

ตัวอย่างโค้ดที่ใช้งานได้

#include <SPI.h>
#include <SD.h>

#define SD_CS 12  // ขา CS สำหรับ SD card

void setup() {
  Serial.begin(115200);
  delay(1000);  // รอให้ Serial พร้อม

  // เริ่มต้น SPI ด้วยขาที่กำหนด
  SPI.begin(18, 19, 23, SD_CS);  // SCK, MISO, MOSI, SS

  Serial.print("กำลังเริ่มต้น SD card...");

  if (!SD.begin(SD_CS)) {
    Serial.println("ไม่สามารถเริ่มต้น SD card ได้!");
    return;
  }
  Serial.println("SD card พร้อมใช้งาน");

  // เปิดไฟล์เพื่อเขียน (จะสร้างใหม่หากไม่มีไฟล์เดิม)
  File file = SD.open("/note.txt", FILE_WRITE);

  if (file) {
    file.println("สวัสดีจาก ESP32!");
    file.close();
    Serial.println("เขียนข้อมูลสำเร็จลง note.txt");
  } else {
    Serial.println("ไม่สามารถเปิดไฟล์ note.txt เพื่อเขียนได้");
  }
}

void loop() {
  // ไม่ต้องทำอะไรใน loop
}
Facebook Comments