*

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

関連記事

raspberry-pi

libpigpioでのRaspberryPi3とArduinoのSPI通信

どもです。 今回は、libpigpioを使用してRaspberryPi3とArduinoでSPI通

記事を読む

no image

C言語でEV3開発(8)-opOUTPUT_POWERコマンド

どもです。 今回のエントリーでは、EV3でモーターを動かします。 なお、今回のエントリーでも

記事を読む

Arduino_Logo

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

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

記事を読む

no image

C言語でEV3開発(12)-opOUTPUT_TIME_POWERコマンド

どもです。 今回のエントリーでは、これまた前回に引き続き、モーターを動かすためのコマンドについて書

記事を読む

RasPi_Qt

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

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

記事を読む

no image

C言語でEV3開発(11)-opOUTPUT_STEP_POWERコマンド

どもです。 今回のエントリーでは、再びモーターを動かすためのコマンドについて書きます。 コマンド

記事を読む

eclipse_cdt_top_100

C言語でEV3開発(3)

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

記事を読む

toppers

C言語でEV3開発(22)-ロギング機能

どもです。 前回は、モーターの出力を制御する方法について記載しました。その際に、モータ/車体が期待

記事を読む

raspberry-pi

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

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

記事を読む

eclipse_oxygen

苦肉の策でLinux/EclipseでRaspberryPiのクロス環境を構築してみた

どもです。 前回のエントリでは、仮想環境(VirtaulBox)を用いたRaspberryPi3の

記事を読む

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

GitHub
C/C++のスタブを自動生成するツールを公開しました

(テーマ) C/C++のスタブを自動生成するツールを公開しました

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

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

no image
PC自作2019 – Windows10への移行

どもです。 突然ですが、PCを交換しました。 1. 何があ

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

どもです。 今回は、gpioピンの状態(HIGH/LOW)の変化を画

raspberry-pi
RaspberryPi起動時にpigpiodがスタートしないようにする

どもです。 これまでpigpioを使用してRaspberryPiから

→もっと見る

PAGE TOP ↑