3.3v −−− 10kΩ −−− sw −−− gpio24
・タクトスイッチの状態を判断
10KΩの代わりに
pi.set_pull_up_down(PIN24, pigpio.PUD_DOWN)でもOK
ただしうっかりミスを防ぐ意味で抵抗があるほうがベター
スイッチを押している間 1 離せば0
ただしswを離したときにgrandでなくオープン状態
#!/usr/bin/python
# -*- coding: utf-8 -*-
import pigpio
import time
pi=pigpio.pi()
Pin24=24
def setup():
pi.set_mode( Pin24, pigpio.INPUT)
def main():
while True:
swflg=False
print(pi.read(Pin24))
time.sleep(2)
def destroy():
pi.stop()
if __name__ == '__main__':
setup()
try:
main()
except KeyboardInterrupt:
destroy()
・押している間点灯 離せば消える
GPIO20 −−− 200Ω −−− +LED- −−− GND
チャタリング対策無し版
#!/usr/bin/python
# -*- coding: utf-8 -*-
import pigpio
import time
pi=pigpio.pi()
Pin24=24
Pin21=21
def setup():
pi.set_mode(Pin24, pigpio.INPUT)
pi.set_mode(Pin21, pigpio.OUTPUT)
def main():
while True:
if pi.read(Pin24)==1:
pi.write(Pin21, pigpio.HIGH)
else:
pi.write(Pin21, pigpio.LOW)
time.sleep(0.1)
def destroy():
pi.write(Pin21, pigpio.LOW)
pi.stop()
if __name__ == '__main__':
setup()
try:
main()
except KeyboardInterrupt:
destroy()
もう一歩でonoffの都度点灯と消灯を繰り返す
これ幾つか問題があって
1.swを離したときにgndでなくオープン状態
2.ループで繰り返している
!/usr/bin/python
# -*- coding: utf-8 -*-
import pigpio
import time
pi=pigpio.pi()
Pin24=24
Pin21=21
swflg = False
def setup():
pi.set_mode(Pin24, pigpio.INPUT)
pi.set_mode(Pin21, pigpio.OUTPUT)
def main():
swflg = False
while True:
if pi.read(Pin24)==1:
if swflg == True:
swflg=False
else:
swflg=True
if swflg == True:
pi.write(Pin21, pigpio.HIGH)
else:
pi.write(Pin21, pigpio.LOW)
time.sleep(1)
def destroy():
pi.write(Pin21, pigpio.LOW)
pi.stop()
if __name__ == '__main__':
setup()
try:
main()
except KeyboardInterrupt:
destroy()
・アースをちゃんと接続
3.3V −−− OFFのときはオープン
3.3V −−−ON−−− 10KΩ −−− GND
□□□□□□□□□□□|−−−−−−−−−−− GPIO24
#!/usr/bin/python
# -*- coding: utf-8 -*-
import pigpio
import time
pi=pigpio.pi()
Pin24=24
Pin21=21
def setup():
pi.set_mode(Pin24, pigpio.INPUT)
pi.set_mode(Pin21, pigpio.OUTPUT)
def main():
Swflg=False
while True:
if pi.read(Pin24)==1:
if Swflg == True:
Swflg=False
pi.write(Pin21, pigpio.LOW)
else:
Swflg=True
pi.write(Pin21, pigpio.HIGH)
time.sleep(1)
def destroy():
pi.write(Pin21, pigpio.LOW)
pi.stop()
if __name__ == '__main__':
setup()
try:
main()
except KeyboardInterrupt:
destroy()