*

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

関連記事

Arduino_Logo

Arduino nano(中華版)をセットアップしてみた

どもです。 突然ですが、「Arduino nano」互換(なのか?)の中華ボードを手に入れました。

記事を読む

toppers

C言語でEV3開発(25)-Q_Learningを実装してみた…が!?

どもです。 今回の内容は、「失敗しました」という内容です。 最近、流行になっている深層学習/

記事を読む

MY_MFC_LOGO

MFCプログラミング(3):クリップボードへのデータ形式の登録

どもです。 今回も、クリップボードネタです。 1.背景(簡単に) アプリケーションにコピー

記事を読む

no image

C言語でEV3開発(10)-opOUTPUT_CLEAR_COUNTコマンド

どもです。 前回のエントリーのラストで、「モーターを動かすコマンド」と書きましたが、今回紹介するコ

記事を読む

eclipse_cdt_top_100

C言語でEV3開発(3)

どもです。 今回のエントリーの内容は、前回まででセットアップした環境で、実際にEV3上で動く実行フ

記事を読む

raspberry-pi

QtでRaspberryPi/GUI開発(9)-SPI通信をしてみた

どもです。 えー。 「Qtで…」とか書いておきながら、今回はQtは出てきません。 今回のエ

記事を読む

no image

C言語でEV3開発(7)

どもです。 今回のエントリーでは、いよいよEV3を動かしていきます。 新しい環境に対して、最もよ

記事を読む

MindStormControl_SprachScreen

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

どもです。 前回に引き続き、今回もC#/WPFでの独自UI(ユーザーコントロール)の作成についての

記事を読む

raspberry-pi

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

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

記事を読む

raspberry-pi

RaspberryPi3を購入しました

どもです。 突然ですが、「Raspberry Pi3 model B」を購入しました。 今回のエ

記事を読む

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

Arduino_Logo
温度(湿度)センサを使ってみた(1)-ArduinoでDHT11

どもです。 今回は、久しぶりにセンサーを購入して使ってみたので、それ

GitHub
Windowsでのカバレッジ測定-OpenCppCoverageを使ってみた(2)

どもです。 前回のエントリーで、OpenCppCoverageという

GitHub
Windowsでのカバレッジ測定-OpenCppCoverageを使ってみた(1)

どもです。 ここ最近、Windows上で開発を行っています。 その

MY_MFC_LOGO
MFCプログラミング(4):Enter(ESC)キーでダイアログが閉じないようにするための設定

どもです。 前回、Enterキー/ESCキーでダイアログが閉じられる

MY_MFC_LOGO
MFCプログラミング(4):Enter(ESC)キーでダイアログが閉じないようにする

どもです。 今回は、キーボード入力の処理、特にEnterキー/ESC

→もっと見る

PAGE TOP ↑