最好的电子音响科技diy制作网站

haoDIY_音响电子电脑科技DIY小制作发明

当前位置: 主页 > 电子DIY > 单片机 >

DIY一个Arduino温度计,设计出你自己的味道!

时间:2017-05-11 18:01来源:网络整理 作者:haodiy 点击:
Arduino是创客们DIY的必备法宝。借助Arduino 开发板,创客们通过简单的代码程序就可以实现一些常用电子设备的运行功能。今天,创新林创客空间为大家带来了一款Ar

Arduino是创客们DIY的必备法宝。借助Arduino 开发板,创客们通过简单的代码程序就可以实现一些常用电子设备的运行功能。

 

今天,创新林创客空间为大家带来了一款Arduino 温度计。这款温度计既可以作为日常温度计使用,又可以进行家用装饰,特别适合爱画画的小创客们动手制作。那么,它究竟是如何实现的呢?

 

DIY一个Arduino温度计,设计出你自己的味道!

 

 

最终作品照

一、材料准备

    Arduino UNO  x1Arduino扩展板  x1Lm35温度传感器  x19g舵机  x1;导线若干;A4白卡纸  x1

 

DIY一个Arduino温度计,设计出你自己的味道!

 

 

所需材料

二、盒子制作

准备好工具和卡纸

首先,我们要用尺子和铅笔把要做的方盒子的平面图按照下面示意图,在纸上画出来,盒子的尺寸大小按照可以放得下一个Arduino板的尺寸,这里非常考验空间想象力和盒子的构造。

 

DIY一个Arduino温度计,设计出你自己的味道!

 

 

方纸盒子展开图

画好之后,我们就可以用剪刀把它剪下来,如下图所示:

 

DIY一个Arduino温度计,设计出你自己的味道!

 

 

剪好后的展开图

大家可以看到上面有一个小水滴样子的指针,这个非常简单,大家在剩下的卡纸料上随手剪一个上色就行。

接下来直接按照原来画的边线进行对折即可,记得有画线的一面向里面,这样可以保证外观的整洁度。在这里大家记得拿出自己的彩色笔哦!给它设计一个好看的涂装,刻度划分可以自己去设计。

 

DIY一个Arduino温度计,设计出你自己的味道!

 

 

盒子制作完成

三、Arduino电路搭建及组装

完成上一步的盒子制作之后,这一步我们要完成的就是整个作品的核心部分,传感器连接与电路搭建,连接图如下所示:

 

DIY一个Arduino温度计,设计出你自己的味道!

 

 

电路连接图

 

DIY一个Arduino温度计,设计出你自己的味道!

 

 

电路实物连接

连接好电路之后,把舵机装在盒子里面,安装前要在盒子前面开一个小孔,然后用热熔胶把舵机固定在纸盒上,如图所示:

 

DIY一个Arduino温度计,设计出你自己的味道!

 

 

安装舵机

小水滴指针是如何安装到舵机上的呢?这里就要用到舵机自带的舵盘啦!直接用双面胶就把指针固定在舵盘上了,请看下图:

 

DIY一个Arduino温度计,设计出你自己的味道!

 

 

多盘与指针安装

 

DIY一个Arduino温度计,设计出你自己的味道!

 

 

安装舵机、舵盘、指针到纸盒

在这里就完成了硬件的所有制作,接下来就是写驱动程序。

四、程序编写

Arduino驱动程序编写,我们还是用到Arduino IDE来写这个程序,下面就是这个美美的Arduino温度计的驱动程序,就让我们一起DIY来让这个寒冷的冬天变更即视。下面这个代码大概的运行的原理是先通过LM35温度传感器采集到模拟值,将模拟值通过变换公式转换出温度值,因为表盘用的是舵机,所以这里会用到一个映射函数map,将温度值映射到相应的角度值,从而控制指针旋转到相应的位置。代码如下:

    #include <Servo.h>

    #include <math.h>

    Servo myservo;

    int a,val;   //定义变量

    float temperature;     //定义浮点型变量,用于存放转换后的温度

    int B=3975;              //热敏电阻的基础参考值B

    float resistance;

    void setup()

    {

      myservo.attach(4); //定义舵机驱动端口

    }

    void loop()

    {

      a=analogRead(0); //读取温度传感器的模拟值

      resistance=(float)(1023-a)*10000/a; //计算出传感器的电阻值

      temperature=1/(log(resistance/10000)/B+1/298.15)-273.15;//将电阻值转换成温度值

      delay(500); //延时500毫秒

      val=map(temperature,0,50,0,180); //将转换的温度值映射到舵机的角度值

      myservo.write(val); //舵机转到相应的角度

     }

 

 

(责任编辑:admin)
织梦二维码生成器
顶一下
(1)
100%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容