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번 밝아졌다 어두워졌다를 반복하게 된다.
'하드웨어 > ESP8266' 카테고리의 다른 글
MicroPython으로 아날로그입력 받기 (0) | 2016.10.12 |
---|---|
nodemcu의 pwm 기능으로 서보모터 제어하기 (0) | 2016.10.12 |
NodeMCU보드에서 PWM파형 생성하기 (0) | 2016.10.05 |
ESP8266 외부인터럽트 (0) | 2016.10.04 |
MicroPython NodeMCU의 GPIO 제어하기 (0) | 2016.09.20 |