双轴数字水平仪 制作





准备工作:
材料:
\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/
本文为转载内容,原文版权归作者 KCRoberts 及 Instructables 平台所有。转载旨在为电子制作爱好者、Arduino 开发者及 STEM 教育从业者提供 “双轴数字水平仪” 的实操参考,如需商用或二次修改发布,请联系原作者获取授权。
\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/
材料准备

以下是制作双轴数字水平仪所需的全部材料
材料名称 | 规格 / 说明 |
TP4056 锂电池充电器 | 用于 3.7V 锂电池充电 |
LSM9DS1 加速度计 | 检测水平角度与温度 |
Arduino Nano | 主控板(兼容 Arduino IDE) |
128x64 OLED 液晶显示屏 | 用于显示水平数据、电量与温度 |
压电扬声器(Piezo speaker) | 提供开机与水平状态声音反馈(可选) |
3.7V 锂电池 | 750mAh,为设备供电 |
M2 盘头自攻螺丝 | 需 4 颗 M2×4、6 颗 M2×6、6 颗 M2×8 |
滑动开关(Slide switch) | 控制设备电源通断 |
接线图

接线原理图详细标注了各电子元件的连接方式:
- 红色线:正极电压
- 黑色线:接地(GND)
- 黄色与绿色线:加速度计的数据信号线,以及连接 OLED 液晶显示屏的信号线
后续步骤将进一步展示这些元件的实际连接方式。
制作外壳




若拥有 3D 打印机,外壳可轻松打印(本文包含所需的 STL 文件);若无 3D 打印机,可将 STL 文件上传至 3D 打印服务平台(如本文提及的平台)代为打印。
3D 打印参数参考:
- 无边缘(brim)、无支撑(raft)、填充率 20%(可按个人习惯调整);
- 所有部件需单独平放打印,可能需将部件旋转 45° 以适配打印机床尺寸;
- 作者使用的是 Monoprice Maker Select Plus 打印机(床尺寸 200mm×200mm),每个部件约需 12 小时打印;
- 不建议缩放部件:否则电子元件的安装位将无法适配。
注意:若打印机床尺寸小于 200mm×200mm,部件可能无法容纳。
在面包板上连接元件以验证连通性







强烈建议在将元件安装到外壳前,先在面包板上连接核心元件,验证连通性是否正常。具体操作包括:
- 将软件下载到 Arduino Nano(见下一步);
- 验证 OLED 液晶显示屏接线是否正确、能否正常工作;
- 验证加速度计接线是否正确、能否向 Arduino Nano 传输数据;
- (若安装)验证压电扬声器的工作状态。
注意:
本阶段无需连接电池与充电器;开关与电池的连接需在开关安装到外壳后进行。最后一张配图展示了接线前的元件摆放状态。
下载arduino IDE软件

需通过 Arduino IDE 将软件加载到 Arduino Nano。加载时机可灵活选择,但最佳时机是在面包板连接元件后(见上一步),以便验证接线与电子元件的工作状态。
软件准备:
需安装 2 个库文件:
- U8g2 库(作者:oliver):在 Arduino IDE 中点击 “文件(Sketch)→ 导入库(Include Library)→ 管理库(Manage Libraries...)”,搜索 “U8g2” 后点击安装。
- Sparkfun LSM9DS1 库
- 初始化部分(setup):初始化加速度计与 OLED 显示屏,显示开机界面后切换至主显示界面;若连接扬声器,将发出一声蜂鸣以确认开机。
- 主处理循环(main loop):
- 读取加速度计数据,获取 X 轴与 Y 轴角度,以绝对值和图形化图表形式显示;
- 显示加速度计检测到的温度(支持华氏度 / 摄氏度切换);
- 若水平仪从 “非水平状态” 恢复至 “水平状态”,扬声器(若连接)将发出两声蜂鸣;
- 读取电池电压,判断并显示当前电量(作者提示:电量检测精度虽非极高,但足以显示满电状态及使用过程中的电量消耗)。
安装并连接 OLED 显示屏与扬声器




- OLED 显示屏(1.3 英寸,128×64 分辨率):
- 使用 4 颗 M2×4 盘头自攻螺丝,将显示屏安装到外壳上半部分;
- 建议先连接显示屏的导线,再进行安装 —— 这样能清晰看到引脚标注,避免接错;安装后将无法看到引脚标签;
- 作者提示:可在显示屏背面标注引脚信息(作者首次制作时未标注,导致接线错误)。
- 压电扬声器:
- 功能:开机时发出短音(确认电池供电正常),水平仪从非水平切换至水平时发出双音(提供声音反馈);
- 安装:使用 2 颗 M2×4 盘头自攻螺丝,固定到外壳上半部分;
- 可选性:无扬声器不影响水平仪核心功能,仅缺少声音反馈。
安装并连接电池、电池充电器与开关






