*

フォトレジスタを使ってみた-Arduinoで光検出

公開日: : Arduino, 開発

どもです。
今回は、タイトル通り「フォトレジスタの使い方」です。

1.フォトレジスタって何?

フォトレジスタとは、「入射する光の強度が増すと電気抵抗が小さくなるセンサー」です。
この性質を利用して、光の検出に利用されます。

2.フォトレジスタで何をするの?

前述のとおり、「光の検出」を行ってみます。
ここでの「光の検出」とは、「光が当たった」ことの検出と、「光が当たらなくなった」ことの検出です。
この両方に挑戦してみます。

3.光の検出の前に

3.1.使用するH/W

フォトレジスターは前述のとおり、その抵抗値が変化します。
しかし、抵抗値を直接測定するための道具が手元にありません。
そのため、アナログ入力を持つArduinoを利用して、入力電圧を測定することで、その抵抗値が大きくなった、小さくなったことを確認します。

3.2.使用する回路

入力電圧の変化を通じて、フォトレジスタの抵抗値の変化を測定するための回路を考えます。
今回は、わかりやすさのために、以下のような回路を基本に考えていきます。
PhotoResiter_Circuit
回路上に配置された2つの抵抗値のいずれかをフォトレジスタに置き換えて、考えていきます。
なお、配置する抵抗の値は、「2.2kΩ」固定とします。

3.2.抵抗にかかる電圧

上記回路図の抵抗R1、R2それぞれの電圧は、次の式で算出できます。
PhotoRegister_eq001
PhotoRegister_eq003

今回、ArduinoのA5ピンへの入力電圧を測定していきますが、このピンの電圧はE2となります。

3.3.光の強度と抵抗

フォトレジスタの抵抗値は、「入射する光の強度が増すと電気抵抗が小さく」なります。
そのため、フォトレジスタの抵抗値Rpと光の強度luxの間には、下記の関係が成り立ちます。
PhotoRegister_eq005

これらの数式を頭に入れたうえで、「光が当たった」ことの検出と、「光が当たらなくなった」ことの検出を行います。

4.光の検出

4.1.(1) 「光が当たった」ことの検出

「光が当たった」ことを検出する際には、R1をフォトレジスタとします。
このときの電圧E2は、luxを使用して下記の式で表せます。
PhotoRegister_eq004
PhotoRegister_eq008
PhotoRegister_eq012
この式からE2は、「光が当たると大きくなる」ということが言えます。

4.1.(2) 実証!

実験してみました。
その結果がコチラ!!

フォトレジスタに光を当てると、LEDが明るくなっていることが確認できます。
すなわち、「光が当たった」ことの検出ができています。

4.2.(1) 「光が当たらなくなった」ことの検出

「光が当たらなくなった」ことを検出する際には、R2をフォトレジスタとします。
このときの電圧E2は、luxを使用して下記の式で表せます。
PhotoRegister_eq004
PhotoRegister_eq014
PhotoRegister_eq016
PhotoRegister_eq018
この式からE2は、「光が当たると小さくなる」ということが言えます。

4.2.(2) 実証!

実験してみました。
その結果がコチラ!!
フォトレジスタに光を当てると、LEDが暗くなっていることが確認できます。
すなわち、「光が当たらなくなった」ことの検出ができています。

5.まとめ

今回、フォトレジスタを利用して、「光の検出」を行ってみました。
回路のつなぎ方次第で、「光が当たった」こと、「光が当たらなくなった」ことの両方が検出できることがわかりました。
これを利用することで、光の強度に従ってスイッチのON/OFFが切り替わるモノを作れます。

ではっ!

余談

「光が当たった」こと、「光が当たらなくなった」ことの検出で回路を変更していますが、いずれの回路でも光の当たり方次第でLEDの明るさは変化します。
そのため、「回路を変更する必要はない」とも考えられます。
しかし、「検出したい現象に対して、LEDが明るくなったほうが分かりやすい」という考え、別々の回路としています。

関連記事

MindStormControl_SprachScreen

EV3開発サポートツール(1)-C#のユーザーコントロール開発

どもです。 突然ですが、今回はC#に関するエントリになります。 具体的には、C#/WPFで、独自

記事を読む

Splash

EV3開発サポートツール(3)-Ev3Controller

どもです。 今回は、以前ちらりと紹介した、Ev3のモーターの出力を調整するアプリケーションについて

記事を読む

toppers

C言語でEV3開発(18)-モードの遷移の設計-コマンド通信処理の準備

 どもです。  今回は、前回紹介したEv3とBluetoothで通信する機能を

記事を読む

MY_MFC_LOGO

MFCプログラミング(1):CFileまたはCStdioFileクラスを使用してファイル出力

どもです。 突然ですが、仕事でMFCを使用することになりました。 MFCはこれまで触ったことがな

記事を読む

Arduino_Logo

ホールセンサーの種類と使い方(割込み編)

どもです。 前回に引き続き、今回もホールセンサーについてです。 1.前回からの違い 前回の

記事を読む

raspberry-pi

QtでRaspberryPi/GUI開発(1):ためしに時計を作ってみた

どもです。 また更新の間隔が空いてしまいました。 久しぶりの更新です。 前回のエントリーで

記事を読む

RasPi_Qt

QtでRaspberryPi/GUI開発(4):イベントハンドラの設定

どもです。 前回のエントリーで、「タッチスクリーンを買った」と書きました。 今回からは、このタッ

記事を読む

think_about_utest

単体テストの効率化を考える(2)-スタブの戻り値

どもです。 「単体テストの効率化について考える」の2回目です。 (1回目はコチラ:単体テスト

記事を読む

Arduino_Logo

ホールセンサーの種類と使い方

どもです。 今回のエントリは、表題にある「ホールセンサー」についてです。 1.「ホールセンサ

記事を読む

source_trail_eye_catch

Sourcetrailを試してみました(2)-Eclipseと連携

どもです。 前回のエントリで、ソースコードを解析するオープンソース「Sourcetrail」を紹介

記事を読む

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

iot_raspberrypi_gateway_001_eye_catch
IoT開発(12)
RaspberryPiをIoTゲートウェイにする(V)
nginxとuWSGIの連携

どもです。このエントリは、以下のエントリの続きです。 IoT開発(6

iot_at_home_eye_catch
IoT開発(11)
ESP-WROOM-02を長時間駆動させた

どもです。この記事は、下記の記事の続き、「測定可能な期間」の結果発表で

iot_raspberrypi_gateway_001_eye_catch
IoT開発(10)
RaspberryPiをIoTゲートウェイにする(IV)
Appサーバーのセットアップ

この記事は、下記の記事の続きです。 IoT開発(6) Raspb

iot_raspberrypi_gateway_001_eye_catch
IoT開発(9)
RaspberryPiをIoTゲートウェイにする(III)
MariaDBのセットアップ

どもです。今回のエントリは、以下のエントリの続きです。 IoT開発(

iot_raspberrypi_gateway_001_eye_catch
IoT開発(8)
RaspberryPiをIoTゲートウェイにする(II)-ex
MariaDBにPHPからアクセス

どもです。 このエントリは、前回のエントリの追加項目です。 前

→もっと見る

PAGE TOP ↑