*

フォトレジスタを使ってみた-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が明るくなったほうが分かりやすい」という考え、別々の回路としています。

関連記事

MY_MFC_LOGO

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

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

記事を読む

iot_at_home_eye_catch

IoT開発(14)
ESP-WROOM-02の稼働時間を延ばす工夫をしてみる

どもです。この記事は、以下の続きです。 IoT開発(4)-ESP-WROOM-02を電池で駆動

記事を読む

toppers

C言語でEV3開発(28)-EV3の移動距離を計算できるようにしてみた

どもです。 今回は、Ev3の移動距離の算出についてです。 1.算出方法について 移動距離は

記事を読む

no image

C言語でEV3開発(14)-opOUTPUT_TIME_SPEEDコマンド

どもです。 今回のエントリーは、モーターを動かすコマンドである「opOUTPUT_TIME_SPE

記事を読む

Splash

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

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

記事を読む

iot_at_home_eye_catch

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

どもです。この記事は、下記の記事の続き、「測定可能な期間」の結果発表です。IoT開発(5) ESP-

記事を読む

RasPi_Qt

QtでRaspberryPi/GUI開発(12)-gpioの状態をGUIに反映する

どもです。 今回は、gpioピンの状態(HIGH/LOW)の変化を画面上に即座に反映する方法につい

記事を読む

OpenCvLogo

RaspberryPiで物体検出(1)-白線検出への挑戦(1):輪郭検出による白線検出

どもです。 今回は、OpenCvを用いて道路の白線検出について、です。 1.今回の環境 O

記事を読む

no image

C言語でEV3開発(13)-opOUTPUT_STEP_SPEEDコマンド

どもです。 今回のエントリーは、モーターを動かすコマンドである 「opOUTPUT_STEP_S

記事を読む

toppers

C言語でEV3開発(27)-EV3にヒステリシス処理を実装してみた

どもです。 今回は、モーターから読み出した値に対するヒステリシス・フィルター処理です。 0.

記事を読む

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="">

c_sharp_eye_catch
セル内の「取り消し線で消された文字列」の削除を簡単にしてみた

どもです。 前回、C#/OpenXmlを用いて、エクセルのセル内

c_sharp_eye_catch
セル内の「取り消し線で消された文字列」を削除してみた

どもです。 今回は、C#/OpenXmlの組み合わせで、エクセル

c_sharp_eye_catch
C#でバッファの内容を表示する処理を実装してみた-
データ型に従って動的に書式を設定する

どもです。 最近、C#でバッファ/配列の値をコンソールに表示した

arduino_relay_switch_003_self_preservation_circuit_eye_catch
Arduinoでリレースイッチ(3)-自己保存回路

どもです。 前回の記事で、リレースイッチ「AE-G5V-DRV」

arduino_relay_switch_002_ae_g5v_drv_eye_catch
Arduinoでリレースイッチ(2)-AE-G5V-DRV

どもです。 前回の記事では、「フォトカプラリレー」を使用したLチ

→もっと見る

PAGE TOP ↑