2.5 LED의 fading 예제   c{mpy0206}


여기에서는 math 모듈의 sin 함수를 이용하여 LED의 밝기를 조절하는 예제를 작성해 보도록 하겠다. LED는 gpio5 핀에 연결되어 있다고 가정한다.


from machine import Pin, PWM
import time, math

led = PWM(Pin(5), freq=1000)

def pulse(tm):
   for x in range(628):
       led.duty( int(511-math.cos(x/100)*511) )
       time.sleep_ms(tm)

for i in range(10):
   pulse(1)

위에서 pulse()함수를 보면 내부에서 math.sin()함수의 한 주기를 628등분하여 돌아가며


int(511-math.cos(x/100)*511)

는 0부터 1022 범위의 정수를 계산해냄을 알 수 있다. pulse()함수의 인수로 시간(ms)값을 받아서 628등분 각 사이의 지연 시간을 지정할 수 있다. 위 예제와 같이 pulse(1)과 같이 호출하면 한 주기에 약 0.628초가 걸린다.


이 프로그램을 실행하면 led가 10번 밝아졌다 어두워졌다를 반복하게 된다.


Posted by 살레시오
,