-
Notifications
You must be signed in to change notification settings - Fork 1
/
m_009_infrared.py
77 lines (66 loc) · 1.8 KB
/
m_009_infrared.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#! python3
# Filename: m_009_infrared
__author__ = "raspython"
__date__ = '2020/09/06 08:43'
import RPi.GPIO as GPIO
from time import sleep
def main():
"""
本体
"""
"""
PIN_NOの定義
"""
# スイッチ
sw_i = 5
led_r = 6
led_b = 13
"""
GPIOの初期設定
"""
# PIN_NOの設定
GPIO.setmode(GPIO.BCM)
# 入力
GPIO.setup(sw_i, GPIO.IN, pull_up_down=GPIO.PUD_UP)
# 出力
GPIO.setup([led_r, led_b], GPIO.OUT, initial=GPIO.LOW)
"""
変数
"""
flag = True
count = 0
"""
実行部
"""
try:
while True:
# 赤外線が遮られた時の処理
if GPIO.input(sw_i) == GPIO.HIGH and flag:
# flagの値を反転
flag = not flag
# print("flagが反転 {}".format(flag))
# LED青点灯
GPIO.output(led_b, GPIO.HIGH)
# 通ったものがなくなったときの処理
if GPIO.input(sw_i) != GPIO.HIGH and flag == False:
# カウントアップ
count += 1
print("カウンター 【{}】".format(count))
# flagの値を反転
flag = not flag
# print("flagが反転 {}".format(flag))
# LED消灯
GPIO.output(led_b, GPIO.LOW)
if count == 10:
print("カウントが10になったので終了")
# LED赤を1秒点灯させてから消灯して
# ループを抜ける
GPIO.output(led_r, GPIO.HIGH)
sleep(1)
GPIO.output(led_r, GPIO.LOW)
break
except KeyboardInterrupt:
pass
GPIO.cleanup()
if __name__ == '__main__':
main()