Please help me with this I'm tired of this sd card not intialized error
#include <Keypad.h>
#include <SD.h>
#include <SPI.h>
#include <TMRpcm.h>
#define CS 10
#define SCK 13
#define MOSI 12
#define MISO 11
const int SD_CS_PIN = 10;
const int SPEAKER_PIN = 9;
const byte ROWS = 8;
const byte COLS = 5;
char keys[ROWS][COLS] = {
{'0', '1', '2', '3', '4'},
{'5', '6', '7', '8', '9'},
{'A', 'B', 'C', 'D', 'E'},
{'F', 'G', 'H', 'I', 'J'},
{'K', 'L', 'M', 'N', 'O'},
{'P', 'Q', 'R', 'S', 'T'},
{'U', 'V', 'W', 'X', 'Y'},
{'Z', '.', ',', '?', '!'}
};
byte rowPins[ROWS] = {1, 2, 3, 4, 5, 6, 7, 8};
byte colPins[COLS] = {A0, A1, A2, A3, A4};
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
TMRpcm tmrpcm;
void setup() {
Serial.begin(9600);
pinMode(SPEAKER_PIN, OUTPUT);
pinMode(SCK, OUTPUT);
pinMode(MOSI, OUTPUT);
pinMode(MISO, INPUT);
pinMode(CS, OUTPUT);
SPI.begin();
if (!SD.begin(CS)) {
Serial.println("SD card initialization failed!");
return;
}
tmrpcm.speakerPin = SPEAKER_PIN;
tmrpcm.setVolume(6); // Set volume (0-7)
}
void loop() {
char key = keypad.getKey();
if (key) {
int index = key - 'A';
if (index >= 0 && index < 26) {
// Key is a letter
char fileName[20];
sprintf(fileName, "audio/%c.wav", key);
tmrpcm.play(fileName);
delay(500);
} else if (key >= '0' && key <= '9') {
// Key is a number
char fileName[20];
sprintf(fileName, "audio/%c.wav", key);
tmrpcm.play(fileName);
delay(500);
}
}
}