การเขียนข้อมูลลง SD Card ด้วยบอร์ด LARB32
บอร์ด LARB32 ได้ออกแบบช่องต่อใช้งานอุปกรณ์ต่อพ่วงที่สื่อสารแบบ SPI ไว้ 2 ชุดได้แก่
- ช่องต่อคอนเนคเตอร์แบบ IDC 7×2 Pin สำหรับต่อจอแสดงผลแบบ TFT รองรับการใช้งานจอสัมผัส สามารถเข้าไปดูบทความได้ที่ การใช้งานจอ TFT Touch Screen บน ESP32 ด้วยบอร์ด LARB32
- ช่องต่อคอนเนคเตอร์แบบ 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 ที่มีวางขาย
- โมดูลอ่าน SD Card แบบใหญ่ จากการทดลองเชื่อมต่อแล้วใช้งานไม่ได้ ❌ไม่แนะนำให้ใช้
- โมดูลอ่าน Micro SD Card ขนาดกลาง มีวงจรลดแรงดันสามารถใช้งานได้แต่ช่องไฟเลี้ยงของโมดูลต้องการไฟ 5V อาจต้องต่อไฟเลี้ยงแยกให้โมดูล ❌ถ้าไม่มีทางเลือกก็ใช้ได้แต่ไม่แนะนำให้ใช้
- โมดูลอ่าน Micro SD Card ขนาดเล็ก ใช้ไฟเลี้ยง 3.3 โวลต์ ✔️สามารถต่อใช้งานได้ปกติ
อุปกรณ์ที่ใช้มีดังนี้
ตัวอย่างโค้ดที่ใช้งานได้
#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