하드웨어/ESP8266
NodeMCU를 이용한 LED의 fading 예제
살레시오
2016. 10. 11. 18:53
2.5 LED의 fading 예제 c{mpy0206}
여기에서는 math 모듈의 sin 함수를 이용하여 LED의 밝기를 조절하는 예제를 작성해 보도록 하겠다. LED는 gpio5 핀에 연결되어 있다고 가정한다.
from machine import Pin, PWMimport time, mathled = 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번 밝아졌다 어두워졌다를 반복하게 된다.