ESP8266의 0,2,4,5,12,13,14,15 번 핀 모두 PWM 파형을 만들 수 있다. 단, 모두 같은 주파수를 가지며 주파수의 범위는 1~1000Hz 이다. 즉, 각각의 PWM파형이 서로 다른 주파수를 가질 수 없다.


 PWM파형을 만들기 위해서는 먼저 Pin객체를 생성해야 한다.


import machine
p5 = machine.Pin(5)

이것을 이용해서 PWM객체를 만들 수 있다.


pwm5=machine.PWM(p5)

이제 이 객체의 freq()메서드와 duty()메서드를 이용하여 주파수와 듀티비를 설정할 수 있다. 듀티비는 0~1023의 범위를 가진다.


pwm5.freq(500) #500Hz
pwm5.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, PWM
pwm5 = PWM(Pin(5), freq=500, duty=512) #PWM객체 생성, 주파수는 500Hz

서로 다른 핀에서 발생하는 PWM파형일지라도 모두 같은 주파수로 동작한다는 사실에 유의해야 한다.


Posted by 살레시오
,