如何用 Arduino 来改造温度计?

Arduino 是创客们 DIY 的必备法宝。借助 Arduino 开发板,创客们通过简单的代码程序就可以实现一些常用电子设备的运行功能。今天为大家带来了一款 Arduino 温度计。这款温度计既可以作为日常温度计使用,又可以进行家用装饰,特别适合爱画画的小创客们动手制作。那么,它究竟是如何实现的呢?

最终作品照

一、材料准备

  • Arduino UNO x1
  • Arduino扩展板 x1
  • Lm35温度传感器 x1
  • 9g舵机 x1
  • 导线若干
  • A4白卡纸 x1

所需材料

二、盒子制作

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

方纸盒子展开图

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

剪好后的展开图

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

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

盒子制作完成

三、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); //舵机转到相应的角度
}