安装顺序:先装开关,后接线
需先将开关安装到外壳上,再连接导线 —— 若先接线,安装开关时需断开连接,较为繁琐。具体步骤:
- 安装开关至外壳;
- 安装预接线的 TP4056 充电器与锂电池;
- 完成开关的接线。
TP4056 充电器接线细节:
TP4056 有 4 个接线焊盘:B+、B-、Out+、Out-,接线规则如下:
- 电池正极接 B+,电池负极接 B-;
- Out - 接 Arduino Nano 的接地(GND);
- Out + 接开关的一个引脚,开关的另一个引脚接 Arduino Nano 的 VIN 引脚。
安装并连接加速度计




LSM9DS1 引脚 | Arduino Nano 引脚 |
VCC | 5V |
GND | GND(接地) |
SDA | A5 |
SCL | A4 |
接线方式选择:
- 使用带杜邦接头的跳线接线;
- 也可直接将导线焊接到引脚上(建议焊接后再安装加速度计,操作更便捷)。
连接 Arduino Nano,完成电子元件组装







需将所有电子元件连接到 Arduino Nano,建议在安装 Arduino Nano 前完成接线 —— 以便 USB 端口可用于后续校准及软件微调。
详细接线步骤:
- 开关与 Arduino Nano 的连接:
- 红线(正极):从开关接至 Nano 的 VIN 引脚;
- 黑线(负极):从电池接至 Nano 的 GND 引脚;
- 接地整合:Nano 有 2 个 GND 引脚,可将外壳下半部分的 2 条接地线合并为 1 条,接至其中 1 个 GND 引脚;外壳上半部分的 2 条接地线合并为 1 条,接至另 1 个 GND 引脚。
- 加速度计(LSM9DS1)与 Nano 的连接:
- LSM9DS1 的 VDD 引脚接 Nano 的 3V3 引脚(严禁接 5V 引脚,否则会损坏加速度计芯片);
- SDA 接 Nano 的 A4 引脚,SCL 接 Nano 的 A5 引脚;
- GND 接 Nano 的 GND 引脚(与电池负极的接地线合并)。
- OLED 显示屏与 Nano 的连接:
- OLED 的 VCC 引脚接 Nano 的 5V 引脚;
- SDA 接 Nano 的 D2 引脚,SCL 接 Nano 的 D5 引脚。
- 压电扬声器与 Nano 的连接:
- 红线(正极)接 Nano 的 D7 引脚;
- 黑线(负极)接 Nano 的 GND 引脚(与 OLED 的接地线合并)。
校准

软件下载完成后、安装 Arduino Nano 前,需对水平仪进行校准(确保加速度计安装平整,若有轻微偏差,校准可保证显示准确)。
校准步骤:
- 将外壳下半部分放在已知水平的表面上(可使用气泡水平仪等工具确认);
- 读取显示屏上 X 轴(H)与 Y 轴(V)的数值;
- 若任一数值非零,需在软件中修改校准变量:将
xCalibration
(X 轴校准值)或yCalibration
(Y 轴校准值)设为显示屏显示的数值。
软件校准代码片段(需在 Arduino IDE 中修改):
额外设置:
可在此阶段设置displayF
的值,选择温度显示单位(true 为华氏度,false 为摄氏度)。
修改后重新将软件加载到 Nano,此时水平仪在已知水平表面上的读数应为 X=0、Y=0。
安装 Arduino Nano 并组装外壳

- 安装 Arduino Nano:在外壳的导轨上涂抹热熔胶,将 Nano 放在导轨上(引脚朝上,USB 端口朝向壳内),固定即可。
- 组装外壳:将外壳上下两部分合在一起,用 4 颗 M2×8 盘头自攻螺丝拧紧,完成组装。
验证双轴数字水平仪的功能

- 电池充电确认:确保 3.7V 锂电池已充满;组装后无法直接看到充电 LED 指示灯,但闭合外壳时可观察到红色微光(表示正在充电)。
- 功能验证:打开电源,检查水平仪是否正常工作。若异常,优先排查以下两处:
- 若显示屏无任何显示:检查 OLED 液晶显示屏的接线;
- 若显示屏工作正常,但 H(X 轴)、V(Y 轴)均显示 0 且温度显示 0℃(或 32℉):检查加速度计的接线。









