工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

Arduinoで高速・高精度RPM測定 – レーザーとIRセンサーによる新アルゴリズム

必要な部品と材料

部品数量備考
Arduino UNO1
IR近接センサー(推奨品使用)1赤色レーザーの微弱IRを検知可能なもの
赤色レーザーポインター(655nm)1緑/青レーザーはIR成分が少なく不可
DCモーター(テスト用)1ファンブレード付き
9V電池、USBケーブル、ジャンパーワイヤー各1

必要な工具

プロジェクト概要

単一のIRセンサーと赤色レーザーポインターを用いて、モーターの回転数(RPM)を高速・高精度に測定する装置です。独自開発の「シングルショット検出アルゴリズム」により、ファンブレード1枚分の通過(1/n回転)ごとにRPMを計算し、40ms未満で結果を出力。変動にも強く、小数点以下2桁の精度を実現しています。

Arduinoで高速・高精度RPM測定 – レーザーとIRセンサーによる新アルゴリズム

原理

独自アルゴリズム: シングルショット検出

従来の「一定時間内のパルスカウント」ではなく、1回の遮断イベントごとにRPMを算出します。これにより:

スケッチ

// High-Speed RPM Counter - Single Shot Detection Algorithm
// by YASH36

const int sen = A0;
const float bladeWidth = 0.012;  // ブレード幅 [m] - 実測値に調整
const float radius = 0.045;      // 検知点の半径 [m] - 実測値に調整
const float twoPi = 6.2831853;   // 2π

float t1, t2, diff, vel, tRot, rpm;

void setup() {
  Serial.begin(9600);
  pinMode(sen, INPUT);
  Serial.println("Start motor and wait 3 sec...");
  delay(3000);
}

void loop() {
  // ブレード遮断待ち(センサー値が閾値未満)
  if(analogRead(sen) < 950) {
    t1 = millis();
    delay(30); // デバウンス
  }
  // ブレード通過(センサー値が閾値以上)
  if(analogRead(sen) > 950) {
    t2 = millis();
    diff = t2 - t1;              // 遮断時間 [ms]
    vel = bladeWidth / diff;     // 線速度 [m/ms]
    tRot = (twoPi * radius) / vel; // 1周時間 [ms]
    rpm = 60000.0 / tRot;        // RPM換算
  }
  Serial.print("RPM: ");
  Serial.println(rpm, 2); // 小数点以下2桁
}

調整ポイント

回路図・設置例

Arduinoで高速・高精度RPM測定 – レーザーとIRセンサーによる新アルゴリズム
Arduinoで高速・高精度RPM測定 – レーザーとIRセンサーによる新アルゴリズム

応用・拡張

製造プロセス

  1. Raspberry Piと湿度センサーで作る自動エアロポニックスシステム
  2. Arduino Portenta H7にMAX6675でサーモカップル温度センサーを接続する
  3. Arduino NanoとMPU-6050で作るリアルタイムジャイロスコープゲーム
  4. DHT11温湿度センサーで作る温度アラート – LEDとピエゾブザーで視覚/聴覚通知
  5. K30 CO2センサで室内空気質をリアルタイム監視する
  6. Unopad: Ableton Live連携シームレスなArduino MIDIコントローラー
  7. Arduinoで温湿度ロガーを作る – DHT11とEthernetシールドでSDカード記録
  8. ESP8266・Arduino・超音波センサーで作るスマートIoTジャー:リアルタイム中身監視
  9. Arduinoでシンプルな障害物センサーを自作 – IR LEDとフォトダイオード入門
  10. DFRobot静電容量式指紋センサーをArduino/ESP8266で使う – 登録・認証・削除の完全ガイド
  11. Arduino Nanoと128x64 OLEDで実行するセルラーオートマトン「ライフゲーム」