1.检查sd卡是否支持arduino,一般情况下只有micro sd卡才能支持arduino;
2.检查sd卡的连接是否正常;
3.检查sd卡的容量是否超过arduino的最大容量,arduino的历森友最大容量一般为2G;
4.检查sd卡是否被格式化为FAT格式;
5.检查arduino是否正确连肢槐春哗接sd卡,比如检查sd卡的物理连接是否正确;
6.检查arduino的程序是否正确,比如检查sd卡的初始化程序是否正确;
7.检查sd卡是否被其他设备正确识别,如果其他设备也无法识别,则可能是sd卡本身的问题。
SD卡体积小,价格便宜,因此在许多工业数据记录和家用电子产品中有越来越多的应用。Arduino可以通过SPI接口与之通信,进行诸如建立文件、删除文件、向文件中添加内容、修改文件等 *** 作,这样采用Arduino配合SD卡可以开发数据记录设备。Arduino与SD卡的简单连接,只需要6只电阻和1张SD卡,通过软件模拟的方式实现SPI接口,Arduino与SD卡连接电路如图2所示。
2.gif
图2 Arduino与SD卡连接电路
由于SD卡的 *** 作电压为3.3 V,而Arduino的逻辑电压为5 V,因此需要用起分压作用的电阻(本文采用了Josh Adams书中的验证性电路),在实际的应用中最好采用分压模块以保证卡和Arduino板的安全。之后在网址http://code.google.com/p/sdfatlib/下载Bill Greiman开发的SdFat.h和SdFatUtil.h头文件和库文件,并安装到Arduino安装目录中的库文件夹中就可以使用了。简化程序如下:
#include
#include
Sd2Card card
SdVolume volume
SdFile root,file
void writeString(SdFile&f,char * str){
Uint8_t n
for(n=0,str[n]n++)
F.write((uint8_t*) str,n)
}
void setup(){
card.init(SPI_HALF_SPEED)
root.openRoot(&volume)
File.open(&root,“testfile.txt”,0_CREAT|0_EXCL|0_WRITE)斗仔庆
File.timestamp(2,2011,11,11,25.12.34.56)
writeString(file,“something you want ”)
File.cose()
}
void loop(){
}
将该程序下载到Arduino主控板内即可向SD卡内建立一个新的文件,并写入“something you want ”字符,当然也可以根据需要写入想要记录的信息。
程序的开头包含了两戚桥个头文件:SdFat.h和SdFatUtil.h。这两个头文件定义了一些 *** 作SD卡必需的类。之后建立4个有关 *** 作SD卡的对象。然后自定义了一个向SD卡内写一个字符串的函数,这个函数需要一个文件的引用和一个字符串作为参数。setup函数是Arduino软件项目中必须有的,做一些运行的初始化工作。这个实例程序由于只是完成简单的写文件 *** 作,因此对文件的写 *** 作在这个函数中完成。函数依次完成了设定SD卡的通信模式为SPI模式、打开卡的根目录、建立文件名为testfile.txt的文本文件、给文件添加时间信息、向文件内写入文件内容、关闭文件。从以上的过程中看,采用Arduino *** 作SD卡上的文件与采用C语言 *** 作PC上的文件十分相似,这也是空握Arduino易用性的体现,再一次验证了采用Arduino开发电子互动产品的方便性。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)