/*
EEPROM Write
Stores random values into the EEPROM.
These values will stay in the EEPROM when the board is
turned off and may be retrieved later by another sketch.
*/
#include "EEPROM.h"
#include "SD.h"
#include <SPI.h>
#include "FS.h"
SPIClass mySPI;
// the current address in the EEPROM (i.e. which byte
// we're going to write to next)
int addr = 5;
const int chipSelect =5;
#define EEPROM_SIZE 20
File myFile;
void setup()
{
Serial.begin(115200);
Serial.println("Initializing SD card...");
if (!SD.begin(chipSelect))
{
Serial.println("SD card initialization failed!");
return;
}
Serial.println("SD card initialized successfully.");
readAndSaveToSD();
}
void readAndSaveToSD()
{
// Mở tệp để ghi dữ liệu
myFile = SD.open("test.txt", FILE_WRITE);
if (!myFile)
{
Serial.println("Error opening data file.");
return;
}
/*if (!EEPROM.begin(EEPROM_SIZE))
{
Serial.println("failed to initialise EEPROM"); delay(1000000);
}
Serial.println(" bytes read from Flash . Values are:");
for (int i = 0; i < EEPROM_SIZE; i++)
{
Serial.print(byte(EEPROM.read(i))); Serial.print(" ");
}
Serial.println();
Serial.println("writing random n. in memory");
}*/
}
void loop()
{
// need to divide by 4 because analog inputs range from
// 0 to 1023 and each byte of the EEPROM can only hold a
// value from 0 to 255.
// int val = analogRead(10) / 4;
int val = byte(random(10020));
// write the value to the appropriate byte of the EEPROM.
// these values will remain there when the board is
// turned off.
EEPROM.write(addr, val);
Serial.print(val); Serial.print(" ");
// advance to the next address. there are 512 bytes in
// the EEPROM, so go back to 0 when we hit 512.
// save all changes to the flash.
addr = addr + 1;
if (addr == EEPROM_SIZE)
{
Serial.println();
addr = 5;
EEPROM.commit();
Serial.print(EEPROM_SIZE);
Serial.println(" bytes written on Flash . Values are:");
for (int i = 0; i < EEPROM_SIZE; i++)
{
byte value = EEPROM.read(i);
myFile.print(val);
myFile.println("test.txt:");
}
while (myFile.available()) {
Serial.write(myFile.read());
}
myFile.close();
Serial.println("Data saved to SD card.");
}
delay(1000);
}