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

UltraV:ポータブルUVインデックスメーター

コンポーネントと消耗品

>
Arduino Nano R3
× 1
Texas Instruments ML-8511
× 1
128x64OLEDディスプレイ
× 1
MT3608DC-DCスタップアップコンバーター
× 1
CR2(3v)バッテリー
× 1
CR2バッテリーホルダー
× 1

このプロジェクトについて

皮膚科の問題で太陽に当たることができなかったので、ビーチで過ごした時間で紫外線計を作りました。 UltraV。

Arduino Nano rev3上に構築されており、UVセンサー、3vバッテリー電圧を上げるためのDC / DCコンバーター、および小型のOLEDディスプレイを備えています。私の主な目標は、いつでもどこでもUVインデックスを簡単に知ることができるように、ポータブルに保つことでした。

ステップ1:部品とコンポーネント

  • マイクロコントローラーArduinoNano rev.3
  • ML8511UVセンサー
  • 128×64OLEDディスプレイ(SSD1306)
  • MT3608DC-DCステップアップ
  • CR2バッテリー
  • CR2バッテリーホルダー
  • 切り替え
  • エンクロージャーケース

ステップ2:センサー

<図>

ML8511(Lapis Semiconductors)は、屋内または屋外でUV強度を取得するのに適したUVセンサーです。 ML8511には、UV強度に応じて光電流を電圧に変換するアンプが内蔵されています。この独自の機能により、ADCなどの外部回路への簡単なインターフェイスが提供されます。パワーダウンモードでは、通常のスタンバイ電流は0.1µAであるため、バッテリ寿命を延ばすことができます。

機能:

  • UV-AおよびUV-Bに敏感なフォトダイオード
  • 組み込みオペアンプ
  • アナログ電圧出力
  • 低供給電流(300µA typ。)および低スタンバイ電流(0.1µA typ。)
  • 小型で薄い表面実装パッケージ(4.0mm x 3.7mm x 0.73mm、12ピンセラミックQFN)
<図>

残念ながら、センサーを保護するためのUV透過素材を見つける機会がありませんでした。私がテストしたあらゆる種類の透明なカバー(プラスチック、ガラスなど)は、UV測定を減衰させていました。より良い選択は石英ガラスであるように思われますが、リーズナブルな価格で何も見つからなかったので、センサーを箱の外の屋外に置いておくことにしました。

ステップ3:操作

<図>

対策を講じるには、デバイスの電源を入れて、太陽​​光線の方向に合わせたまま、数秒間太陽に向けます。次に、ディスプレイを見てください。左側のインデックスは常にインスタント測定値(200ミリ秒ごとに1つ)を示し、右側の読み取り値はこのセッション中に取得された最大読み取り値です。これが必要な値です。

ディスプレイの左下部分には、測定されたUVインデックスのWHO相当の命名法(LOW、MODERATE、HIGH、VERY HIGH、EXTREME)も報告されています。

ステップ4:バッテリー電圧と読み取り値

サイズと容量(800mAh)からCR2バッテリーを選びました。私は夏の間ずっとUltraVを使用しましたが、バッテリーはまだ2.8 vを示しているので、私はその選択に非常に満足しています。動作時、回路は約100 mAを消費しますが、読み取り値の測定には数秒以上かかりません。バッテリーの公称電圧は3vなので、DC-DCステップアップコンバーターを追加して電圧を9ボルトにし、Vinピンに接続しました。

バッテリー電圧をディスプレイに表示するために、アナログ入力(A2)を使用しました。 Arduinoアナログ入力を使用して0〜5VのDC電圧を測定できますが、この手法には校正が必要です。校正を実行するには、マルチメータが必要です。まず、最後のバッテリー(CR2)で回路に電力を供給し、コンピューターからのUSB電源を使用しないでください。レギュレータからArduinoの5Vを測定します(Arduino 5Vピンにあります):この電圧は、デフォルトでArduinoADC基準電圧に使用されます。次に、測定値を次のようにスケッチに入れます(5.023を読んだとします):

  Voltage =((long)sum /(long)NUM_SAMPLES * 5023)/ 1024.0;  

スケッチでは、10サンプルの平均として電圧測定を行っています。

ステップ5:回路図と接続

<図>

ステップ6:ソフトウェア

ディスプレイには、この種のOLEDディスプレイに非常に柔軟で強力なU8g2libを使用しました。これにより、フォントの幅広い選択と優れたポジショニング機能が可能になります。

ML8511からの電圧読み取りに関しては、ADCコンバータのベースとして3.3v Arduinoリファレンスピン(1%以内の精度)を使用しました。したがって、3.3Vピンでアナログからデジタルへの変換を行い(A1に接続することにより)、この読み取り値をセンサーからの読み取り値と比較することで、VINが何であっても実際の読み取り値を推定できます( 3.4Vを超えている限り)

  int uvLevel =averageAnalogRead(UVOUT); int refLevel =averageAnalogRead(REF_3V3); float outputVoltage =3.3 / refLevel * uvLevel;  

