0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

怎样将SD卡模块连接到Arduino 并使用LM35温度传感器记录温度值

454398 来源:工程师吴畏 2019-07-31 11:44 次阅读

电路图

首先,将SD卡模块连接到Arduino。 SD卡模块通过SPI通信与Arduino配合使用。 Arduino上的SPI引脚是10,11,12和13.

OLED与Arduino的连接如下:

将SD卡模块的CS连接到Arduino的第10针

将SD卡模块的MOSI连接到Arduino的第11针

将SD卡模块的MISO连接到Arduino的第12针

将SD卡模块的SCK连接到Arduino的第13针

将SD卡模块的VCC连接到5V Arduino的引脚

将SD卡模块的GND连接到Arduino的GND引脚

之后,连接DS3231模块带有Arduino。 DS3231模块通过I2C通信与Arduino配合使用。 Arduino上用于I2C通信的引脚是SDA和SCL。

按如下方式将DS3231模块与Arduino连接:

将DS3231的GND连接到Arduino的GND引脚

将DS3231的VCC连接到Arduino的5V引脚

将OLED的SDA连接到Arduino的A4引脚

连接SCL Arduino的OLED到A5引脚

最后,将LM35传感器与Arduino连接。将LM35的左引脚连接到Arduino的5V,中间引脚连接到Arduino的A0,左引脚连接到Arduino的地。

代码说明

首先,包括SD卡和DS3231 RTC模块的库。 SD卡通过SPI通信与Arduino配合使用,因此我们已经包含了SPI库。

#include

#include

#include

然后我们初始化一个File类型的对象“sdcard_file”,它将帮助我们使用这些函数之后,我们定义了连接SD卡模块的CS引脚和lm35传感器引脚的引脚。

File sdcard_file;

DS3231 rtc(SDA, SCL);

int CS_pin = 10; // Pin 10 on Arduino Uno

const int sensor_pin = A0;

float temp;

float output;

接下来我们宣布CS引脚作为输出,LM35传感器引脚作为输入。然后我们开始与RTC模块的串行通信和通信。

之后,我们检查SD卡是否正确初始化。如果SD卡已正确初始化,则串行监视器上将打印“SD卡已准备就绪”。

pinMode(sensor_pin,INPUT);

pinMode(CS_pin, OUTPUT);

Serial.begin(9600);

rtc.begin();

// SD Card Initialization

if (SD.begin())

{

Serial.println(“SD card is ready to use.”);

} else

{

Serial.println(“SD card initialization failed”);

return;

}

接下来我们打印“日期”,“时间”和“温度” “在串口显示器上。然后我们打开SD卡文件并在那里打印相同的东西。如果我们命名的文件不在那里,它将在那里创建。

在那里打印后,我们关闭SD卡,以便保存文件中的数据。

Serial.print(“Date ”);

Serial.print(“ ”);

Serial.print(“ Time ”);

Serial.print(“ ”);

Serial.print(“ Temp ”);

Serial.println(“ ”);

sdcard_file = SD.open(“data.txt”, FILE_WRITE);

if (sdcard_file) {

sdcard_file.print(“Date ”);

sdcard_file.print(“ ”);

sdcard_file.print(“ Time ”);

sdcard_file.print(“ ”);

sdcard_file.print(“ Temp ”);

sdcard_file.println(“ ”);

sdcard_file.close(); // close the file

}

在循环功能中,我们从LM35传感器读取并计算输出。然后我们在串行监视器上打印当前日期,当前时间和当前温度。

之后,我们再次打开SD卡文件并打印当前日期,当前时间和当前温度。

output = analogRead(sensor_pin);

temp =(output*500)/1023;

Serial.print(rtc.getDateStr());

Serial.print(“ ”);

Serial.print(rtc.getTimeStr());

Serial.print(“ ”);

Serial.println(temp);

sdcard_file = SD.open(“data.txt”, FILE_WRITE);

if (sdcard_file) {

sdcard_file.print(rtc.getTimeStr());

sdcard_file.print(“ ”);

sdcard_file.print(rtc.getTimeStr());

sdcard_file.print(“ ”);

sdcard_file.println(temp);

sdcard_file.close(); // close the file

}

// if the file didn‘t open, print an error:

else {

Serial.println(“error opening test.txt”);

}

delay(3000);

}

您现在应该有一个正常运行的数据记录器,它使用Arduino来跟踪传感器周围的时间,日期和温度。

您将为此项目添加什么?分叉并开发自己的版本。

完整代码

#include

#include

#include

File sdcard_file;

DS3231 rtc(SDA, SCL);

int CS_pin = 10; // Pin 10 on Arduino Uno

const int sensor_pin = A0;

float temp;

float output;

void setup() {

Serial.begin(9600);

pinMode(sensor_pin,INPUT);

pinMode(CS_pin, OUTPUT);

rtc.begin();

// SD Card Initialization

if (SD.begin())

{

Serial.println(“SD card is ready to use.”);

} else

{

Serial.println(“SD card initialization failed”);

return;

}

Serial.print(“Date ”);

Serial.print(“ ”);

Serial.print(“ Time ”);

Serial.print(“ ”);

Serial.print(“ Temp ”);

Serial.println(“ ”);

sdcard_file = SD.open(“data.txt”, FILE_WRITE);

if (sdcard_file) {

sdcard_file.print(“Date ”);

sdcard_file.print(“ ”);

sdcard_file.print(“ Time ”);

sdcard_file.print(“ ”);

sdcard_file.print(“ Temp ”);

sdcard_file.println(“ ”);

sdcard_file.close(); // close the file

}

// if the file didn’t open, print an error:

else {

Serial.println(“error opening test.txt”);

}

}

