오늘이라도

[Raspberry Pi] 5. 버튼 눌러서 LED 시간 증가 본문

취업성공패키지 SW 개발자 교육/사물 인터넷(IoT)

[Raspberry Pi] 5. 버튼 눌러서 LED 시간 증가

upcake_ 2020. 7. 10. 14:41
반응형

https://github.com/upcake/Class_Examples

교육 중에 작성한 예제들은 깃허브에 올려두고 있습니다. 

gif 파일은 클릭해서 보는 것이 정확합니다.


 - 버튼 눌러서 LED 점등 시간 증가 -

#버튼 한 번 누를때마다
#LED 켜지는 시간 10초씩 증가

import RPi.GPIO as GPIO
import time

led_pin = 7
pushButton_pin = 11

GPIO.setmode(GPIO.BOARD)
GPIO.setup(led_pin, GPIO.OUT)
GPIO.setup(pushButton_pin, GPIO.IN)

led_on = False #초기 LED 상태
pressed = 0 #버튼 상태 (눌림: 1, 안눌림: 0)
start_time = 0 #처음 버튼이 눌린 시간
remain_time = 0 #LED 불 남아 있는 시간

try:
    while True:
        a = GPIO.input(pushButton_pin)
        if a == 1: #버튼이 눌렸는가
            if pressed == 0: #버튼 상태가 계속 눌렸는가
                if led_on == False: #불이 꺼진 상태인가
                    remain_time = 0
                    start_time = time.time()
                    print(start_time)
                led_on = True
                remain_time = remain_time + 3
                print(remain_time)
                pressed = 1
        else:
            pressed = 0
                
        if led_on:
            GPIO.output(led_pin, True)
        else:
            GPIO.output(led_pin, False)
        #현재시간에서 (처음 시간 + 남은 시간)을 빼면
        if ((start_time + remain_time) - time.time()) <= 0:
            led_on = False
        else:
            led_on = True
                
except KeyboardInterrupt:
    GPIO.cleanup()

▲9.LED Button time increment.py

반응형