どんなうごき
Reedスイッチは磁石などの磁力でONするスイッチ
つくりかた
用意するもの
- Raspberry Pi pico
- microUSBケーブル
- PC(WindowsかMac)
- ブレッドボード
- ブレッドボード用ケーブル
- Reedスイッチ ←こちらのキットの中にあります。単品を見つけられませんでした。
せつぞく
プログラム
from machine import Pin, PWM
import time
#RaspberryPiの動作確認:LED点灯(LED3回点滅)
led = Pin(25, Pin.OUT) #RaspberryPiにのっているLEDはGP25、出力設定にする。
led.value(0) #GP25をL出力
print('Program Start')
for i in range (6):
led.toggle() #toggleは H -> L ,L -> H
time.sleep(0.3) #0.3secのWait
#Pinの初期設定
Pin_ReedSW = Pin(28 , Pin.IN , Pin.PULL_UP) #GP28=34番pinを入力,プルアップ抵抗を付ける状態に設定
def loop():
while True: #Whileの後がTrueの間繰り返す。
led.value(Pin_ReedSW.value()) #Reedスイッチが反応に合わせて、RaspberryPiのLEDが点灯/消灯する
time.sleep(0.1) #0.1secのWait
#緊急停止のときの処理、使用したポートは入力にしておけば壊れにくい。
def destroy():
Pin_ReedSW=Pin(28,Pin.IN)
#プログラムスタート
if __name__ == '__main__': #プログラムスタート
try:
loop()
except KeyboardInterrupt: # Ctrl+C で中断処理
destroy()
できたもの
磁気スイッチに磁石を近づけると、スイッチがONして、ラズパイのLEDが消えるようにできた
詳細説明
Reedスイッチモジュールの回路図
LM393はオペアンプです。この回路ではコンパレーターとして使っています。コンパレーターとは、LM393の+端子(以降+IN)の電圧とー端子(以降-IN)の電圧で比較し、+IN>-INのときは出力がHi-z(インピーダンスが高く断線しているような状態)、+IN<-INのときはLow出力(0V)するように、アナログな入力をIOのデジタルに変換するのに使えます。
ReedSwitchがON(磁石が近づきスイッチが押されている)とき、
ReedSwitchが導通するので、LM393の+INのかかる電圧は0Vになります。
-INにかかる電圧はVR1の抵抗で調整でき、上側5kΩ、下側5kΩぐらいでボリュームを調整すると、VCC÷2になるので、+IN < -IN という関係になりHigh出力になります。IOがLow出力=0VとなるのでLEDに電圧差が生まれ光ります。
ReedSwitchがOFF(スイッチが押されていない)とき、
ReedSwitchが導通しないので、LM393の+INのかかる電圧はVccになります。
-INはVCC÷2とすると、+IN > -IN となり、Low出力になります。IOがHi-z=断線となるので、10kΩの抵抗によりプルアップされLEDに電圧差が生まれなくなるので光らなくなります。
コメント