实验效果
本次要实现的是在SD卡上新建一个文本文件并写入一些数据,例如:凌顺实验室
最后的效果如下:
在程序刚上传好运行的时候,卡还没有放进去SD模块里。所以显示初始化失败。
接着,把SD卡放进SD模块的插卡口,按一下重启键,
就会出现初始化成功,并写入完成。
问题与注意
如果不断的按重启键,会不断的在LSLAB.txt 的文本文件里不断的新添加数据
BOM表
Arduiino Uno *1
SD卡模块 *1
SD卡 *1
调线若干
接线
Arduino Uno <-----> Sd Card 模块
GND <-----> GND
5V <-----> +5
CS <-----> Pin 4
MOSI <-----> Pin 11
SCK <-----> Pin 13
MISO <-----> Pin 12
详细请参照 文章 Arduino Uno SD卡模块 (一)获取SDcard的信息
开源程序
这个实验还是需要下载库
下载地址: https://github.com/greiman/SdFat
具体如何操作,再次说一下,下载解压到Arduino IDE的安装路径里的库文件夹libraries
库里提供了很多SD卡模块示例程序,可以多多参考
//加载SPI库和SD库
#include <SPI.h>
#include <SD.h>
//声明文件对象
File myFile;
void setup()
{
Serial.begin(9600); //设置波特率
while (!Serial)
{
; // wait for serial port to connect. Needed for native USB port only
//等待串行端口连接。 仅适用于本机USB端口
}
Serial.print("Initializing SD card...");//正在初始化
//如果为非则初始化失败
if (!SD.begin(4)) {
Serial.println("initialization failed!");
return;
}
Serial.println("initialization done.");//初始化结束
//打开文件
myFile = SD.open("LSLAB.txt", FILE_WRITE);//打开文件LSLAB.txt,若无则自动创建,但必须加入FILE_WRITE函数
if (myFile) {//如果文件能正确打开,则做一下动作
Serial.print("Writing to...");//串口显示正在写入中。。。
myFile.println("凌顺实验室");//写入数据
myFile.close();//关闭文件
Serial.println("done.");
} else {
// if the file didn't open, print an error:
Serial.println("error opening test.txt");
}
}
void loop() {
}
程序实现思路讲解
1.
//加载SPI库和SD库
#include <SPI.h>
#include <SD.h>
File myFile;