蓝冠注册《Q374919》 当我正在经历我的项目需要32个字符数据字符串打印16 * 2液晶屏幕上的一个数据输入出来的最大问题是数据记录和单片机接口卡片开始,我搜索了一下这个问题,来了解一些很不划算卡模块是一个方法是我ladyadda中找到。
非常便宜的电路接口您的microsd卡arduino
部分要求:
3 reistor – 4。7 Kohm
3电阻器1 kohm
如果你真的需要一些永久性的电路,蓝冠官网 可以用面包板或铜板
一个超越Micro sd卡(不要用中文,因为他们可能不支持spi)
跳线
micro sd卡有8个大头针,总共有3个
transc和microsd卡接口的数据表
(因为我的卡没有格式化,所以在进一步的卷和文件读取测试中失败了)
以下是一个简单的指导方针,教你如何和做什么:
硬件部分:
电路是安静的简单的所有你必须知道和记住每一针不应该增加的电压3.3 V以上这可能损害微型sd卡是习惯于使用2.7 V – 3.3 V的4和6 th销微型sd卡供应电源电压和地面你可以通过你的力量与分压器方法要么单片机控制电压和它把它从5 V至3.3 V 2日,3日,谢谢5 7日销芯片选择,数据输入,蓝冠注册 时钟和数据输出,您可以编程您的arduino或任何微控制器相应
源代码为设置:
/* SD卡测试
这个例子展示了如何使用工具库
SD库是为了获取关于你的SD卡的信息。
非常有用的测试卡时,你不确定是否工作或不。
电路:
*附于SPI总线的SD卡如下:
** MOSI – pin 11 on Arduino Uno/Duemilanove/Diecimila
** MISO – pin 12在Arduino Uno/Duemilanove/Diecimila
** CLK – Arduino Uno/Duemilanove/Diecimila的pin 13
** CS -取决于您的SD卡屏蔽或模块。
为了与其他Arduino示例保持一致,蓝冠招商 这里使用Pin 4
项目源代码:
- /
//包含SD库:
include < sd.h > < / sd.h >
//使用SD实用库函数设置变量:
Sd2Card卡;
SdVolume体积;
SdFile根;
//更改此匹配您的SD屏蔽或模块;
// Arduino Ethernet shield: pin 4
// Adafruit SD屏蔽和模块:引脚10
// Sparkfun SD屏蔽:pin 8
const int chipSelect = 4;
无效的设置()
{
Serial.begin (9600);
系列。打印(“nInitializing SD卡…”);
//在Ethernet Shield上,CS为pin 4。默认情况下,它被设置为输出。
//注意,即使它不被用作CS pin,硬件SS pin
//(大多数Arduino板上是10,Mega上是53)必须留作输出
//或SD库函数无法工作。
pinMode(10、输出);//把这个改成五十三元
//我们将使用来自实用程序库的初始化代码
//因为我们只是测试卡是否工作!
如果(!卡。init (SPI_HALF_SPEED, chipSelect)) {
系列。println(“初始化失败。检查:”);
系列。println(“*是否插入了卡片?”);
系列。“*你的线路是正确的吗?”
系列。println(“*您是否更改了芯片选择pin以配合您的屏蔽或模块?”);
返回;
其他}{
系列。“线路正确,有卡片”;
}
//打印卡片的类型
系列。打印(“nCard类型:”);
开关(card.type ()) {
案例SD_CARD_TYPE_SD1:
以“SD1”);
打破;
案例SD_CARD_TYPE_SD2:
以“SD2”);
打破;
案例SD_CARD_TYPE_SDHC:
以“SDHC”);
打破;
默认值:
以“未知”);
}
//现在我们将尝试打开“卷”/“分区”——它应该是FAT16或FAT32
如果(! volume.init(卡)){
系列。无法找到FAT16/FAT32分区。确保你已经格式化卡”);
返回;
}
//打印第一个fat型卷的类型和大小
uint32_t volumesize;
系列。打印(“nVolume type is FAT”);
以volume.fatType()、12月);
以();
volumesize = volume.blocksPerCluster ();//集群是块的集合
volumesize * = volume.clusterCount ();//我们会有很多集群
volumesize * = 512;// SD卡块总是512字节
系列。打印(“卷大小(字节):”);
以volumesize);
系列。print(“Volume size (Kbytes): “);
volumesize / = 1024;
以volumesize);
系列。打印(“Volume size (Mbytes): “);
volumesize / = 1024;
以volumesize);
系列。在卡片上找到的文件(姓名、日期和字节大小):);
root.openRoot(体积);
//列出卡片中所有文件的日期和大小
根。LS_R | LS_DATE | LS_SIZE;
}
无效循环(空白){
}
您可以在Arduino 1.0/library/SD/SD.h中找到fat分配库作为程序文件的头文件,或者在您保存Arduino IDE的任何地方。