Arduino/RaspberryPiで紫外線センサーモジュール(ML8511)を使う

 紫外線センサー(ML8511)をArduino/RaspberryPiから使ってみました。モジュール品があるため、ArduinoやRaspberryPi(ラズパイ)などから比較的簡単に使うことができると思います。

▼紫外線センサーモジュール(amazon)▼

Ren He GY-8511 紫外線センサー UV検出 モジュール 280nm-390nm アナログ出力

新品価格
¥799から
(2022/1/20 11:40時点)

 必要な外付け部品は付いてるので、Arduinoとかと結線すればすぐ使えます。今回は秋月から入手したML8511モジュールを使用します。

スポンサーリンク

結線&ソース

Pico 3V3(OUT) ⇔ ML8511 VDD
Pico Gnd      ⇔ ML8511 GND
Pico 3V3(OUT) ⇔ ML8511 EN
Pico A0(GP26) ⇔ ML8511 Vo

 今回は、ラズパイPicoでテストしてますが、Arduinoでも内容は同じです。紫外線モジュールのVoから紫外線強度に応じた電圧が出力されます。それをラズパイのADCで読み取る形で紫外線を検出します。

▼ソース▼

// 2022/01/16 imo lab.
//https://garchiving.com/

uint16_t raw;
float v;

void setup() {
  pinMode(25, OUTPUT);
  Serial.begin(115200);
}

void loop() {
  digitalWrite(25, !digitalRead(25));
  raw = analogRead(A0);
  v   = raw * 3.3 / (1 << 12); //Pico
  //v   = raw * 5.0 / (1 << 10); //UNO
  Serial.println(raw);
  //Serial.println(v);
  delay(50);
}

 Pico用のソースですが、ArduinoUnoでもそのまま動きます。Unoで使う場合は、ONボードのLEDピンアサインが違うので25ピンのところを ⇒13ピンに変更すればLED点滅します。

可動確認

 レジンを硬化させるUSB紫外線ライトをセンサーにあててます。センサーの反応は想定通りだったのですが、検出される値がイマイチ不明です。

 データシートによると全く光が無い(紫外線が無い)ところで、センサーVoからは1.0V出力とのこと。Picoであれば、3.3V基準電圧の12bit ADCなので検出できるbit値は暗いところでおよそ1240程度のはず、、ArduinoUNOであればbit値は205程度のはずです。

 ですが、暗いところで測定しても、なぜか3300程度(2.65V程度)を検出してしまいます。動画のように紫外線に反応はするようなのですが検出値がデータシートと合わない…。光源離していくとその距離に応じて検出値が下がっていくので反応としては良さそう。いろいろ試したのですがイマイチ不明。

コメント