Arduino – SD库

Arduino-SD库材料建造:Dapenson

SD库

SD库简介
快乐飞艇开奖网:Arduino向SD卡读写数据
快乐飞艇开奖网:Arduino读取SD卡根目次内容
快乐飞艇开奖网:Arduino在SD卡上建立和删除文件
SD库函数

SD库简介

SD库实现了Arduino对SD卡的读取和写入。它基于William Greiman的停止开辟。SD库在规范SD卡和SDHC卡上撑持FAT16FAT32文件体系情势。

利用SD库中函数里参数能够包罗以正斜杠/分开的途径,比方" directory / filename.txt"。因为任务目次一直是SD卡的根目次,是以不管文件名是不是包罗斜杠,其称号都指向统一文件(比方," / file.txt"同等于" file.txt")。从1.0版起头,SD库撑持翻开多个文件。

开辟板与SD卡之间的通信利用SPI,注重:
必须毗连SS引脚来挑选SD卡。在UNO上,SS默许是为引脚D10,在MEGA2560上SS默许为引脚53,
或着您也能够在SD.begin()函数中指定一个SS引脚并与之毗连。请注重,在您自界说了SS引脚今后,请设置该引脚为输入情势,不然SD库没法一般任务(倡议初学者按照太极创客供给的电路连线图停止毗连)

1 硬件须要

SD卡读写模块(SPI)

SD卡读取模块 Arduino SD教程
SD卡读取模块

经常利用的SD卡读写模块按照SD卡和TF卡可分为以上两种,

一种是上图左侧的模块( MicroSD Card Adapter), 它是 Micro sd卡读写模块,经由过程文件体系及SPI接口驱动
法式单片机体系便可实现 Microsd卡内的文件停止读写。 Arduino用户可间接利用 Arduino IDE自带的SD卡法式库便可实现卡的初始化和读写

模块特色
1. 撑持 Micro sd卡、 Micro soho卡(高速卡)
2. 板载电平转换电路,即接口电平可为5V或3.3V
3. 供电电源为45V~5.5V,板载3.3V稳压电路
4. 通信接口为规范SPI接口
5. 4个M2螺丝定位孔,便于装置

节制接口:共6个引脚(GND、VCC、MOSI、MISO、SCK、CS)
GND为地,VCC为供电电源,MOSI、MISO、SCK为SPI总线
CS为片选旌旗灯号脚;

详细参数:

SD卡读写模块A详细参数 Arduino SD卡读写模块 太极创客
SD卡读写模块A详细参数

别的一种是上图右侧的模块( SD Card Module), 它是 SD卡读写模块,一样的也是经由过程文件体系及SPI接口驱动
法式单片机体系便可实现SD卡内的文件停止读写。 是以摆布两个版本的模块固然尺寸和撑持的卡巨细差别, 可是功效和机能是一样的 , 您能够按照本身的须要停止选购, 在某宝搜刮 “SD卡模块” 便可找到这两种Sd卡模块.

2 电路毗连

读写模块多接纳SPI停止电路毗连的,为了便利大师参考,下表列出了差别Arduino板上的SPI的连线:

Arduino SPI和谈
各开辟板SPI连线

您能够按照本身的开辟板范例停止连线

上面以UNO和MEGA 2560为例,将SD卡读写模块毗连在开辟板对应的SPI引脚上

 

 

Arduino UNO经由过程SPI利用SD卡读取模块 SPI SD读取模块

UNO经由过程SPI利用SD卡读取模块

Arduino MEGA2560经由过程SPI利用SD卡读取模块 SPI SD读取模块

MEGA2560经由过程SPI利用SD卡读取模块

Arduino向SD卡读写数据

为了演示,咱们这里利用开辟板默许的SS引脚,电路表示图见上.太极创客(ysc2014.com)

若是您须要利用自界说CS引脚,则须要在setup()中,利用SD.begin()将指定引脚界说为CS引脚,
界说今后必然要设置该引脚为输入情势,不然没法一般任务,详细参考SD.begin()函数页面.

在本示例,将在setup()中利用函数SD.open()建立一个名为" test.txt"
的新文件。此中参数FILE_WRITE意为将从开头起头启用对文件的读写。若是卡上已有文件" test.txt",则翻开该文件。

将翻开的文件的实例化工具定名为" myFile"

翻开后,用myFile.println()函数将字符串写入SD卡。内容写入后,封闭文件。

为了考证是不是写入胜利,咱们再次利用翻开文件,利用SD.open()。翻开今后,利用SD.read()读守信息而后经由过程串行监督器打印外面的数据。读取文件的一切内容后,请利用SD.close()封闭文件。

结果演示
Arduino向SD卡读写数据结果演示 SD读写模块 Arduino MEGA2560 UNO SPI
Arduino向SD卡读写数据结果演示

经由过程串口反应的信息太极创客(ysc2014.com)

Arduino向SD卡读写数据结果演示 SD读写模块 Arduino MEGA2560 UNO SPI
Arduino向SD卡读写数据结果演示

利用Arduino建立好的文件和数据示例

Arduino读取SD卡根目次内容

本示例申明若何列出SD卡目次中的有用的文件(文件名不可含中笔墨符)。
利用自界说的printDirectory函数扫描SD卡根目次,并经由过程串口监督器反应的情势打印根目次下存在的每一个文件和文件夹。对零丁文件,还将打印文件的巨细。太极创客(ysc2014.com)

结果演示

为了更好地读取根目次下的内容,咱们事先在根目次下建立多个范例的文件以展现本法式的功效

Arduino读取SD卡根目次内容 SD读写模块 Arduino MEGA2560 UNO SPI
Arduino读取SD卡根目次内容

串口打印演示

Arduino读取SD卡根目次内容 SD读写模块 Arduino MEGA2560 UNO SPI
Arduino读取SD卡根目次内容

 

能够看到Arduino串口监督器打印出了SD卡内一切的文件及其文件巨细,若是是文件夹则打印文件夹中的内容.

Arduino在SD卡上建立和删除文件

本示例申明若何在SD卡上新建和删除文件

在本示例,将在setup()中利用函数SD.open()建立一个名为" test.txt"
的新文件。利用FILE_WRITE情势启用对文件的读写。注重,读写实现后请经由过程myFile.close()函数封闭文件。

读写实现今后,请利用SD.exists()查抄文件是不是存在。

最初,利用SD.remove()从SD卡中删除文件。太极创客(ysc2014.com)

 

结果演示太极创客(ysc2014.com)
Arduino在SD卡上建立和删除文件1SD读写模块 Arduino MEGA2560 UNO SPI
Arduino在SD卡上建立和删除文件1SD读写模块

SD库函数

 

SD库函数布局 Arduino SPI SD读写模块
SD类函数

SD类的函数供给用户用于拜候SD卡并处置此中文件和目次的功效。太极创客(ysc2014.com)

begin()
exists()
mkdir()
open()
remove()
rmdir()

FILE类函数

File类的函数允许读取和写入SD卡上的单个文件。
注重:SD库中FILE类属于Stream类的子类。是以用法与Serial、WiFiClient等是分歧的,
概况可查抄快乐飞艇开奖网:太极创客Stream教程

name()
快乐飞艇开奖网:available()
close()
flush()太极创客(ysc2014.com)
peek()
快乐飞艇开奖网:position()
print()
快乐飞艇开奖网:println()
seek()
size()
read()
write()
快乐飞艇开奖网:isDirectory()
快乐飞艇开奖网:openNextFile()
快乐飞艇开奖网:rewindDirectory()