Arduinoでフォトリフレクタを扱う記事は、ネットよくに載っています。今回はラズパイでやってみました。まとめておきます。
#フォトリフレクタについて
赤外線LEDとフォトトランジスタが1つになったものです。
黒いものは赤外線を吸収します。しかし白いものは反射するので、それがベース電流となって電流が流れます。
回転速度やライントレースなどに使われています。
#動作環境
Raspberry Pi 4 Model B
Python3.7.3
#準備するもの
- フォトリフレクタ
LBR-127HLD や TPR-105が有名です。 - 抵抗 ( 220Ωと1kΩ )
- ブレッドボード
- ジャンパ線
#配線
型番ごとに、それぞれのピンの役割が違います。データシートを見ながら行ってください。
- 5V (GPIO2,4番) からアノードとコレクタへ繋ぐ
- カソードから220Ω抵抗を入れて、GND (GPIO6,9番など)へ接続
- エミッタから1kΩ抵抗を入れて、GPIO11番へ繋ぐ
#プログラム
白い紙や指を近づけると、値が"1"に変化する内容です。
photo.py
import RPi.GPIO as GPIO
import time
pin = 11 #GPIOのピン番号は、変更可
GPIO.setmode(GPIO.BCM)
GPIO.setup(PNO, GPIO.IN)
while True:
try:
print(GPIO.input(PNO)) #センサーの値を出力
time.sleep(0.8) #0.8秒間隔で
except KeyboardInterrupt:
pass
GPIO.cleanup()
#注意点
製品ごとに異なりますが、フォトリフレクタと検出物(白い紙など)との距離がかなり近くないと精度は良くありません。使ってみて、屋外など他の光に影響されない場所での方が安定する気がしました。