728x90
반응형
개요
버튼 1 : 선풍기 on / off
버튼 2 : 선풍기 속도 up
버튼 3 : 선풍기 속도 down
FND : 현재 속도 1~3 단계까지 표시
LED : 선풍기의 on / off 여부
회로구성
준비물 : 버튼 3개, FND, LED 하나, DC모터 (본인은 DC모터가 고장나서 전동모터로 대신함)
코드
from gpiozero import PWMLED, Button,LED
from time import sleep
led = LED(2)
btn_on = Button(17) #onoff
btn_up = Button(27) #up
btn_down = Button(22) #down
a=LED(5)
b=LED(6)
c=LED(13)
d=LED(19)
e=LED(26)
f=LED(16)
g=LED(20)
dp=LED(21)
motor =PWMLED(3)
num=[
[a,b,c,d,e,f],
[b,c],
[a,b,g,e,d],
[a,b,g,c,d],
[f,g,b,c],
[a,f,g,c,d],
[a,f,g,e,c,d],
[f,a,b,c],
[a,b,c,d,e,f,g],
[a,b,c,d,f,g]
]
on=0
level=0 #level 1,2,3
def show(n):
global num
for m in num[8]:m.off()
for m in num[n]:m.on()
while True:
print(on, level)
if btn_on.is_pressed :
on = 1-on
sleep(0.5)
if on ==1 :
if btn_up.is_pressed :
if level == 3 :
level=3
else :
level+=1
sleep(0.5)
if btn_down.is_pressed :
if level == 1:
level=1
else :
level-=1
sleep(0.5)
led.on()
show(level)
motor.value=level*0.3
if on == 0:
led.off()
for m in num[8]:m.off()
motor.value=0
level = 1
결과영상
728x90
반응형
'임베디드' 카테고리의 다른 글
[라즈베리파이] OLED와 BMP280 을 이용한 온도계 제작 (0) | 2022.04.26 |
---|---|
[라즈베리파이] 센스햇 기초 (0) | 2022.04.25 |
[라즈베리파이] 도어락 만들기 (0) | 2022.04.23 |
[Thread] 멀티스레드와 임계영역의 mutex init/lock/unlock/destory (0) | 2022.04.22 |
[Thread] 멀티스레드 인자 값 넘기기 (2) | 2022.04.21 |