การเขียนข้อมูลลง 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