Arduino実験室 (その2) 光センサとアナログ通信

こんにちは、ミウラネットワークスの三浦です。

前回の続きで、光センサ(CdSセル)によるLEDの調光です。光センサの明るさの変化を抵抗値に変換し、センサを遮るとLEDは暗くなり、センサに遮るものを無くすとLEDが明るくなることの確認を行います。あわせてシリアルポートでアナログの信号レベルを測定しました。LEDの明るさの変化が微妙だったのでそれを確認する意味で追加試験しました。

光センサによるLEDの調光

写真の左上にCdSの光センサが追加されました。ここを指で塞ぐとLEDが暗くなり、離すとLEDが明るくなりました。(微妙な変化ですが・・・)

念のためモニタ画面にて測定値を表示。指でセンサを塞ぐと数値が小さくなり、離すと数値が大きくなることを確認できました。

モニタ画面の例

スケッチの例

// アナログ入力でLEDの明るさを変える
// 並行してシリアルポートでモニタリング 

const int LED = 9;
const int SENSOR = 0;
int val = 0;

void setup() 
{
  pinMode(LED, OUTPUT);
  Serial.begin(9600);
}

void loop()
{
  val = analogRead(SENSOR);
  analogWrite(LED, val/4);
  Serial.println(val);
  delay(1000);
}

なお、val値を4で割っているのは、analogRead()の返し値が最大1023とのことで、一方analogWrite()の受付値が最大255のため、その調整です。

次はネットワーク環境を使って何か実験したいですが、Arduino UnoにはWi-Fi環境がないので、ESP-WROOM-02を調達してみたいと思います。

今回も、オライリー・ジャパン(発行)オーム社(発売)の「Arduinoをはじめよう」第3版を参考にさせていただきました。大変勉強になる本です。

ではまた。

次の記事

起業のBefore-After