오늘이라도

[Raspberry Pi] 4. LED 조작 : PWM, 버튼 이용 본문

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

[Raspberry Pi] 4. LED 조작 : PWM, 버튼 이용

upcake_ 2020. 7. 9. 09:24
반응형

https://github.com/upcake/Class_Examples

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

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


 - LED 조작 : PWM, 버튼 이용  -

import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BOARD)
GPIO.setup(11, GPIO.OUT, initial=GPIO.LOW)

p = GPIO.PWM(11, 100) #GPIO.PWM(핀번호 ,진동수)

p.start(0) #start(듀티비를 실수로 표시, 0% - 100%)
time.sleep(1)

p.ChangeDutyCycle(10) #듀티비 설정
time.sleep(1)

p.ChangeDutyCycle(50)
time.sleep(1)

p.ChangeDutyCycle(100)
time.sleep(1)

p.stop()
GPIO.cleanup()

▲4.LED PWM.py : 점진적으로 밝아지게 설정

 

 

import RPi.GPIO as GPIO

led_pin = 11

#
GPIO.setmode(GPIO.BOARD)
GPIO.setup(led_pin, GPIO.OUT)

#
pwm_led = GPIO.PWM(led_pin, 255)
#
pwm_led.start(0)

while True:
    duty_s = input("Enter Brightness(0 to 100) : ")
    duty = int(duty_s)
    
    #
    if(duty == 1000):
        pwm_led.stop()
        GPIO.cleanup()
        break
    else:
        #
        pwm_led.ChangeDutyCycle(duty)

▲5.LED input.py : 입력한 수치 비율만큼 밝기 조절

 

 

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)
           
try:
    while True:
           a = GPIO.input(pushButton_pin)
           if a == 0:
               GPIO.output(led_pin, False)
           else:
               GPIO.output(led_pin, True)
           
           print(a)
except KeyboardInterrupt:
    GPIO.cleanup()

▲6.LED Button.py : 버튼으로 LED 조작

 

 

import RPi.GPIO as GPIO

led_pin = 7
pushButton_pin = 11

GPIO.setmode(GPIO.BOARD)
GPIO.setup(led_pin, GPIO.OUT)
GPIO.setup(pushButton_pin, GPIO.IN)
           
try:
    btnCnt = 0 #버튼이 눌린 카운트
    btnState = 0 #버튼의 현재 상태
    while True:
            a = GPIO.input(pushButton_pin)
            if a == 1: #버튼이 눌렸을 때
                GPIO.output(led_pin, True)
                if btnState == 0: #기존 버튼 상태가 0
                    btnCnt += 1
                    print(btnCnt)
                    btnState = 1
            else:
                GPIO.output(led_pin, False)
                btnState = 0

except KeyboardInterrupt:
    GPIO.cleanup()

▲7.LED Button Count.py : 버튼 눌린 횟수 카운터

 

 

import RPi.GPIO as GPIO

led_pin = 7
pushButton_pin = 11

GPIO.setmode(GPIO.BOARD)
GPIO.setup(led_pin, GPIO.OUT)
GPIO.setup(pushButton_pin, GPIO.IN)
           
try:
    led_on = False
    btnState = 0 #버튼의 현재 상태
    while True:
            a = GPIO.input(pushButton_pin)
            if a == 1: #버튼이 눌렸을 때
                if btnState == 0: #기존 버튼 상태가 0
                    led_on = not led_on
                    print(led_on)
                    btnState = 1
            else:
                btnState = 0
            
            GPIO.output(led_pin, led_on)
except KeyboardInterrupt:
    GPIO.cleanup()

▲8.LED Button Toggle.py : 토글 버튼 만들기

반응형