【Makeblock使用】SD信息读取-Arduino中文社区 - Powered by Discuz! Archiver

suoma 发表于 2016-8-4 11:05

【Makeblock使用】SD信息读取

最近mega pi不在身边,用uno代替,后面会讲一下接线
程序使用arduino库中的SD文件夹中的cardinfo例程,主要实现SD信息读取,卡内文件获取。SD使用市面常见的小模块,自带电平转换电路,芯片AMS1117,如果是51单片机控制SD,必须加如下电平转换电路

实物连接

下载程序,串口输出如下,

如果是mega pi,接线如下
mega2560芯片                              
                                          
CS/PCINT0                53      數字I/O
SCK/PCINT1            52      數字I/O
MOSI/PCINT2            51       數字I/O
MISO/PCINT3            50      數字I/O
下面讲一下程序
程序流程:
初始化--打开串口-判断串口是否有数据-有数据则判断SD是否存在-判断SD卡类型-判断SD文件系统-输出SD容量-判断是否有文件,有则输出文件列表

关于CS引脚,如果是arduino ethernet或一般micro SD模块,程序默认D4,但要注意adafruit和SParkfun这两家的SD模块,需要变换,如下
// Arduino Ethernet shield: pin 4
// Adafruit SD shields and modules: pin 10
// Sparkfun SD shield: pin 8
注意,ethernet扩展板的pin4默认输出,即使不用这个脚,10脚(mega pin53)都要设置为输出,否则SD库无法使用,说明如下
// On the Ethernet Shield, CS is pin 4. It's set as an output by default.
// Note that even if it's not used as the CS pin, the hardware SS pin
// (10 on most Arduino boards, 53 on the Mega) must be left as an output
// or the SD library functions will not work.
程序中确实有这句,虽然我们没有用D10
pinMode(10, OUTPUT);
SD卡类型有SD1、SD2、SDHC,大多数SD模块支持的SD类型容量是2G以下,SDHC的容量是32G以下,   

页: [1]
查看完整版本: 【Makeblock使用】SD信息读取