#include <SPI.h>
#include <SD.h>
const int chipSelect = 10;
String userInput = "";
void setup() {
Serial.begin(9600);
while (!Serial) {
; // Wait for Serial Monitor
}
Serial.println("Initializing SD card...");
if (!SD.begin(chipSelect)) {
Serial.println("Card failed, or not present.");
return;
}
Serial.println("Card initialized.");
Serial.println("Enter text to save to SD card:");
}
void loop() {
// Wait for user input
if (Serial.available()) {
userInput = Serial.readStringUntil('\n');
userInput.trim(); // Remove leading/trailing whitespace
if (userInput.length() > 0) {
// Append input to SD card file
File dataFile = SD.open("log.txt", FILE_WRITE);
if (dataFile) {
dataFile.println(userInput);
dataFile.close();
Serial.println("Data saved to log.txt");
} else {
Serial.println("Error opening log.txt for writing.");
}
// Read and display entire file content
dataFile = SD.open("log.txt");
if (dataFile) {
Serial.println("Contents of log.txt:");
while (dataFile.available()) {
Serial.write(dataFile.read());
}
dataFile.close();
} else {
Serial.println("Error opening log.txt for reading.");
}
Serial.println("\nEnter more text to save:");
}
}
}
/*
#include <SPI.h>
#include <SD.h>
const int chipSelect = 10; // CS pin for SD card module
void setup() {
Serial.begin(9600);
while (!Serial) {
; // Wait for Serial Monitor to open
}
Serial.println("Initializing SD card...");
if (!SD.begin(chipSelect)) {
Serial.println("Card failed, or not present.");
return;
}
Serial.println("Card initialized.");
// Write to file
File dataFile = SD.open("test.txt", FILE_WRITE);
if (dataFile) {
dataFile.println("Hello from Wokwi!");
dataFile.close();
Serial.println("Data written to test.txt");
} else {
Serial.println("Error opening test.txt for writing.");
}
// Read from file
dataFile = SD.open("test.txt");
if (dataFile) {
Serial.println("Reading test.txt:");
while (dataFile.available()) {
Serial.write(dataFile.read());
}
dataFile.close();
} else {
Serial.println("Error opening test.txt for reading.");
}
}
void loop() {
// Nothing here
}
*/