void loop() {

output = analogRead(sensor_pin);

temp =(output*500)/1023;

Serial.print(rtc.getDateStr());

Serial.print(“ ”);

Serial.print(rtc.getTimeStr());

Serial.print(“ ”);

Serial.println(temp);

sdcard_file = SD.open(“data.txt”, FILE_WRITE);

if (sdcard_file) {

sdcard_file.print(rtc.getTimeStr());

sdcard_file.print(“ ”);

sdcard_file.print(rtc.getTimeStr());

sdcard_file.print(“ ”);

sdcard_file.println(temp);

sdcard_file.close(); // close the file

}

// if the file didn‘t open, print an error:

else {

Serial.println(“error opening test.txt”);

}

delay(3000);

}

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • SD卡
    +关注

    关注

    2

    文章

    566

    浏览量

    63978
  • Arduino
    +关注

    关注

    188

    文章

    6472

    浏览量

    187378
收藏 人收藏

    评论

    相关推荐

    温度传感器常用规格参数

    温度传感器是一种用于测量和记录温度的设备,其广泛应用于各种行业和领域,如工业、医疗、消费电子等。为了满足不同应用的需求,温度
    的头像 发表于 01-03 18:25 81次阅读

    如何校准温度传感器

    在同一温度下的读数,确定待校准传感器的偏差。 步骤 : 准备标准温度传感器和待校准的温度传感器
    的头像 发表于 11-22 09:36 741次阅读

    LM19温度传感器数据表

    电子发烧友网站提供《LM19温度传感器数据表.pdf》资料免费下载
    发表于 08-15 10:05 0次下载
    <b class='flag-5'>LM</b>19<b class='flag-5'>温度</b><b class='flag-5'>传感器</b>数据表

    LM35高精度摄氏温度传感器数据表

    电子发烧友网站提供《LM35高精度摄氏温度传感器数据表.pdf》资料免费下载
    发表于 08-14 09:19 0次下载
    <b class='flag-5'>LM35</b>高精度摄氏<b class='flag-5'>温度</b><b class='flag-5'>传感器</b>数据表

    LMx35 LMx35A 精密温度传感器数据表

    电子发烧友网站提供《LMx35 LMx35A 精密温度传感器数据表.pdf》资料免费下载
    发表于 08-12 09:41 0次下载
    LMx<b class='flag-5'>35</b> LMx<b class='flag-5'>35</b>A 精密<b class='flag-5'>温度</b><b class='flag-5'>传感器</b>数据表

    利用Arduino的自动风扇速度控制电路设计

    温度成线性比例。由于其输出特性,我们在输出计算中不需要采用开尔文。该LM35温度传感器无需任何外部元件即可工作,只需要4 V至30 V稳压
    的头像 发表于 06-22 16:39 1954次阅读
    利用<b class='flag-5'>Arduino</b>的自动风扇速度控制电路设计

    温度探头和温度传感器的区别是什么

    温度探头和温度传感器是两种不同的设备,它们在测量温度方面有着各自的特点和应用场景。本文详细介绍温度
    的头像 发表于 06-19 14:45 2441次阅读

    非接触温度传感器如何测量内部温度

    非接触温度传感器,又称为红外温度传感器,是一种通过测量物体表面发射的红外辐射来确定物体温度传感器
    的头像 发表于 06-19 14:43 1142次阅读

    温度传感器怎样根据测量环境选择参数

    温度传感器是测量温度的仪器,广泛应用于工业、科研、医疗等领域。选择合适的温度传感器对于测量的准确性和可靠性至关重要。本文
    的头像 发表于 06-19 14:07 843次阅读

    温度传感器的原理及应用

    温度传感器是一种温度变化转换为电信号的传感器,广泛应用于工业、农业、医疗、气象等领域。本文
    的头像 发表于 06-19 10:27 2830次阅读

    使用Arduino的温控风扇电路分享

    “使用Arduino的温控风扇”项目只是围绕Arduinouno板和温度传感器LM35制造的。这些项目是使用闭环反馈控制系统设计的嵌入式系统的一个很好的例子。为了获得正确的用户界面视觉
    的头像 发表于 05-05 15:41 2376次阅读
    使用<b class='flag-5'>Arduino</b>的温控风扇电路分享

    光纤温度传感器的原理 光纤温度传感器的应用

    光纤温度传感器的原理 光纤温度传感器的应用  光纤温度传感器是一种利用光纤的热学特性实现
    的头像 发表于 03-07 15:55 3074次阅读

    IC温度传感器有什么缺点吗

    IC温度传感器又有模拟输出和数字输出两种类型。模拟输出传感器温度转换为电压或电阻值,通过一个
    的头像 发表于 02-29 16:50 1405次阅读
    IC<b class='flag-5'>温度</b><b class='flag-5'>传感器</b>有什么缺点吗

    如何LED连接到Arduino使其闪烁

     在本快速入门指南中,您将学习如何 LED 连接到 Arduino使其闪烁。
    的头像 发表于 02-11 10:53 2286次阅读
    如何<b class='flag-5'>将</b>LED<b class='flag-5'>连接到</b><b class='flag-5'>Arduino</b>板<b class='flag-5'>并</b>使其闪烁

    如何光敏电阻连接到Arduino读取电压

    在本快速入门指南中,您将学习如何光敏电阻连接到Arduino读取电压。您将首先使用串行监视来了解光
    的头像 发表于 02-11 10:45 4109次阅读
    如何<b class='flag-5'>将</b>光敏电阻<b class='flag-5'>连接到</b><b class='flag-5'>Arduino</b>板<b class='flag-5'>并</b>读取电压