人感センサー(+高輝度LED)であそぶ

どんなうごき

人センサーは人が出す赤外線を電圧に変換して検知するセンサーです。このサンプルでは人が近づくと高輝度LEDが点灯するようにしています。

つくりかた

用意するもの

せつぞく
せつぞくは機能ごとに説明するためLED部分と人感センサー部分に分けています。実際に作る際には、2つをがっちゃんこしてください。

(LED部分)

(人感センサー部分)

プログラム

import network
import socket
import ntptime
import time
from machine import Pin, RTC
#from secrets import secrets
import utime

led = Pin("LED", machine.Pin.OUT) # ラズパイ動作確認用
ledState = 'LED State Unknown'
GP16_LED = Pin(16, Pin.OUT)
GP28_PIR = Pin(28, Pin.IN, Pin.PULL_DOWN)  # GP28をRainとして入力端子()に設定




# スイッチの押下を割り込み
def log_button_press(pin):
    GP16_LED.value(1) # LED ON
    #タイマー割り込み
    timer = machine.Timer()
    timer.init(period=300000, mode=machine.Timer.ONE_SHOT, callback=OFF_led) # 300 秒後にきれる

def OFF_led(timer):
    #print("LED点灯:", formatted_time)
    #time.sleep(3)#300sec wait
    GP16_LED = Pin(16, Pin.OUT) #LED OFF
    GP16_LED.value(0)

timer = machine.Timer()
#timer.init(period=300000, mode=machine.Timer.PERIODIC, callback=OFF_led)

# 割り込み(スイッチが押されたら実行)
GP28_PIR.irq(trigger=Pin.IRQ_FALLING, handler=log_button_press)


#LEDをはじめに切って、状態を決めておく。
GP16_LED.value(0)

def loop():
    while True:
        #割り込み処理を利用しているため、回しておくだけ
        time.sleep(0.2)  #0.2secの待ち


#プログラムスタート
if __name__ == '__main__':     #プログラムスタート
   try:
        loop()
    except KeyboardInterrupt:  # Ctrl+C で中断処理
        destroy()

できたもの

詳細説明

 センサー部分

 よく見ると2本の導線でできています。この導線の間に雨粒などが入ると、雨粒によって導線間の電気抵抗が下がります。こ

ランニング

音楽

釣り

筋トレ

ゴルフ

登山

キャンプ

旅行

剣道

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

この記事を書いた人

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

目次