部屋の明るさによってLEDの点灯を制御してみる

スポンサーリンク

IMG_3958

前回の 半固定抵抗を使って電圧を調整してみる の続き。取り出した値と部屋の光の明るさでLEDの点灯消灯を制御してみたいと思います。

はじめる前に

部屋の明るさによるLEDの消灯の実装に際して下記パーツを用意しました。
半固定抵抗を使って電圧を調整してみる で使用したパーツ一式
・フォトレジスタ(cdsセル)

フォトレジスタ
IMG_3955

Raspberry Piとブレッドボードを接続する

完成回路は下記。

ping-pongv1_ブレッドボード

前回の 半固定抵抗を使って電圧を調整してみる とほぼ配線は同じ。
変わったところは、、、
・フォトレジスタ(cdsセル)の設置
・LEDの設置
の2点のみです。

このフォトレジスタを使用すると、入射する光の強度によって電気抵抗を低下することができます。この電気の抵抗の低下を判断し、プログラミングすれば部屋が暗くなっている時にLEDを点灯させることができます。

Pythonを使ったLED点灯の制御スクリプト

部屋が暗くなったらLEDを点灯させるようにスクリプトを書いていきます。

# coding: utf-8
import RPi.GPIO as GPIO
import time
 
def read(adcnum, sclk, mosi, miso, ce0):
     
    if adcnum > 7 or adcnum < 0:
        return -1
 
    GPIO.output(ce0, GPIO.HIGH)
    GPIO.output(sclk, GPIO.LOW)
    GPIO.output(ce0, GPIO.LOW)
 
    commandout = adcnum
    commandout |= 0x18
    commandout <<= 3
 
    for i in range(5):
        if commandout & 0x80:
            GPIO.output(mosi, GPIO.HIGH)
        else:
            GPIO.output(mosi, GPIO.LOW)
        commandout << 1
 
        GPIO.output(sclk, GPIO.HIGH)
        GPIO.output(sclk, GPIO.LOW)
    adcout = 0
 
    for i in range(13):
        GPIO.output(sclk, GPIO.HIGH)
        GPIO.output(sclk, GPIO.LOW)
        adcout <<= 1
        if i>0 and GPIO.input(miso) == GPIO.HIGH:
            adcout |= 0x1
    GPIO.output(ce0, GPIO.HIGH)
    return adcout
         
GPIO.setmode(GPIO.BCM)
sclk = 11
miso = 9
mosi = 10
ce0 = 8
 
GPIO.setup(sclk, GPIO.OUT)
GPIO.setup(miso, GPIO.IN)
GPIO.setup(mosi, GPIO.OUT)
GPIO.setup(ce0, GPIO.OUT)
GPIO.setup(25, GPIO.OUT)

try:
 
    while True:
         
        data = read(0, sclk, mosi, miso, ce0)
        print(data)
        if data < 2000:
                GPIO.output(25, GPIO.HIGH)
        else:
                GPIO.output(25, GPIO.LOW)
        time.sleep(0.2)
     
except KeyboardInterrupt:
    GPIO.cleanup()

スクリプトは、前回の 半固定抵抗を使って電圧を調整してみる をそのまま使っています。

追加した箇所は2点です。
1点目は、48行目のGPIO.setup(25, GPIO.OUT)です。
LEDの点灯は GPIO 25番を使用しているので、GPIO 25番を使用するように設定します。

2点目は、56行目〜59行目です。ここでLEDの点灯消灯の制御をしています。
取り出してきた値を2000下回るようであればLEDを点灯するようにしています。

明暗によりLEDが点灯/消灯するか試してみる

早速試してみます。
IMG_3957
※クリックして画像を表示するとタスクスイッチを使ったLED点灯のGIFアニメを表示できます。

参考文献

・Raspberry Piで学ぶ電子工作(金丸隆志 著)
フォトレジスタ

スポンサーリンク
スポンサーリンク
スポンサーリンク

フォローする

スポンサーリンク
スポンサーリンク