The Arduino Ethernet Shield I bought last week also has a MicroSD card slot on it. It allows the Arduino to read or write files on the memory card and this is particularly useful for data logging purposes. Yes, you can use the EEPROM on the Arduino but it’s only limited to 1024 bytes and it’s not removable.
This shield only supports MicroSD cards but other 3rd party shields support normal SD cards as well. And with the new Library, SDHC and MicroSDHC cards are supported too
The card slot on the official shield is spring loaded, which means push to insert and also push to eject.
I’m using a standard microSD card. I believe it’s Class 4 judging by the write speeds.
To test it out, I loaded the SD CardInfo sample sketch and on my first try, it didn’t work. Later I found out that I also need to provide external power higher than 5 Volts. I used a 9V battery. I suspect that it’s the 3.3V voltage regulator. All voltage regulators have a minimum voltage input rating, they are usually around 2 Volts higher than its’ regulated voltage.
After applying sufficient voltage, this came out.
Oh yeah, the SD Library only supports FAT filesystem. Make sure you’ve formatted the card before putting it in the Arduino.
To test out the capability of the SD Library, I made up a simple circuit that consists of a push button and the Arduino will log how many times the button is pressed.
Here’s the code.
And after a few pushes of the button, I read the card with my computer.
The log file.
The abilities of an Arduino are endless. The question is, is there anything that the Arduino can’t do?