DIY Arduino 身高测量仪:超声波非接触测高,精准易制
组件与物料
| 组件 | 数量 |
|---|---|
| Arduino Nano R3 | 1 |
| HC-SR04 超声波测距模块 | 1 |
| 16×2 字符 LCD (带 I2C/并口均可) | 1 |
| 10 kΩ 微调电位器 (LCD 对比度) | 1 |
所需工具
- 电烙铁
软件工具
- Arduino IDE
工作原理
将装置固定在已知高度 H 处(如门框顶部)。人站在下方时,超声波测得距离 D,身高 H₁ = H - D。无人时 D ≈ H,差值为 0。LCD 显示数值与水平条形图,测量完成蜂鸣器提示。
安装示意

装置置于高度 H,传感器朝下。实测距离 D,计算 H₁ = H - D 显示在 LCD。
核心代码
#include <LiquidCrystal.h> #include <LcdBarGraph.h>
#define MAX_DISTANCE 200
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
LcdBarGraph lbg(&lcd, 16, 0, 1);
const int trigPin = 9, echoPin = 10, speakerPin = 8;
long duration; int distance, distance1;
void setup() {
lcd.begin(16,2);
pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT);
}
void loop() {
digitalWrite(trigPin, LOW); delayMicroseconds(2);
digitalWrite(trigPin, HIGH); delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = duration * 0.034 / 2; // cm
distance1 = 180 - distance; // 假设安装高度 180 cm
if (distance1 > 100) tone(speakerPin, 1000); else noTone(speakerPin);
lcd.setCursor(0,0); lcd.print("HEIGHT: "); lcd.print(distance1); lcd.print(" cm ");
lcd.setCursor(0,1); lbg.drawValue(distance1, MAX_DISTANCE);
delay(500);
}
需安装 LcdBarGraph 库。安装高度 180 cm 可在代码中修改 distance1 = H - distance。
原理图

接线极简:HC-SR04 VCC/5V、GND、Trig→D9、Echo→D10;LCD 按标准 4-bit/IIC 接线;蜂鸣器接 D8。装入盒子即成成品。
制造工艺
- 自制家用作业书写机:Arduino + GRBL 控制的笔绘仪
- Arduino 与智能手机打造智能电压表——简单易做的 DIY 项目
- DIY VR 滑板:用 Arduino、Google Cardboard 与蓝牙打造虚拟滑雪体验
- 自制高精度测距轮:Arduino Nano + 旋转编码器 + 1602 LCD
- DIY Arduino 电子波疗设备 - 基于拉德尼克疗法的 EMR 治疗仪
- Arduino UNO + 以太网盾板实现低成本太阳辐射测量仪(热电堆原理)
- 利用 Arduino Nano R3 自制全功能 CNC 雕刻机
- DIY二自由度竞速模拟器:Arduino Nano驱动SG90微型舵机
- 自制通用 CNC 机器完整指南 — 可切换激光/铣削/绘图多功能头
- 使用 Arduino 制作便携式 RFID 门锁——分步指南
- DIY三轴CNC立式加工中心:打造精密铣床
- Arduino Nano + GY-906 非接触红外测温枪制作指南