车辆速度检测项目求助:霍尔传感器检测到磁铁但无速度显示
车辆速度检测故障排查与修复
问题根源分析
你的代码存在以下核心逻辑错误,导致速度无法正确计算和显示:
- 未检测霍尔传感器的状态跳变(仅持续检测高电平),无法准确捕捉磁铁经过的瞬间
laststate变量赋值逻辑混乱,破坏了状态对比的有效性- 时间差计算条件不合理,无法正确获取两次触发的间隔时间
- LCD重复刷新同一内容,易导致显示异常
修复后的代码
#include <LiquidCrystal.h> const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2; LiquidCrystal lcd(rs, en, d4, d5, d6, d7); const int hallsensor = 1; int lastMagnetState = HIGH; // 初始化为默认高电平(根据霍尔传感器类型调整) unsigned long lastTriggerTime = 0; const unsigned long debounceDelay = 50; // 防抖延时,避免误触发 float wheelCircumference = 2 * 3.14 * 0.2; // 车轮周长:2πr,r=0.2m float currentKph = 0.0; void setup() { lcd.begin(16, 2); pinMode(hallsensor, INPUT_PULLUP); // 若霍尔传感器是下拉输出,改用INPUT;建议用上拉/下拉避免浮空 Serial.begin(115200); lcd.print("Speed:"); lcd.setCursor(8, 1); lcd.print("kph"); } void loop() { int currentMagnetState = digitalRead(hallsensor); unsigned long currentTime = millis(); // 检测霍尔传感器的状态跳变(这里假设磁铁靠近时输出LOW,离开时HIGH,根据实际传感器调整) if (currentMagnetState != lastMagnetState) { // 防抖处理:等待状态稳定 if (currentTime - lastTriggerTime > debounceDelay) { // 仅在磁铁离开时触发速度计算(或根据传感器特性选择上升沿/下降沿) if (currentMagnetState == HIGH) { unsigned long timeInterval = currentTime - lastTriggerTime; if (timeInterval > 10) { // 避免极短时间间隔导致的异常值 // 计算速度:(周长/时间间隔)*3600 = 米/小时 → 转公里/小时除以1000 currentKph = (wheelCircumference / timeInterval) * 3600 / 1000; } lastTriggerTime = currentTime; } } lastMagnetState = currentMagnetState; } // 刷新LCD显示,避免重复刷新导致闪烁 static unsigned long lastDisplayUpdate = 0; if (currentTime - lastDisplayUpdate > 200) { lcd.setCursor(6, 0); // 格式化显示,保留1位小数,补空格清除旧内容 lcd.print(currentKph, 1); lcd.print(" "); lastDisplayUpdate = currentTime; } }
关键修改说明
- 状态跳变检测:通过对比当前状态与上一次状态,仅在状态变化时触发逻辑,准确捕捉磁铁经过的瞬间
- 防抖处理:添加
debounceDelay避免传感器噪声导致的误触发 - 速度计算优化:修正速度计算公式,确保单位转换正确(米→公里,毫秒→小时)
- LCD显示优化:定时刷新显示,避免重复打印导致的闪烁和内容残留
- 引脚配置优化:建议使用
INPUT_PULLUP或INPUT_PULLDOWN避免引脚浮空导致的误读,需根据你的霍尔传感器输出类型调整
额外排查建议
- 确认霍尔传感器的输出逻辑:磁铁靠近时是输出高电平还是低电平,对应调整代码中的状态判断
- 检查磁铁与霍尔传感器的安装距离:过远会导致传感器检测不稳定
- 用串口打印
currentMagnetState和timeInterval,验证传感器触发是否正常
内容的提问来源于stack exchange,提问作者イアン
相关产品推荐
相关产品推荐

