2.4 pwm
c{mpy02p04}
ESP8266의 0,2,4,5,12,13,14,15 번 핀 모두 PWM 파형을 만들 수 있다. 단, 모두 같은 주파수를 가지며 주파수의 범위는 1~1000Hz 이다. 즉, 각각의 PWM파형이 서로 다른 주파수를 가질 수 없다.
PWM파형을 만들기 위해서는 먼저 Pin객체를 생성해야 한다.
import machinep5 = machine.Pin(5) |
이것을 이용해서 PWM객체를 만들 수 있다.
pwm5=machine.PWM(p5) |
이제 이 객체의 freq()메서드와 duty()메서드를 이용하여 주파수와 듀티비를 설정할 수 있다. 듀티비는 0~1023의 범위를 가진다.
pwm5.freq(500) #500Hzpwm5.duty(512) |
위와 같이 하면 주파수는 500Hz에 듀티비는 50%이다. 만약 freq()함수와 duty()함수를 인수 없이 호출하면 현재 설정값을 반환한다.
메서드 | 기능 | 비고 |
PWM(PinObj, freq=500, duty=0) | PWM클래스의 생성. | |
pwm.freq(n) pwm.freq() | 주파수를 n으로 설정 주파수값 반환 | n은 [1,1000]범위의 정수 |
pwm.duty(m) pwm.duty() | 듀티비를 m으로 설정 현재 듀티비를 반환 | m은 [0,1023]범위의 정수 |
pwm.deinit() | PWM 중단 |
좀 더 간략하게 작성된 프로그램은 다음과 같다.
from machine import Pin, PWMpwm5 = PWM(Pin(5), freq=500, duty=512) #PWM객체 생성, 주파수는 500Hz |
서로 다른 핀에서 발생하는 PWM파형일지라도 모두 같은 주파수로 동작한다는 사실에 유의해야 한다.
'하드웨어 > ESP8266' 카테고리의 다른 글
nodemcu의 pwm 기능으로 서보모터 제어하기 (0) | 2016.10.12 |
---|---|
NodeMCU를 이용한 LED의 fading 예제 (0) | 2016.10.11 |
ESP8266 외부인터럽트 (0) | 2016.10.04 |
MicroPython NodeMCU의 GPIO 제어하기 (0) | 2016.09.20 |
NodeMCU에 microPython 설치하기 (0) | 2016.09.20 |