`
yiqieanhao
  • 浏览: 67380 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

基于arduino的温度检测和显示

 
阅读更多
功能:使用温度传感器采集温度,用2位数码管显示结果。



材料如下:
1 arduino Uno
2 DS18B20 温度传感器
3 2位数码管

数码管相关
数码管的原理很简单,一般一个字符由7段组成,由a-g,需要控制每段的电压高低来是否亮,比如0则应该abcdef亮,中间的g暗。所以,数码管的接入关键是看针脚的定义。

对于n位数码管,一般是共阳或共阴,针脚的具体定义需要看相应的参数图,不要自己猜测。一般会有n位针脚对应各自的字符开关。一般针脚的序列是从左下角逆时针 1...n。

在自己程序里需要定义数码管的针脚对应板子上的io口,比如我这里:



Arduino引脚  数码管引脚
D11           10(A)
D10           9(B)
D2            1(C)
D3            4(D)
D4            3(E)
D5            6(F)
D6            5(G)
D7            2(DP)
D8            8(LED1)
D9            7(LED2)

右边针脚数字顺序即图里下部所示a-dp对应的顺序。
可以参考:
http://blog.sina.com.cn/s/blog_a6164cc90101a6ks.html
http://www.arduino.cn/thread-1224-1-1.html

相关资料和软件可以在附件中找到。

温度相关
用的是DS18B20 温度传感器,注意不同型号的温度传感器对应的库和方法不一样,需要针对性开发。这里有篇很好的文章:http://bbs.iqrobot.com/forum.php?mod=viewthread&tid=45

相关的内容可见http://www.pjrc.com/teensy/td_libs_OneWire.htmlhttp://www.milesburton.com/?title=Dallas_Temperature_Control_Library





需要的库也可从附件下载,解压缩放到arduino的libraries目录下。(一般需要重启arduino IDE才可生效)

我的测试代码
#include <OneWire.h>
#include <DallasTemperature.h>

//LED
#define SEL_LED1 8   //arduino数字针脚8对应LED1的控制
#define SEL_LED2 9   //arduino数字针脚9对应LED1的控制

const unsigned char LED8Pin[]={
  11,10,2,3,4,5,6,7,8,9};//A B C D E F G Dp  sel_led
 
const unsigned char LED8Code[]={    //该值可以通过取模软件获得,共阳
  0xC0,    // 0
  0xF9,    // 1
  0xA4,    // 2
  0xB0,    // 3
  0x99,    // 4
  0x92,    // 5
  0x82,    // 6
  0xF8,    // 7
  0x80,    // 8
  0x90,    // 9
  0x88,    // A
  0x83,    // B
  0xC6,    // C
  0xA1,    // D
  0x86,    // E
  0x8E     // F
};

// Data wire is plugged into port 10 on the Arduino
#define ONE_WIRE_BUS 13

// Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);

// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);

void setup(void)
{
  // start serial port
  Serial.begin(9600);
  Serial.println("Dallas Temperature IC Control Library Demo");

  //LED
  char i;
  for(i=0;i<10;i++)
  {
    pinMode(LED8Pin[i], OUTPUT);    
    digitalWrite(LED8Pin[i], HIGH);  
  }

  // Start up the library
  sensors.begin();
}

void loop(void)
{
  // call sensors.requestTemperatures() to issue a global temperature
  // request to all devices on the bus
  Serial.print("Requesting temperatures...");
  sensors.requestTemperatures(); // Send the command to get temperatures
  Serial.println("DONE");

  Serial.print("Temperature for the device 1 (index 0) is: ");
  
  float tempValue = sensors.getTempCByIndex(0);
  int changeValue = getRightValue(tempValue);
  
  Serial.print(tempValue);
  Serial.print(" ");
  Serial.println(changeValue);
  
  for(int i=0;i<20;i++){
    LEDAll_Show(changeValue);
  }
  
   //delay(1000);
}

int getRightValue(float f){
  float intValue = f*100;
  int small = (int)intValue%100;
  int diff = (small>=50? 1:0);
  return diff+intValue/100;
}



void LED8Show(char data){  
  char i;
  char j;
  char hc;
  if(0<=data<16)
  {
    hc = LED8Code[data];
    for(i=0;i<8;i++)
    {
      j = bitRead(hc,i);
      digitalWrite(LED8Pin[i], j);
      if(j==0){
        //digitalWrite(LED8Pin[i], LOW);
      }
    }
  }
}
void LEDAll_Show(unsigned char num)
{
   unsigned  char VH,VL;
   VH = num/10;
   VL = num%10;
   
   //Serial.println(num);   
   
   digitalWrite(SEL_LED1, 1);
   digitalWrite(SEL_LED2, 0);
   LED8Show(VH);
   delay(10);
   
   digitalWrite(SEL_LED1, 0);
   digitalWrite(SEL_LED2, 1); 
   LED8Show(VL);
   delay(10);      
   
   digitalWrite(SEL_LED1, 0);
   digitalWrite(SEL_LED2, 0); 
}



布线和结果请看附件效果图。

  • 大小: 2.6 MB
  • 大小: 30.1 KB
  • 大小: 8.1 KB
  • 大小: 4.8 KB
分享到:
评论

相关推荐

    毕业论文-基于Arduino的温度测试系统设计.doc

    总结来说,这个基于Arduino的温度测试系统展示了物联网技术在智能家居领域的应用,结合了硬件和软件的创新,实现了对环境温度的准确监测和无线通信,为用户提供了便捷的智能生活体验。同时,其设计思路和实现方法也...

    基于Arduino单片机的智能家居设计实用文档doc.doc

    基于Arduino单片机的智能家居设计实用文档提供了一个智能家居系统的设计和实现方案,该系统可以实现对室内温度、湿度和光照强度等参数的实时检测,并借助 LCD 显示温湿度值,可以根据检测端探测到的光照强度和温度值...

    基于Arduino与Nrf24l01无线轴承润滑油智能温度监控系统设计.pdf

    标题中的“基于Arduino与Nrf24l01无线轴承润滑油智能温度监控系统设计”指的是一个专门用于监测大型立式秸秆粉碎机轴承润滑油温度的智能监控系统,它利用了Arduino开源硬件平台和Nrf24l01无线通信模块。这个系统解决...

    基于Arduino单片机的宠物可穿戴温度检测及调控装置.pdf

    综上所述,基于Arduino单片机的宠物可穿戴温度检测及调控装置,以其强大的功能、稳定性和用户友好的设计,成为了宠物健康监护领域的一次重大创新。通过应用现代电子技术,可以有效地解决宠物无人看护时的健康监测...

    (源码)基于Arduino的火灾检测系统.zip

    本项目旨在开发一个基于Arduino的火灾检测系统,通过结合温度传感器和气体烟雾传感器,实现对火灾的实时监测和预警。系统不仅能够自动检测火灾并触发灭火机制,还能通过LCD显示屏和LED灯提供直观的反馈信息,帮助...

    基于Arduino单片机的太阳能热水器控制系统设计.pdf

    检测模块由温度传感器和液位传感器以及Arduino核心板组成,其中温度传感器采用数字温度传感器DS18B20,液位传感器则是采用5个开关量液位传感器来准确显示水箱液位。单片机采集到的传感器数据暂存在寄存器中,并通过...

    基于Arduino的智能家居语音控制及能源管理系统设计.pdf

    基于Arduino的智能家居语音控制及能源管理系统的研究表明,将语音识别技术与传统智能家居电气控制系统相结合,能显著提升家庭生活的智能化水平,使人类与智能家居系统之间的互动更加自然和便捷。此外,通过实时数据...

    基于arduino的土壤湿度检测

    《基于Arduino的土壤湿度检测系统详解》 在现代科技与智能农业的交汇点,基于Arduino的土壤湿度检测系统成为了一种高效且精准的植物养护工具。该系统通过集成硬件和软件,实现对土壤湿度的实时监测,并根据检测结果...

    基于Arduino的热风SMD返修台原理图源代码_热风幕控制原理接线图

    - **异常处理**:检测和处理潜在的错误情况,如温度传感器故障、电源问题等。 总的来说,基于Arduino的热风SMD返修台是一个集硬件设计、软件编程、控制理论于一身的综合性项目。通过这个项目,不仅可以学习到...

    基于Arduino和App Inventor2的空气温湿度检测系统设计.pdf

    "基于Arduino和App Inventor2的空气温湿度检测系统设计" 本文设计了基于Arduino和App Inventor2的空气温湿度检测系统,系统结构简易、硬件连接简单、软件制作便捷、APP软件界面用户体验顺畅、成本较低。该系统主要...

    基于Arduino的AMLX90614非接触式温度程序

    - 在描述中提到的程序是基于官方示例改编的,这意味着它应该包含了基本的初始化、读取和显示温度数据的逻辑。 - 程序中的注释可能指明了特定引脚的用途,这对于理解和复制该程序至关重要。 - `void setup()`函数...

    基于Arduino的智能泡茶机部分源码

    【标题】基于Arduino的智能泡茶机部分源码 在智能设备领域,Arduino是一个非常流行的开源电子原型平台,因其易用性和丰富的库支持,被广泛应用于各种创新项目,包括智能家居、自动化装置以及教学实验等。本项目是将...

    (源码)基于Arduino的非接触式温度测量与报警系统.zip

    项目适用于需要快速、非接触式温度检测的场景,如体温监测、环境温度监控等。 ## 项目的主要特性和功能 非接触式温度测量使用MLX90614传感器,无需接触即可测量物体或环境的温度。 温度报警功能当检测到的温度...

    (源码)基于Arduino的温湿度传感器与OLED显示屏显示系统.zip

    # 基于Arduino的温湿度传感器与OLED显示屏显示系统 ## 项目简介 这是一个基于Arduino平台的项目,旨在读取温湿度传感器的数据,并通过OLED显示屏显示出来。项目还包含一些额外的功能,如显示不同的字体和通过LED的...

    (源码)基于Arduino的空气质量检测系统.zip

    # 基于Arduino的空气质量检测系统 ## 项目简介 该项目旨在利用Arduino板和一系列传感器构建一个空气质量检测系统。该系统可以检测多种空气污染物的浓度,如碳氧化物、酒精乙烷、氢气、甲烷、丙烷丁烷、烟雾可燃...

    (源码)基于Arduino平台的家居加热系统控制器.zip

    2. 温度检测使用温度传感器(如DS18B20)实时检测环境温度,并显示在LCD屏幕上。 3. 用户输入通过按键允许用户设置目标温度,控制器会根据当前温度与目标温度的差值调整加热系统的状态。 4. 显示界面使用ST7735或ST...

    (源码)基于Arduino的空气质量监测系统.zip

    4. 开源与可定制性基于Arduino的开源特性,用户可以根据需求进行定制和扩展。 ## 安装使用步骤 2. 准备硬件确保拥有Arduino开发板、空气质量传感器、温度传感器、湿度传感器以及连接线等必要硬件。 3. 硬件连接...

    Android-基于android和Arduino的智能体温计android程序

    标题中的“Android-基于android和Arduino的智能体温计android程序”揭示了这是一个融合了硬件与软件的项目,旨在创建一个能够监测体温并实时传输数据的智能设备。该项目使用了Arduino微控制器作为硬件基础,配合体温...

Global site tag (gtag.js) - Google Analytics