Arduino控制SD卡(一)

学习如何使用Arduino读写SD卡。SD卡读卡器是在淘宝上买的,下图右侧的SD卡是行车记录仪上面的。里面有文件夹和视频文件。
Arduino控制SD卡(一) - gc_2299 - gc_2299的博客
 
Arduino开发平台中自带了SD卡的示例程序,如下图所示:
Arduino控制SD卡(一) - gc_2299 - gc_2299的博客

总共六个示例程序。首先根据示例程序中的注释进行接图:其中的CLK在我买的读卡器上没有这个引脚,我的上面的引脚是SCK

* SD card attached to SPI bus as follows:
** MOSI - pin 11,连接到arduino的MOSI口,在UNO及兼容板上为11号引脚
** MISO - pin 12,连接到arduino的MISO口,在UNO及兼容板上为12号引脚
** CLK - pin 13,连接到arduino的SCLK口,在UNO及兼容板上为13号引脚
** CS - pin 4,TF卡片选,例程中需连接到4号脚(在没有使用其他SPI设备时可不连接)

接线示意图和实际接线图如下:
Arduino控制SD卡(一) - gc_2299 - gc_2299的博客
 
Arduino控制SD卡(一) - gc_2299 - gc_2299的博客
 
下面依次运行Arduino中的例子,显示运行结果:
第一个示例:CardInfo,这个示例是获取SD卡基本信息和SD卡上的文件夹和文件信息:


Initializing SD card...Wiring is correct and a card is present.

Card type: SDHC

Volume type is FAT32

Volume size (bytes): 1647312896
Volume size (Kbytes): 1608704
Volume size (Mbytes): 1571

Files found on the card (name, date and size in bytes):
NORMAL/ 2015-01-01 00:00:02
2016-0~1.MOV 2016-09-23 14:32:28 62947328
2016-0~2.MOV 2016-09-23 18:13:28 755269632
2016-0~3.MOV 2016-09-25 13:37:38 377618432
2016-0~4.MOV 2016-09-25 14:03:14 566460416
2016-0~5.MOV 2016-09-25 17:20:24 755269632
2016-0~6.MOV 2016-09-25 17:21:22 146866176
2016-0~7.MOV 2016-09-28 12:58:28 755269632
2016-0~8.MOV 2016-09-28 13:03:30 21004288
2016-0~9.MOV 2016-09-28 14:29:54 755269632
2016-~10.MOV 2016-09-28 14:30:06 41975808
2016-~11.MOV 2016-09-28 18:32:38 755269632
2016-~12.MOV 2016-09-28 18:36:54 650346496
2016-~13.MOV 2016-09-29 07:41:16 755269632
2016-~14.MOV 2016-09-29 07:50:26 629374976
2016-~15.MOV 2016-09-29 12:05:48 755269632
2016-~16.MOV 2016-09-29 12:20:14 188841984
2016-~17.MOV 2016-09-29 14:29:54 755269632
2016-~18.MOV 2016-09-29 14:34:54 755269632
2016-~19.MOV 2016-09-29 14:36:52 293732352
2016-~20.MOV 2016-09-30 12:07:58 755269632
2016-~21.MOV 2016-09-30 12:10:02 314703872
2016-~22.MOV 2016-09-30 14:26:52 272728064
2016-~23.MOV 2016-09-30 14:37:06 503513088
2016-~24.MOV 2016-09-22 16:45:36 755269632
2016-~25.MOV 2016-09-22 16:49:50 650346496
2016-~26.MOV 2016-09-23 07:50:40 755269632
2016-~27.MOV 2016-09-23 07:55:40 755269632
2016-~28.MOV 2016-09-23 08:00:40 755269632
2016-~29.MOV 2016-09-23 08:05:36 755269632
2016-~30.MOV 2016-09-23 12:11:30 755269632
2016-~31.MOV 2016-09-23 12:15:34 629374976
2016-~32.MOV 2016-09-23 12:39:40 755269632
2016-~33.MOV 2016-09-23 12:43:04 524484608
2016-~34.MOV 2016-09-23 14:32:12 755269632
2016-~35.MOV 2016-09-23 18:17:08 566460416
2016-~36.MOV 2016-09-25 13:35:14 755269632
2016-~37.MOV 2016-09-28 12:45:40 524484608
2016-~38.MOV 2016-09-28 13:03:28 755269632
2016-~39.MOV 2016-09-29 07:46:16 755269632
2016-~40.MOV 2016-09-29 12:09:48 608403456
2016-~41.MOV 2016-09-29 12:19:02 755269632
2016-~43.MOV 2016-09-23 14:27:12 755269632
2016-~44.MOV 2016-09-23 18:08:28 755269632
2016-~45.MOV 2016-09-25 17:15:24 755269632
2016-~46.MOV 2016-09-28 12:42:18 755269632
2016-~47.MOV 2016-09-28 18:44:08 713293824
2016-~48.MOV 2016-09-30 12:02:58 755269632
2016-~49.MOV 2016-09-28 14:24:54 755269632
2016-~50.MOV 2016-09-30 14:33:48 755269632
EVENT/ 2015-01-01 00:00:02
2016-0~1.MOV 2016-07-12 12:00:32 314703872
2016-0~2.MOV 2016-08-07 14:19:52 335675392
2016-0~3.MOV 2016-09-30 14:28:48 335675392
SYSTEM~1/ 2016-03-19 00:17:42
INDEXE~1 2016-03-19 00:17:44 76


