亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

Arduino 高速转速计 - 单次检测算法实测 6.5MHz 级响应,红外 + 红激光方案

元器件清单

元器件数量关键参数/备注
Arduino UNO116MHz 晶振
IR 红外接近传感器1必须对红光激光敏感 (推荐 TCRT5000 或同类)
红色激光二极管 (655nm)1或现成红色激光指示器,**必须为红光**,绿/蓝光 IR 分量太弱
DC 电机 + 叶片1测试用,叶片数 n 已知
9V 电池 + 接线1激光供电
跳线3传感器连接

核心原理:单次检测算法

传统转速计测量一个周期或多个周期取平均,**本项目创新采用“单次阻断检测”**:

优势:

Arduino 高速转速计 - 单次检测算法实测 6.5MHz 级响应,红外 + 红激光方案

串口每秒输出 ~2 次 RPM 值,精度达 0.01 RPM,清晰显示转速微小变化

硬件接线

信号Arduino UNO备注
IR 传感器 VCC5V
IR 传感器 GNDGND
IR 传感器 OUTA0模拟输入,读取电压变化
激光正极9V 电池 +通过开关控制
激光负极9V 电池 -

机械对齐:激光束对准 IR 传感器接收面,风扇叶片旋转平面穿过光路。叶片宽度、检测半径需实测填入代码常量。

Arduino 高速转速计 - 单次检测算法实测 6.5MHz 级响应,红外 + 红激光方案
Arduino 高速转速计 - 单次检测算法实测 6.5MHz 级响应,红外 + 红激光方案

核心代码


// 高速 RPM 计数器 - 单次阻断检测算法
// 作者: YASH36

const int sensorPin = A0;
const float bladeWidth = 0.012;   // 叶片宽度 (米),实测填入
const float detectRadius = 0.045; // 检测点半径 (米),实测填入
const float twoPI = 6.283185307;  // 2π

unsigned long t1, t2;
float dt, velocity, period, rpm;

void setup() {
  Serial.begin(115200);  // 高波特率减少传输延迟
  pinMode(sensorPin, INPUT);
  Serial.println(F("启动电机,稳定 3 秒后开始测量..."));
  delay(3000);
}

void loop() {
  // 等待遮挡开始 (信号降低)
  if (analogRead(sensorPin) < 950) {
    t1 = millis();
    delay(30);  // 消抖/避免重复触发
  }
  
  // 等待遮挡结束 (信号恢复)
  if (analogRead(sensorPin) > 950) {
    t2 = millis();
    dt = t2 - t1;                    // 遮挡持续时间 (ms)
    velocity = bladeWidth / dt;      // 线速度 (m/ms)
    period = (twoPI * detectRadius) / velocity;  // 周期 (ms)
    rpm = 60000.0 / period;          // RPM = 60秒 / 周期(秒)
  }
  
  Serial.print(F("\n RPM = "));
  Serial.println(rpm, 2);  // 显示两位小数
}

关键参数标定

  1. 叶片宽度:卡尺测量叶片在检测半径处的弧长宽度
  2. 检测半径:从电机轴中心到激光束击中叶片的距离
  3. 阈值 950:根据环境光调整,确保无遮挡时 >950,遮挡时 <100
  4. 叶片数 n:代码中隐含 n=1 (单叶片);多叶片需将 RPM 结果除以 n,或修改公式 `period = (twoPI * detectRadius) / (velocity * n)`

为什么必须用红色激光?

硅基 IR 传感器对 650-700nm 红光有较强响应,绿光 (532nm) 和蓝光 (450nm) 的 IR 分量极弱,导致基线读数低、信噪比差、无法可靠检测遮挡。实测红光激光指示器即可完美工作。

局限与改进

作者联系

项目主页:YASH36 项目中心,欢迎交流改进建议。

制造工艺

  1. 树莓派自动化气雾栽培系统:湿度传感器智能控制
  2. Portenta H7 对接 MAX6675 热电偶温度传感器教程
  3. Arduino Nano 与 MPU-6050 构建实时陀螺仪游戏
  4. DHT11 温湿度传感器项目:LED 指示与压电蜂鸣器报警
  5. K30 CO₂ 传感器:室内空气质量实时监测
  6. Unopad:基于 Arduino 的无缝 Ableton Live MIDI 控制器
  7. Arduino + DHT11 + 以太网盾板温湿度数据记录仪
  8. 智能物联网罐:ESP8266 + Arduino + 超声波传感器实时监测罐内物位
  9. 自制简易红外避障传感器:IR LED + 光电二极管 + Arduino
  10. DFRobot 电容指纹传感器 (ID809) 接入 Arduino/ESP8266 完整教程
  11. 用 Arduino Uno 和 1Sheeld 构建 4x4x4 LED 立方体 - 互动音乐可视化项目
  12. Arduino Nano 驱动 128x64 OLED 实时运行康威生命游戏 (元胞自动机)