5.7 光を感じる

フォトレジスタは、ポテンショメータと同様に、アナログ入力によく使用されるデバイスです。受ける光の強度に基づいて抵抗値が変化します。強い光にさらされると、フォトレジスタの抵抗は減少し、光の強度が低下すると抵抗は増加します。

フォトレジスタの値を読むことで、周囲の光の条件に関する情報を収集できます。この情報は、LEDの明るさを制御したり、センサーの感度を調整したり、プロジェクトで光依存のアクションを実装したりするなどのタスクに使用できます。

必要な部品

このプロジェクトには、以下のコンポーネントが必要です。

キット全体を購入すると確かに便利です。こちらがリンクです:

名前

このキットのアイテム

リンク

ESP32 Starter Kit

320+

ESP32 Starter Kit

以下のリンクから個別に購入することもできます。

コンポーネントの紹介

購入リンク

ESP32 WROOM 32E

BUY

ESP32カメラ拡張ボード

-

ブレッドボード

BUY

ジャンパーワイヤ

BUY

抵抗器

BUY

光電抵抗器

BUY

利用可能なピン

  • 利用可能なピン

    こちらは、このプロジェクトのためのESP32ボード上の利用可能なピンのリストです。

    利用可能なピン

    IO14, IO25, I35, I34, I39, I36

  • ストラッピングピン

    以下のピンはストラッピングピンで、電源オンまたはリセット時のESP32の起動プロセスに影響します。しかし、ESP32が正常に起動した後は、通常のピンとして使用できます。

    ストラッピングピン

    IO0, IO12

回路図

../../_images/circuit_5.7_photoresistor.png

光の強度が増すにつれて、光依存抵抗器(LDR)の抵抗値が減少し、その結果I35で読み取られる値が減少します。

配線図

../../_images/5.7_photoresistor_bb.png

コード

注釈

  • esp32-starter-kit-main\micropython\codes パスにある 5.7_feel_the_light.py ファイルを開くか、コードをThonnyにコピー&ペーストします。次に、「Run Current Script」をクリックするかF5キーを押して実行します。

  • 右下隅にある「MicroPython (ESP32).COMxx」インタプリタを選択してください。

from machine import ADC,Pin
import time

# create an ADC object acting on a pin
photoresistor = ADC(Pin(35, Pin.IN))

# Configure the ADC attenuation to 11dB for full range
photoresistor.atten(photoresistor.ATTN_11DB)

while True:

    # read a raw analog value in the range 0-4095
    value = photoresistor.read()
    print(value)
    time.sleep(0.05)

プログラムが実行された後、シェルはフォトレジスタの値を出力します。懐中電灯で照らしたり手で覆ったりして、値がどのように変化するかを確認できます。

  • atten(photoresistor.ATTN_11DB): ADCの減衰を11dBに設定して全範囲をカバーします。

    参照電圧以上の電圧を読み取るためには、attenキーワード引数で入力減衰を適用してください。

    有効な値(およびおおよその線形測定範囲)は以下の通りです:

    • ADC.ATTN_0DB: 減衰なし(100mV - 950mV)

    • ADC.ATTN_2_5DB: 2.5dBの減衰(100mV - 1250mV)

    • ADC.ATTN_6DB: 6dBの減衰(150mV - 1750mV)

    • ADC.ATTN_11DB: 11dBの減衰(150mV - 2450mV)

  • machine.ADC - MicroPythonドキュメント