Arduino - Micro SD Card
In this tutorial, we are going to learn how to use the Micro SD Card with Arduino. In detail, we will learn:
- Arduino - How to open a file on Micro SD Card and create if not existed
- Arduino - How to write data to a file on Micro SD Card
- Arduino - How to read a file on Micro SD Card character-by-character
- Arduino - How to read a file on Micro SD Card line-by-line
- Arduino - How to append content to an exsiting file on Micro SD Card
- Arduino - How to overwrite a file on Micro SD Card
Hardware Required
Or you can buy the following sensor kits:
1 | × | DIYables Sensor Kit (30 sensors/displays) | |
1 | × | DIYables Sensor Kit (18 sensors/displays) |
About Micro SD Card Module
The Micro SD Card Module can interface with Arduino and it can carry a Micro SD Card. In another word, the Micro SD Card Module is a bridge between Arduino and Micro SD Card
Pinout
Micro SD Card Module includes 6 pins:
- VCC pin: connect to the Arduino's 5V pin.
- GND pin: connect this pin to the Arduino's GND.
- MISO pin: (Master In Slave Out) connect this pin to the Arduino's MISO pin.
- MOSI pin: (Master Out Slave In) connect this pin to the Arduino's MOSI pin.
- SCK pin: connect this pin to the Arduino's SCK pin.
- SS pin: (Slave Select) connect this pin to the pin specified in Arduino code as a SS pin.
Preparation
- Connect the Micro SD Card to the PC via USB 3.0 SD Card Reader
- Make sure that the Micro SD Card is formatted FAT16 or FAT32 (Google for it)
Wiring Diagram
This image is created using Fritzing. Click to enlarge image
※ NOTE THAT:
If you use an Ethernet shield or any shield that has a Micro SD Card Holder, you do not need to use the Micro SD Card Module. You just need to insert the Micro SD Card to the Micro SD Card Holder on the shield.
Arduino - How to open a file on Micro SD Card and create if not existed
Arduino Code
Quick Steps
- Insert the Micro SD Card to the Micro SD Card module
- Do the wiring between the Micro SD Card module and Arduino as the above wiring diagram
- Connect Arduino to PC via USB cable
- Open Arduino IDE, select the right board and port
- Open Serial On Arduino IDE
- Copy the below code and paste it to Arduino IDE
- Click Upload button on Arduino IDE to upload code to Arduino
- The result on Serial Monitor for the first run
- The result on Serial Monitor for the next runs
※ NOTE THAT:
You may NOT see the output on Serial Monitor for the first run of your first upload is done before opening Serial Monitor.
- Detach the Micro SD Card from the module
- Insert the Micro SD Card to an USB SD Card reader
- Connect the USB SD Card reader to the PC
- Check if the file exists or not
Arduino - How to write/read data to/from a file on Micro SD Card
The below code does:
- Write data to a file
- Read the content of the a file character-by-character and print it to Serial Monitor
- The Serial Monitor shown the content of the file
※ NOTE THAT:
The data will be appended to the end of file by default. If you reboot Arduino with above code, the text will be appended to the file again ⇒ the Serial Monitor will shows more lines as below:
You can also detach the Micro SD Card from the module, and open it on your PC to check the content (USB SD Card reader is needed)
Arduino - How to read a file on Micro SD Card line-by-line
- The result on Serial Monitor
※ NOTE THAT:
You may see more lines on Serial Monitor if the content of the file is not deleted before.
Arduino - How to overwrite a file on Micro SD Card
By default, the content will append to the end of the file. The simplest way to overwrite a file is: delete the exsiting file and create new one with the same name
- The result on Serial Monitor
- Reboot Arduino
- Check if the content of the file on Serial Monitor is appended or not.
You can also detach the Micro SD Card from the module, and open it on your PC to check the content (USB SD Card reader is needed)
Video Tutorial
We are considering to make the video tutorials. If you think the video tutorials are essential, please subscribe to our YouTube channel to give us motivation for making the videos.