APP下载

制作Arduino测斜仪(下)

消息来源:baojiabao.com 作者: 发布时间:2024-05-20

报价宝综合消息制作Arduino测斜仪(下)

与过往两次制作一样,第一部分是动手制作,第二部分是程式介绍。上期运用了 Arudino UNO 、激光发射器、三轴加速度计感测器、数字按键键盘及 LCD 液晶显示器制作测斜仪,今期会讲解程式撰写的部分。

测斜仪的正面主要是用作显示及控制,为了方便接线及使用,因此我们加入了 L 型的木板及有孔支架方便组装,此方面的工具大家可以自行发挥。至于背后的接线,也可因应设计要有不同走位,只是要留意激光发射器要能射出光束。

Arduino 程式

最后的阶段是在 Arduino IDE 编写程式,让整个设计运作。使用者可以按照下面的步骤进行量度。首先用家需要输入水平距离,例如 40 米,然后将激光发射器发出的光束,指著物件的最高点,跟着便要按下键盘的按钮“*”, 物件的高度便会计算并显示出来。有关的程式码可见下面程式。当中的一些重点解释如下:


1261kid04p21
行数1-4:载入有关 LCD 液晶显示器的 Library ,及指示 I2C 的 Bus Address (0x3F) 。
行数5-8:宣告各个变数,包括仰角、物件高度、水平距离及常数π的数值。
行数9:激光发射器接口 (Pin11) 。
行数10-18:载入 4×4 键盘的 Library ,及有关的设定。
行数20-29:Arduino 程式中“设定”的部分,这部分只会运行一次。
行数21-23:启动 LCD 液晶显示器及显示器的背光,让字元能够显示清楚。
行数24-26:程式启动后,会显示测斜仪的名字“ Inclinometer ”,
并会维持一秒钟,之后便会清除画面上所有的字元。
行数27-29:将光标设置到第一行的第一个位置,并打印字元“ Hor.
Distance= ”。

1261kid04p22
行数30-54: Arduino 程式中“循环”的部分,这部分会不断重复运行。
行数31:这行可使重复部分的运作速度减慢,否则显示器的数字会不断跳动。
行数32:宣告变数 sensorValue ,读入三轴加速度计感测器的数值。
行数33:将 0° 至 90° 倾斜角度作校准步骤。在这一行中,模拟数值 279 及 345 会映射 0° 至 90° ,将数据储存到degree 变量中。
行数34-37:将光标设置到第二行的第一个位置, 并打印字元“ Ang.= ”及仰角。
行数38:启动激光发射器。
行数39:输入水平距离。读取键盘的输入,将字元储存到 key 变量中。
行数41-45:当输入的字元是 0 至 9 时,便会将字元转化为数字类型,并打印出来。注意这里只可以输入最多两位数字。
行数46-52:当输入的字元是“ * ”时,便会利用公式计算出物件的高度,并打印出来。
老师制作心得分享

Arduino 测斜仪的制作中,最重要的地方是要为三轴加速度计感测器 ADXL335 作校准的工作,否则量度出来的物件高度会有很大的误差。当中涉及的技术并不复杂,非常适合初中同学制作。

实际操作示范。

实际操作示范。

LCD 显示出结果。

LCD 显示出结果。

2017-12-23 23:00:00

相关文章