渋谷ほととぎす通信

新しいこと、枯れたこと問わず大庭が興味を持ったものを調査、生活の効率を求める完全趣味の技術ブログ。基礎を大事にしています。

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


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

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

光センサーとは

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

今回作るもの

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

f:id:esakun:20181116014549g:plain:w450
指で光センサに触れたらLEDを光らせます。

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

Arduino側

f:id:esakun:20181116014508p:plain:w450

  • 黄色ケーブル : A0番ピン
  • 青ケーブル : GNDピン
  • 赤ケーブル : 5Vピン
  • LED : 13番ピンとGNDピン

少し補足説明

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

ブレッドボード側

f:id:esakun:20181116014535p:plain:w450

  • 黄色ケーブル : 14番
  • 青ケーブル : 20番
  • 赤ケーブル : 22番
  • 光センサー : 14番、22番
  • 抵抗器 : 14番、20番

抵抗器について

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

カーボン皮膜抵抗器にはカラーコードがあり、そこから抵抗値を割り出すことができます。 f:id:esakun:20181118024124p:plain:w240
引用元 : 抵抗器 | Wikipedia
コチラの画像のようにカラーコードに割る振られた数値から抵抗値を計算できます。

4本線の場合は、

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

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

f:id:esakun:20181116014549g:plain:w450

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

参考