// include the SD library:
#include <SPI.h>
#include <SD.h>
//deklarasi variabel menggunakan fungsi SD library:
Sd2Card card; //deklarasi variabel card dg tipe Sd2Card
SdVolume volume; //deklarasi variabel volume dg tipe SdVolume
SdFile root; //deklarasi variabel root dg tip SdFile
const int chipSelect = 4; //deklarasi chipSelect terhubung pd pin 4 pd Arduino
void setup() {
//aktifkan komunikasi serial dan menunggu port dibuka
Serial.begin(9600);
while (!Serial) {
; //menunggu port serial terhubung
}
Serial.print("\nInisialisasi SD-card...");
//kita gunakan kode inisialisasi dari library, karena kita hanya menguji apakah kartunya berfungsi
if (!card.init(SPI_HALF_SPEED, chipSelect)) {
Serial.println("inisialisasi gagal. Check hal berikut:");
Serial.println("* apakah card sudah dimasukkan ke dalam modul ?");
Serial.println("* apakah pengkabelan sudah benar ?");
Serial.println("* apakah pin chipSelect dirubah ?");
while (1);
} else {
Serial.println("Pengkabelan sudah benar & kartu dikenali.");
}
Serial.println(); //cetak pada Serial Monitor tipe kartu
Serial.print("Tipe kartu: ");
switch (card.type()) {
case SD_CARD_TYPE_SD1: //tipe SD1
Serial.println("SD1");
break;
case SD_CARD_TYPE_SD2: //tipe SD2
Serial.println("SD2");
break;
case SD_CARD_TYPE_SDHC: //tipe SDHC
Serial.println("SDHC");
break; //keluar dari blok switch{}
default:
Serial.println("Tidak dikenal");
}
//kita coba membuka 'volume/partition' - seharusnya terbaca FAT16 atau FAT32
if (!volume.init(card)) {
Serial.println("Tdk menemukan FAT16/FAT32.\nPastikan anda telah memformat kartu");
while (1);
}
Serial.print("Clusters: ");
Serial.println(volume.clusterCount()); //cetak jumlah cluster
Serial.print("Jumlah blok per cluster: ");
Serial.println(volume.blocksPerCluster()); //cetak jumlah blok per cluster
Serial.print("Total Blok: "); //cetak total blok
Serial.println(volume.blocksPerCluster() * volume.clusterCount());
Serial.println();
uint32_t volumesize; //cetak tipe dan size dari volume FAT-type pertama
Serial.print("Volume tipeadalah: FAT");
Serial.println(volume.fatType(), DEC);
volumesize = volume.blocksPerCluster(); //cluster adalah kumpulan dari blok
volumesize *= volume.clusterCount(); //ada banyak cluster
volumesize /= 2; //blok Sd-card selalu 512 byte (2 blok = 1KB)
Serial.print("Volume size (Kb): ");
Serial.println(volumesize);
Serial.print("Volume size (Mb): ");
volumesize /= 1024;
Serial.println(volumesize);
Serial.print("Volume size (Gb): ");
Serial.println((float)volumesize / 1024.0);
Serial.println("\nFile ditemukan pd card (nama, tanggal & size dlm byte): ");
root.openRoot(volume);
root.ls(LS_R | LS_DATE | LS_SIZE);//list seluruh file dlm card dengan tanggal & ukuran
}
void loop(void) {
}
uno:A5.2
uno:A4.2
uno:AREF
uno:GND.1
uno:13
uno:12
uno:11
uno:10
uno:9
uno:8
uno:7
uno:6
uno:5
uno:4
uno:3
uno:2
uno:1
uno:0
uno:IOREF
uno:RESET
uno:3.3V
uno:5V
uno:GND.2
uno:GND.3
uno:VIN
uno:A0
uno:A1
uno:A2
uno:A3
uno:A4
uno:A5