본문 바로가기
오픈소스하드웨어/마이크로:비트

[마이크로 비트 with 파이썬] LED Fade Effect

by 북마크한 취미생활 2020. 5. 29.

오늘 포스팅은 마이크로:비트(micro:bit)로 LED Fade Effect를 구현하는 방법을 소개해 드리도록 하겠습니다.

LED Fade Effect라는 용어는 생소하실 텐데요. 제가 오픈소스 하드웨어를 이용한 아마추어 게임기 제작 팀에서 활동할 때 버튼을 누르면 LED가 최대로 밝아지고 서서히 줄어드는 기능을 구현했었는데, 이 기능의 이름을 LED Fade Effect라고 이름을 붙였습니다.

말로 들으면 이해하기 어려우실 텐데요, 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 Fade Effect 동작모습

동작은 효과적으로 보이기 위해서 실제 코드와 다르게 LED를 2개를 사용하였습니다.

긴 글 읽어 주셔서 감사합니다.

반응형

댓글