磁気スイッチ(Reedスイッチ)であそぶ

どんなうごき

Reedスイッチは磁石などの磁力でONするスイッチ

つくりかた

用意するもの

せつぞく

プログラム

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に電圧差が生まれなくなるので光らなくなります。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

趣味で生きていけたらを夢見る中年サラリーマン。
なお、趣味>仕事のため出世の見込みはない模様。

コメント

コメントする

目次