新しい高速アルゴリズムを備えたArduinoベースのRPMカウンター
コンポーネントと消耗品
> ![]() |
| × | 1 | |||
| × | 1 | ||||
![]() |
| × | 3 | |||
![]() |
| × | 1 | |||
| × | 1 | ||||
![]() |
| × | 1 | |||
![]() |
| × | 1 |
必要なツールとマシン
> ![]() |
| |||
![]() |
|
アプリとオンラインサービス
> ![]() |
|
このプロジェクトについて
<図>

このプロジェクトはから開発されました スクラッチ 正確なRPMを測定する試みとして(回転 あたり 分)単一のIRを使用したさまざまなモーターの値 センサー、Arduinoボード、 必須 重要な成分-レーザーポインター(必然的に赤)。
このプロジェクトでは、IRセンサーが赤色レーザーから放出される少数のIR放射も読み取るという事実を利用しています。ただし、青/緑のレーザーを使用すると、これらのIR放射は非常に少なくなり、アナログ読み取り電圧は約1に低下します。 0。
モーターに取り付けられたファンのブレードがレーザービームの経路に入ると、経路を遮断し、読み取り値が0に下がります。ファンブレードは回転し続け、その位置は一定の電力供給で変化し続けます。パスの絶え間ない変更が発生します。パスが再びクリアになると、レーザーポインタービームがセンサーに再び当たります。
新しいシングルショットアルゴリズムベースのコード、より高速でより多くの変更適応測定用:-
私が開発したこのプロジェクトのコードは、このプロジェクト用に新しく開発されたアルゴリズムを使用しています。 アルゴリズムは確かにユニークであり、40ミリ秒未満で測定を行い、正確な結果を提供するように構築されています。 このプログラムの非常に重要な機能の1つは、私が Arduinoのシングルショット検出と呼ぶ方法を使用していることです。 ファンブレードがレーザービームの経路に障害物を作成するたびに、モーターのRPMを計算します。これは、レーザービームの経路の障害物が、ファン内のn個のブレードに対して1 / nの完全な回転を示すためです。したがって、 プログラムは非常に 機密 から RPMのわずかな変化( 小数点以下2桁まで) すべて 1 / n th 革命 of ファン ブレード もう一度 どこ n は 番号 of ブレード of ファン。 したがって、この独自のシングルショット検出アルゴリズムは非常に正確です 値 of RPMと測定値の変化に対するより高い感度。
<図>
で 上記 表示 画像 of 出力 サンプル から シリアル モニター in a テスト 実行、 レート of 出力 スクリーニング できます 明らかに 見た これ は 約 2 回 a 秒。 RPM 値 は 計算済み 最大 2つ 場所 of 小数 それぞれ 時間。
これを閲覧するすべての人は、このプロジェクトを一度試して、貴重なレビューを共有する必要があります。このアルゴリズムに関連する実験とその結果について教えてください。新しいプロジェクトの提案はコメントセクションで歓迎されます。プロジェクトが気に入ったら、それを尊重してください。
このリンク(https://create.arduino.cc/projecthub/YASH36)をタップして私のプロフィールをフォローしてください @ YASH36 いくつかの新しいプロジェクトの更新について。
それまでは、安全を確保してArduinoをお楽しみください!!
コード
- RPM_counter_101
RPM_counter_101 Arduino
これはRPMカウンターのコードです。// YaSh.intによるコードsen =A0; const float wid =0.012; //必要に応じてファンブレードの幅を調整します。constfloatrad=0.045; //ファンブレードの検出ポイントの半径を調整します。constfloatkonst=6.2832; // 2 * pi.float time_1; float time_2; float vel; float diff; float tnet; float rpm; void setup(){Serial.begin(9600); pinMode(sen、INPUT); Serial.print( "\ n少なくとも3秒前にモーターを始動してください。\ n"); delay(3000);} void loop(){if(analogRead(sen)<950){time_1 =millis(); delay(30); } if(analogRead(sen)> 950){time_2 =millis(); diff =(time_2-time_1); vel =wid / diff; //回転速度tnet =(konst * rad)/ vel; // time =(2 * pi * radius)/ velocity。 rpm =(60000)/ tnet; //ミリ秒から分、そしてrpm変換ステップまでの時間。 } Serial.print( "\ n rpmは:"); Serial.println(rpm);}
回路図
これは、ベースおよびその他のコンポーネントの配置の画像です 

製造プロセス
- ラズベリーパイと湿度センサーを備えたエアロポニックス
- Portentaおよび熱電対センサー(MAX6675を使用)
- MPU-6050を搭載したArduinoジャイロスコープゲーム
- LEDとピエゾスピーカーを備えたDHT11センサー
- K30センサーによるCO2モニタリング
- Unopad-Abletonを搭載したArduinoMIDIコントローラー
- 温度および湿度データロガー
- IOT-ESP8266、Arduino、超音波センサーを使用したスマートジャー
- Arduinoを搭載したシンプルな障害物センサー
- ArduinoまたはESP8266を搭載した静電容量式指紋センサー
- ArduinoおよびOLEDベースのセルオートマトン