第二个示例:DataLogger,这个示例是读模拟引脚0-2的值并记录到SD卡上。

Initializing SD card...card initialized.
538,540,434
470,498,466
463,475,465
455,458,457
446,443,444
438,435,434
433,430,429
427,425,424
419,416,416
409,405,406
398,395,395
389,384,385
379,374,374
371,367,366
367,364,362

第三个示例:DumpFile,这个示例是将SD卡上datalog.txt文件中的内容读出来并发送到串口

Initializing SD card...card initialized.
379,348,327
340,335,328
330,328,325
324,322,320
318,316,314
312,309,308
303,298,298
297,293,292
290,287,287
287,285,284
282,279,279
278,276,275
275,273,272

第四个示例:Files,这个示例是在SD卡上先创建然后删除文件example.txt

Initializing SD card...initialization done.
example.txt doesn't exist.
Creating example.txt...
example.txt exists.
Removing example.txt...
example.txt doesn't exist.

第五个示例:listfiles,该示例是递归读取SD卡上的文件夹,并列出文件夹中的文件和子文件夹信息

Initializing SD card...initialization done.
NORMAL/
2016-0~1.MOV 62947328
2016-0~2.MOV 755269632
2016-0~3.MOV 377618432
2016-0~4.MOV 566460416
2016-0~5.MOV 755269632
2016-0~6.MOV 146866176
2016-0~7.MOV 755269632
2016-0~8.MOV 21004288
2016-0~9.MOV 755269632
2016-~10.MOV 41975808
2016-~11.MOV 755269632
2016-~12.MOV 650346496
2016-~13.MOV 755269632
2016-~14.MOV 629374976
2016-~15.MOV 755269632
2016-~16.MOV 188841984
2016-~17.MOV 755269632
2016-~18.MOV 755269632
2016-~19.MOV 293732352
2016-~20.MOV 755269632
2016-~21.MOV 314703872
2016-~22.MOV 272728064
2016-~23.MOV 503513088
2016-~24.MOV 755269632
2016-~25.MOV 650346496
2016-~26.MOV 755269632
2016-~27.MOV 755269632
2016-~28.MOV 755269632
2016-~29.MOV 755269632
2016-~30.MOV 755269632
2016-~31.MOV 629374976
2016-~32.MOV 755269632
2016-~33.MOV 524484608
2016-~34.MOV 755269632
2016-~35.MOV 566460416
2016-~36.MOV 755269632
2016-~37.MOV 524484608
2016-~38.MOV 755269632
2016-~39.MOV 755269632
2016-~40.MOV 608403456
2016-~41.MOV 755269632
2016-~43.MOV 755269632
2016-~44.MOV 755269632
2016-~45.MOV 755269632
2016-~46.MOV 755269632
2016-~47.MOV 713293824
2016-~48.MOV 755269632
2016-~49.MOV 755269632
2016-~50.MOV 755269632
EVENT/
2016-0~1.MOV 314703872
2016-0~2.MOV 335675392
2016-0~3.MOV 335675392
DATALOG.TXT 21944
SYSTEM~1/
INDEXE~1 76
done!

第六个示例:ReadWrite,这个示例是在SD卡上写、读文件test.txt

Initializing SD card...initialization done.
Writing to test.txt...done.
test.txt:
testing 1, 2, 3.

这六个示例已经把Arduino和SD卡的基本操作都包括了。
下一步计划下一个C#的上位机程序,该程序可以通过Arduino对SD卡进行基本的读、写、删等控制。

 参考文献:
1)http://www.arduino.cn/thread-2550-1-1.html
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值