功能:使用温度传感器采集温度,用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.html和
http://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的温度测试系统设计 摘要 在物质文化水平逐渐提高的社会背景下,智能家居逐渐兴起,现如今已经具有一定的规模。基于arduino的数据采集端以及基于Android的数据接收终端是本文的研究对象,全文...
基于Arduino的温湿度APP及云平台显示 基于Arduino的温湿度APP及云平台显示
基于Arduino单片机的宠物可穿戴温度检测及调控装置.pdf
基于Arduino和App Inventor2的空气温湿度检测系统设计.pdf
本文采用传感器技术、通讯技术,Arduino UNO和各类传感器相结合,对矿井监测系统的软、硬件进行了详细设计,实现了矿井生产环境的温度、湿度、粉尘浓度等数监测据的实时控制。通过分析和试验表明,该系统具有较强的...
嵌入式优质项目,资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松copy复刻,拿到资料包后可轻松复现出一样的项目。...可借鉴此优质项目实现复刻,也可以基于此项目进行扩展来开发出更多功能
系统实现的功能: 系统基于arduino ide开发平台,加入了esp8266网络上传模块连接WiFi并接入云平台中,传输 采用tcp协议将传感器收集到的数据进行打包与上传。在开发板方面,通过调用相关已经写好的 模块函数,将捕获...
导读:本文介绍了一种基于Arduino新型集成开发环境的光电编码器检测仪, 为了能快速简便地判断光电编码器的好坏,实现了Arduino板与可编程智能液晶触摸显示器终端的通信控制,完成了对光电编码器信号准确的计数,并...
能够针对校园环境检测问题,利 用 ArduinoUNO 控制板和智能传感器结合物联网技术 设计出能实时监控校园环境的智能设备。系统是以 ArduinoUNO 以及 DHT11温度传感器,灰尘 传感器,声音...
中所述,具有ZigBee数据传输功能的基于Arduino的湿度和温度传感器。使用传感器网络优化造纸机干燥机部分的能源,雅典技术工程杂志,2014年9月, 节点该目录包含传感器节点的代码。 它是为Arduino平台编写的。 有两种...
根据传感器的检测值,进行判断处理,具有自动控制硬件调节功能和警报功能,再结合Python的Flask库搭建服务器端,serial库进行硬件和服务器端信息传输,以及MySQL进行数据存储,实现了对大棚内温度,湿度,光照,气压...
STM32F103ZET6基于Arduino开发的WIFI智能远程风扇 硬件:STM32F103ZET6开发板、ESP8266开发板、DHT11温湿度传感器、L9110电机、按钮、有源蜂鸣器 软件:Blinker、Arduino 用到的库(需要额外添加):Blinker.h...
智能化管理,设计了智能大棚监测管理系统,该系统是基于嵌入式设计技术,利用了 Arduino Uno 平台,虚拟仿真实验环境 Proteus 软件,实时操作系统 FreeRTOS,实现硬件及 Arduino 虚拟开发和仿真,根据传感器的检测值...
使用线性回归在Thingspeak云平台上分析收集的数据,并使用DHT11传感器针对温度和湿度进行可视化显示。 抽象的 空气污染已成为世界各地的普遍现象。 特别是在城市地区,空气污染是一个现实问题。 许多人仅因空气污染...
我们将Vernier温度探测器和运动检测器连接到Arduino Uno,以检测道路上的黑冰。
显示温度,压力和湿度(湿度表明它是否太干) 设置菜单:闹钟,更改时间,启用/禁用日期显示,启用/禁用天气变化声音通知以及在英制和公制单位之间切换 闹钟设置 - 开/关,设置时间,设置旋律和/或铃声以进行通知 ...
有一个Arduino脚本,显示如何为基本环境和物体温度测量配置传感器,并如何配置嵌入式功能算法,并使用它们检测存在和运动。脚本允许连续或一次性模式,允许更改低通滤波器和检测阈值以实现各种检测行为。脚本利用...
Sensirion 的 SCD30 是一款基于NDIR的高质量CO₂ 传感器,能够以 ±(30ppm+3%) 的精度检测 400 至 10000ppm。为了提高精度,SCD30 内置了温度和湿度感应,以及补偿高度的命令。 我们编写了一个 Arduino 库,使读取...