오늘 포스팅은 마이크로:비트(micro:bit)로 LED Fade Effect를 구현하는 방법을 소개해 드리도록 하겠습니다.
LED Fade Effect라는 용어는 생소하실 텐데요. 제가 오픈소스 하드웨어를 이용한 아마추어 게임기 제작 팀에서 활동할 때 버튼을 누르면 LED가 최대로 밝아지고 서서히 줄어드는 기능을 구현했었는데, 이 기능의 이름을 LED Fade Effect라고 이름을 붙였습니다.
말로 들으면 이해하기 어려우실 텐데요, LED Fade Effect는 아래처럼 동작하는 것이라고 이해하시면 됩니다.
| 회로 구성
회로의 구성은 다음과 같습니다.
LED Fade Effect는 analog pin을 사용을 해야 합니다. 다만, 1번 pin만이 아닌 다른 analog pin을 사용해도 되니 용도에 맞게 pin 설정을 하시고 이용하시면 됩니다. 회로에 연결한 저항은 220옴을 사용하였습니다.
| 코드
from microbit import *
import time
value = 0
l_time = time.ticks_ms()
c_time = time.ticks_ms()
while True:
c_time = time.ticks_ms()
d_time = c_time - l_time
if(d_time > 1) :
l_time = c_time
if(value > 10 ):
value = value - 3
else :
value = 10
if button_a.is_pressed():
value = 1023
pin1.write_analog(value)
'LED Fade Effect'에서 중요한 부분은 LED가 완전히 꺼지기 전에 버튼을 누른다면 다시 LED 최대로 밝아져야 하는 것입니다.
이를 위해서 '숨쉬는 LED'처럼 LED의 밝기 값을 for-in 문으로 제어하는 것이 아니라 시간이 지남에 어두워지도록 해야 합니다.
예전 시간과 현재 시간의 차이를 확인하여 1ms 이상 차이가 나면 LED의 밝기가 변하도록 코딩을 하였습니다.
d_time = c_time - l_time으로 현재시간(c_time)과 과거 시간(l_time)을 비교하여 이 값(d_time)이 1ms 이상 차이가 나면 LED 밝기가 어두워지도록 하였습니다.
| 동작모습
파이썬 코드를 마이크로:비트(micro:bit)에 올리고 실행을 하면 A, B 내장 버튼을 누를 때마다 아래의 그림과 같이 동작됨을 볼 수 있습니다.
동작은 효과적으로 보이기 위해서 실제 코드와 다르게 LED를 2개를 사용하였습니다.
긴 글 읽어 주셔서 감사합니다.
'오픈소스하드웨어 > 마이크로:비트' 카테고리의 다른 글
[마이크로비트 with 파이썬] music 모듈 (0) | 2020.06.15 |
---|---|
[마이크로비트 with 파이썬] 부저 사용법 (0) | 2020.06.03 |
[마이크로 비트 with 파이썬] 조도센서 사용법 (0) | 2020.05.22 |
[마이크로 비트 with 파이썬] 디버깅 (0) | 2020.05.17 |
[마이크로 비트 with 파이썬] 확장보드를 이용한 숨쉬는 LED (0) | 2020.05.12 |
댓글