こんにちは、まんぼうです。
今回は、ラズパイの方からプログラムをいじることでLEDの明るさを調整できるようにしたいと思います。
それでは早速いきましょう。
始めに
使う道具や回路などは前回と同じなので細かいことは前回の記事を見てください
考え方
どうやって明るさを調整するかということを説明する前に、蛍光灯はどうやって光っているか知っていますか?
スマホなどのカメラで蛍光灯を見たことがある方は分かると思いますが、ちかちか点滅しています。
あれは人間の目では捉えることのできない速さで点いたり消えたりを繰り返しているのです。
LEDは電圧をかければ半導体が反応して光を発するという仕組みなので点滅は繰り返しません。
ただLEDの特徴として、「反応が早い」ということがあります。
これはどういうことかというと、点けて、と命令してから点けるまでのタイムラグがほとんどないということです。
なので、プログラムで人間が捉えることのできない速さで点滅を繰り返させれば、蛍光灯と同じように光らせることができるのです。
人間の目では点滅は見えないものの、消えている時間が長いと若干暗く見えます。
なのでプログラムで秒数をそのように設定すれば暗く点灯させることができます。
さらにその秒数を変更することで様々な明るさに変更可能になるということです。
プログラム
使用言語はPythonです。
#! /user/bin/env python
import RPi.GPIO as GPIO
import time
GPIO.cleanup()
GPIO.setmode(GPIO.BCM)
GPIO.setup(4, GPIO.OUT) #赤線
GPIO.setup(17, GPIO.OUT) #黄色線
while True:
count = 0
while count < 1000:
GPIO.output(4, GPIO.HIGH)
time.sleep(0.01)
GPIO.output(4, GPIO.LOW)
time.sleep(0.01)
while True:
count = 0
while count < 1000:
GPIO.output(17, GPIO.HIGH)
time.sleep(0.01)
GPIO.output(17, GPIO.LOW)
time.sleep(0.07)
count += 1
結果

こんな感じで光ります。
片方は前回同様に普通に点灯させ、もう片方は暗めに点灯させています。
写真だとめちゃめちゃ分かりづらいですが、実際だと右側が暗めに点灯しているように見えます
まとめ
いかがでしょうか。
この様に既にある技術を応用して、ちょっとした工夫で明るさを調整できます。
今度は何しようかな…、こんなことやってほしいとかリクエストがあればお待ちしております。
それではまた―。