こんにちは、エンジニアのオオバです。

定期的に執筆したいArduinoのパーツ調査記事シリーズです。

今回は光センサーを使ってみたいと思います。

→11万文字で徹底解説した「DOTweenの教科書」Unityアニメーションの超効率化ツールはこちら

光センサーとは

光センサー(CdSセル)は明るい状態だと抵抗値が小さく、暗くすると抵抗値が大きくなるという性質を持っています。

今回作るもの

光の明るさの値を取得して、しきい値を超えたらLEDが点灯するみたいなものを作ってみます。

Arduino 光センサーを使ってみる_0

指で光センサに触れたらLEDを光らせます。

光センサをアナログピンから電圧を取得し、その値によってLEDの点灯/消灯を切り替えてみるサンプルです。

光センサー使用サンプル · GitHub

Arduino側

Arduino 光センサーを使ってみる_1

少し補足説明

赤ケーブルからは5Vの電圧が出力されます。
黄色ケーブルのA0番ピンはアナログ入力ピンです。デジタルとアナログの2種類が存在し、デジタルピンHIGH(5V) / LOW(0V)の状態が取得でき、アナログピンは電圧を0〜1023の数値で取得することができます。
例えば5Vの電圧が流れてきている場合、1023とパソコン上で表示されれば、5Vですし、100と表示されれば、5*100/1023 = 約0.488Vで流れてきているということになります。

ブレッドボード側

Arduino 光センサーを使ってみる_2

抵抗器について

何も知らずに使うのもアレなので、もう少し抵抗器について調べておきます。
今回のタイプの抵抗器をカーボン皮膜抵抗器と呼びます。

カーボン皮膜抵抗器にはカラーコードがあり、そこから抵抗値を割り出すことができます。

Arduino 光センサーを使ってみる_3

コチラの画像のようにカラーコードに割る振られた数値から抵抗値を計算できます。

4本線の場合は、

本数内容
1本目10の位の数値
2本目1の位の数値
3本目乗算値
4本目誤差

今回使用した抵抗値は、茶1、青6、赤10^2、金(誤差±5%)なので、16*100 = 1600 = 1.6kΩ(誤差±5%)の抵抗ということになります。

Arduino 光センサーを使ってみる_4

このように光センサーを指で触ると(暗くすると)、LEDが点灯します。

オススメ記事
検証環境