之前的文章介绍了温度传感器LM35的使用方式,这次的项目将教大家如何加上伺服马达,制作可爱的箭头式温度计!
鲨鱼头温度计
材料清单:
1.Arduino UNO R3
2.LM35 模拟温度传感器
3.3条杜邦线(公/母)
4.5条杜邦线(公/公)
5.SG90 9G服务器
6.迷你面包板
接线图如下:
首先,我们要学习如何将温度转换成角度,假设温度感测范围是0~40度,而伺服马达旋转范围是0~180度。我们希望当温度是0度时,伺服马达旋转至0度;温度是40度时,伺服马达旋转至180度;以此类推,温度20度时,伺服马达旋转至90度。
那该如何做到呢?Arduino有一个很好用的数学函式:map(),只要三个步骤就可以轻松转换。
1.输入数值来源
2.设定来源数值的范围(最大值与最小值)
3.输入希望转换后的数值范围(最大值与最小值)
map(输入数值来源,来源最小值,来源最大值,转换后的最小值,转换后的最大值)
将刚刚的描述实际套用将会是:
map( 量测温度 , 0 , 40 , 0 ,180 )
程序完成后,接下来就是制作可爱的温度计啦,您可以用纸(最好硬一点)、厚纸板、木板…等,与剪刀或美工刀制作。若是使用画纸,还可以涂上自己喜欢的颜色喔!本文是利用雷切机直接大切一波,下图就是小编的偷懒品。
第一次测试发现指针旋转方向与温度相反
实际装上去测试后发现,指针旋转方向似乎与温度相反。当温度越高时,越偏向左边;温度越低时,反而越转向右边,这样跟鲨鱼嘴里的刻度根本相反呀!
如果您也跟小编遇到相同的情况,没关系!还记得map() 的用法吗?只要将转换的最大值与最小值交换即可:
map( 量测温度 , 0 , 40 , 180 ,0 )
如此一来,当温度为0度时,马达转向180,反之当温度为40度时,马达转向0。修改程序后重新上传~终于完成啰!
修改程序后的完成品