Hi im new to using arduino and im have a problem with adding sd card logging to my app.
So far everything will compile but i get an empty file on the sd card.
i am useing an Arduino MEGA 2560 a wiznet 5100 for the sd card and for the rfid im useing a parallax rfid reader Serial.
i'm completely stuck any help will be greatly appreciated.
hear is the code im useing
#include <SD.h>
const int chipSelect = 4;
int val = 0;
char code[10];
int bytesread = 0;
void setup() {
Serial.begin(2400); // RFID reader SOUT pin connected to Serial RX pin at 2400bps
Serial.print("Initializing SD card...");
// make sure that the default chip select pin is set to
// output, even if you don't use it:
pinMode(53, OUTPUT);
// see if the card is present and can be initialized:
if (!SD.begin(chipSelect)) {
Serial.println("Card failed, or not present");
// don't do anything more:
return;
}
Serial.println("card initialized.");
pinMode(2,OUTPUT); // Set digital pin 2 as OUTPUT to connect it to the RFID /ENABLE pin
digitalWrite(2, LOW); // Activate the RFID reader
}
void loop() {
File dataFile = SD.open("datalog.txt", FILE_WRITE);
if(Serial.available() > 0) { // if data available from reader
if((val = Serial.read()) == 10) { // check for header
bytesread = 0;
while(bytesread<10) { // read 10 digit code
if( Serial.available() > 0) {
val = Serial.read();
if((val == 10)||(val == 13)) { // if header or stop bytes before the 10 digit reading
break; // stop reading
}
code[bytesread] = val; // add the digit
bytesread++; // ready to read next digit
}
}
if(bytesread == 10) { // if 10 digit read is complete
Serial.print("TAG code is: "); // possibly a good TAG
Serial.println(code); // print the TAG code
while (dataFile) {
dataFile.println(code);
dataFile.close();}
}
bytesread = 0;
delay(500); // wait for a second
}
}
}