//Write a code to store a data in SPI flash and retrive the data print in UART (Ardino UNO)
#include <SPI.h>
#include <Wire.h>
#include <SD.h>
File dataFile;
char fileName[] = "data.txt";
char Read;
void setup()
{
Serial.begin(9600);
if (!SD.begin(10))
{
return;
}
Serial.println("SD initialization done.");
dataFile = SD.open("data.txt", FILE_WRITE);
if (dataFile)
{
//dataFile.println("Hello, Arduino Uno!");
dataFile.close();
}
}
void loop()
{
char ReceivedArray[10]="";
Serial.println("Enter 5 bytes string");
for(int i = 0; i < 6; i++)
{
while ((Serial.available())==0);
Read = tolower(Serial.read());
Serial.write(Read);
if (Read != '\n')
{
ReceivedArray[i] = Read;
}
}
// Read and print data from the SD card
dataFile = SD.open(fileName,FILE_WRITE);
if (dataFile)
{
// Serial.println("Reading data from SD card:");
Serial.println("Writing data.txt");
dataFile.println(ReceivedArray);
dataFile.close();
Serial.println("Done");
}
else
{
Serial.println("Error");
}
delay(100);
readFile();
delay(100);
if(SD.exists(fileName))
{
SD.remove(fileName);
}
}
void readFile()
{
char a[100];
byte b=0;
if(!SD.exists(fileName))
{
Serial.println("Not exist");
}
Serial.println("Reading data.txt");
dataFile = SD.open(fileName);
while(dataFile.available())
{
char input = dataFile.read();
if(input =='\n')
{
a[b]=0;
Serial.println(a);
b=0;
}
else
{
a[b]=input;
b++;
if(b>sizeof(input))
{
delay(100);
}
}
}
}