次のリンクから完全なコードをダウンロードしてください。

UltraV_OLED.ino.zip

ステップ7:エンクロージャーケース

<図>

市販のプラスチックの箱で長方形のショーウィンドウを手動でカットするといういくつかの(悪い)テストの後、私はそれのために自分でデザインすることにしました。そこで、CADアプリケーションを使用してボックスを設計し、できるだけ小さくするために、CR2バッテリーを背面の外側に取り付けました(ボックス自体にバッテリーホルダーを接着しました)。

次のリンクから、エンクロージャケースのSTLファイルをダウンロードします。

UltraV.stl.zip

ステップ8:将来の改善の可能性

  • UV分光計を利用して、さまざまな条件下で実際のリアルタイムUVインデックス値を測定します(UV分光計は非常に高価です)。
  • Arduinoマイクロコントローラーを使用してML8511からの出力を同時に記録します。
  • 広範囲の大気条件下でML8511出力を実際のUVI値にリアルタイムで関連付けるアルゴリズムを記述します。
<図> <図> <図> <図> <図> <図>

ステップ10:クレジット

  • Carlos Orts:https://create.arduino.cc/projecthub/McOrts/mobil ...
  • Arduinoフォーラム:http://forum.arduino.cc/index.php?topic =3922.0
  • Starting Electronics:https://startingelectronics.org/articles/arduino / ...
  • U8g2lib:https://github.com/olikraus/u8g2/wiki/u8g2referen ...
  • 世界保健機関、UVインデックス:http://www.who.int/uv/intersunprogramme/activitie ...
https://github.com/olikraus/u8g2/wiki/u8g2reference

コード

  • UltraV
UltraV C / C ++
Code
 / * Fabio Marzocca @ 2018アナログからデジタルへの変換は完全にVCCに依存しています。これは5Vであると想定していますが、ボードがUSBから電力を供給されている場合、これは最大5.25Vまたは最低4.75Vになる可能性があります。http://en.wikipedia.org/wiki/USB#Powerこの未知のウィンドウのため、ほとんどの場合、ADCはかなり不正確です。これを修正するために、非常に正確なオンボード3.3Vリファレンスを使用します(1%以内の精度)。したがって、3.3Vピン(A1)でADCを実行し、これをセンサーからの読み取り値と比較することで、VINが何であっても(3.4Vを超えている限り)実際の読み取り値を推定できます。v。 2.0.0- 2018年7月-16x2LCDからOLEDvに移動しました。 2.0.1- 2018年9月-読み取りバッテリー機能の変更* /#include  #include  #include  U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0、/ * clock =* / SCL、/ * data =* / SDA、/ *リセット=* / U8X8_PIN_NONE); //ディスプレイをリセットしないすべてのボード#defineFIRST_ROW_Y 16#define FIRST_ROW_X 16#define BOX_H 38 //ハードウェアピンの定義constint UVOUT =A0; // sensorconstからの出力intREF_3V3 =A1; // Arduinoボードの3.3V電源constint VBATT =A2; //バッテリー電圧フロートmaxUV =0; //最大UVインデックスreadvoidsetup(){pinMode(UVOUT、INPUT); pinMode(REF_3V3、INPUT); pinMode(VBATT、INPUT); u8g2.begin();} void loop(){u8g2.firstPage(); do {int uvLevel =averageAnalogRead(UVOUT); int refLevel =averageAnalogRead(REF_3V3); // 3.3V電源ピンを基準として使用して、センサーフロートから非常に正確な出力値を取得しますoutputVoltage =3.3 / refLevel * uvLevel; float uvIntensity =mapfloat(outputVoltage、0.99、2.6、0.0、15.0); //電圧をUV強度レベルに変換しますreadBattery(); if(maxUV  =0)&&(categ <3)){strcpy(strCat、 "LOW"); } else if((categ> =3)&&(categ <6)){strcpy(strCat、 "MODERATE"); } else if((categ> =6)&&(categ <8)){strcpy(strCat、 "HIGH!"); } else if((categ> =8)&&(categ <10)){strcpy(strCat、 "VERY HIGH!"); } else if(categ> =11){strcpy(strCat、 "EXTREME!"); } u8g2.setCursor(0,64); u8g2.print(strCat); } //指定されたピンの読み取り値の平均を取ります// averageintaverageAnalogRead(int pinToRead){byte numberOfReadings =16;を返しますunsigned int runningValue =0; for(int x =0; x  

製造プロセス

  1. 分圧器
  2. ポテトバッテリー
  3. メーターとは何ですか?
  4. マルチメータ
  5. バッテリー構造
  6. バッテリー定格
  7. ポータブルスポット溶接機とは?
  8. ポータブル CMM マシン – 固定またはポータブル?
  9. 自動車に使われるバッテリーを理解する
  10. オルタネーターをテストするさまざまな方法
  11. オルタネーターの不良または故障の7つの兆候