S12SD UVR(GUVA-S12SD)はUVセンサーのモジュールだ。
AliExpressで買った(送料込み$2.08)モジュールのシルクにはS12SD UVRとある。
AdafruitではGUVA-S12SDとなっている。
GUVA-S12SDという紫外線を検知するセンサーにオペアンプをつけたモジュールだ。
240~380nm程度の波長の電磁波に反応し、
光の強さに応じて電流がリニアに変化する。
例によって最初に見つけたライブラリをもらってきてArduino Nanoで試す。
README.mdにあったスケッチにserial.begin(9600);を追加しただけで実行してみた。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#include <GUVA-S12SD.h> GUVAS12SD uv(A0); void setup() { // Nothing TODO Serial.begin(9600); } void loop() { float mV = uv.read(); float uv_index = uv.index(mV); Serial.println(uv_index); } |
普通のLEDライトをどれだけ近づけても何の反応もなかったが、これまたAliExpressで買ったLED UVライト(「中華製UVライトとダイソー速乾UVレジン液を試す。」)を近づけたら上のように9まで値が上がった。
UVに反応していることは確かなようだ。
ていうか、まあ、UVレジンを30秒で硬化させたライトだから確かにUVライトなんだろう、という前提での話だ。
そこまでAliExpress経由の製品を疑う必要もないけど…。
要は電圧を読み取ってAD変換値をUV Indexに換算して表示するだけなので、下のスケッチの方がそのものずばりでわかりやすい。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
void setup() { Serial.begin(9600); } void loop() { float sensorVoltage; float sensorValue; sensorValue = analogRead(A0); sensorVoltage = sensorValue/1024*3.3; Serial.print("sensor reading = "); Serial.print(sensorValue); Serial.println(""); Serial.print("sensor voltage = "); Serial.print(sensorVoltage); Serial.println(" V"); delay(1000); } |
測定値とUV Indexの換算表をよく見かけたので貼っておく。
WHOの資料からUV Indexに応じた紫外線対策の表。
UV Indexが9に達するのは本州では晴天の真夏の真昼間とかの限られた時間だ(http://www.data.jma.go.jp/gmd/env/uvhp/info_uv.html)。
なので、UVレジンをいつでも効率よく硬化させたきゃUVライトは必要ってことだろう。
AliExpressで買ったモジュールにはピン情報のシルク印刷は全く無いが、パターンを追って確認し、3.3V、GND、A0に接続してある。