IOT入門その5 SW割り込みでLチカ

pigpioの割り込み関数callbackを使ってLEDのONOFFを実行
SWの接続は SWは横側でOnOff
 SWOFF時 3.3V −−− SWオープン
 SWON時 3.3V −−− SWクローズ −−− 10kΩ −−− GND
 □□□□□□□□□□□□□□□□□□□□□□□□□□□□|−−−  gpio24
  つまり電流は 10kΩ側とgpio側に分岐して流れる

LEDは gpio21 −−− +LED- −−− 200Ω −−− GND

ボタンを押す都度、LEDがONOFF 
tickで起動時からの時間を見ているので、一定時間内は無視するロジックを
入れてください

#!/usr/bin/python
# -*- coding: utf-8 -*-


import pigpio
import time
LedPin = 21
PIN=24
pi = pigpio.pi()
Led_status = True
def setup():
    pi.set_mode(PIN, pigpio.INPUT)
    pi.set_mode(LedPin, pigpio.OUTPUT)
    pi.write(LedPin, pigpio.HIGH)
    
def cb_interrupt(gpio, level, tick):
    global Led_status
    print(tick)
    if Led_status==True:
       pi.write(LedPin, pigpio.LOW)
       print('LED OFF')
       Led_status = False
    else:
       pi.write(LedPin, pigpio.HIGH)
       print('LED ON')
       Led_status = True

def main():
    cb = pi.callback(PIN, pigpio.FALLING_EDGE, cb_interrupt)
    while True:
        time.sleep(1)

def destroy():
    pi.write(LedPin, pigpio.LOW)
    pi.stop()

if __name__ == '__main__':
    setup()
    try:
        main()
    except KeyboardInterrupt:
        destroy()

 

カテゴリー iot