Menyimpan Data ke SD Card menggunakan Modul Sd card dengan Arduino Uno

Arduino uno memiliki kemampuan untuk berkomunikasi dengan modul SD card, yang memudahkan pengguna untuk menyimpan dan membaca data pada kartu memori. Artikel ini memberikan panduan praktis untuk menggunakan modul SD card dengan Arduino, termasuk cara menulis dan membaca file dari kartu SD.

Komponen yang Dibutuhkan

  1. Arduino Uno
    Mikrokontroler utama untuk berkomunikasi dengan modul SD card.
  2. Modul SD Card
    Modul yang mendukung komunikasi SPI untuk membaca dan menulis data ke kartu SD.
  3. MicroSD Card
    Kartu memori dengan format FAT32.
  4. Kabel jumper
    Untuk koneksi antar perangkat.
  5. Power supply
    Sumber daya untuk Arduino.

Rangkaian

Hubungkan modul SD card ke Arduino sesuai konfigurasi SPI berikut:

Pin SD CardArduinoKeterangan
VCC5VSumber daya untuk modul
GNDGNDGround
CSGPIO 10Chip Select (CS)
SCKGPIO 13Serial Clock (SCLK)
MOSIGPIO 11Master Out Slave In (MOSI)
MISOGPIO 12Master In Slave Out (MISO)

Kode Program

Berikut adalah contoh kode untuk menulis dan membaca data pada file di SD card:

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

const int SCK_PIN = 13;    // Pin SCK (Serial Clock) untuk SPI
const int MOSI_PIN = 11;   // Pin MOSI (Master Out Slave In) untuk SPI
const int MISO_PIN = 12;   // Pin MISO (Master In Slave Out) untuk SPI
const int CS_PIN = 10;     // Pin CS (Chip Select) untuk SD card
const char *filename = "/data.txt";  // Nama file untuk dibaca/tulis

void setup() {
  Serial.begin(115200);

  // Menampilkan pin SPI yang digunakan
  Serial.print("SCK Pin: ");
  Serial.println(SCK_PIN);
  Serial.print("MOSI Pin: ");
  Serial.println(MOSI_PIN);
  Serial.print("MISO Pin: ");
  Serial.println(MISO_PIN);
  Serial.print("CS Pin: ");
  Serial.println(CS_PIN);

  // Inisialisasi SD card
  if (!SD.begin(CS_PIN)) {
    Serial.println("SD card Initialization failed!");
    return;
  }

  Serial.println("SD card Initialization success!");
  saveDataToFile();
  readDataFromFile();
}

void loop() {
  // Tidak ada yang perlu dilakukan di dalam loop
}

void saveDataToFile() {
  // Membuka file untuk penulisan
  File file = SD.open(filename, FILE_WRITE);

  if (file) {
    // Menulis data ke file
    file.println("Hello, this is a sample data!");
    file.close();
    Serial.println("Data saved to file successfully.");
  } else {
    Serial.println("Failed to open file for writing.");
  }
}

void readDataFromFile() {
  // Membuka file untuk membaca
  File file = SD.open(filename);

  if (file) {
    // Membaca data dari file dan menampilkannya di Serial Monitor
    Serial.println("Reading data from file:");
    while (file.available()) {
      Serial.write(file.read());
    }
    file.close();
  } else {
    Serial.println("Failed to open file for reading.");
  }
}

Penjelasan Kode

  1. Inisialisasi SPI dan SD Card
    • SPI.begin(SCLK_PIN, MISO_PIN, MOSI_PIN, CS_PIN) digunakan untuk mengatur komunikasi SPI dengan pin yang sesuai.
    • SD.begin(CS_PIN) memulai komunikasi dengan SD card. Jika inisialisasi gagal, pesan kesalahan akan ditampilkan.
  2. Menulis Data ke File
    • File file = SD.open(filename, FILE_WRITE) membuka file dengan nama data.txt untuk penulisan.
    • file.println("Hello, this is a sample data!") menulis data ke file.
  3. Membaca Data dari File
    • File file = SD.open(filename) membuka file untuk membaca.
    • file.read() membaca data dari file byte demi byte, kemudian ditampilkan di Serial Monitor.
  4. File Path
    • Nama file yang digunakan, seperti "/data.txt", harus dimulai dengan / karena itu adalah konvensi dalam sistem file Arduino.

Kalau ingin menghubungi lebih lanjut bisa hubungi nomor dibawah:

By Ilham

Mau Konsultasi & Diskusi ?