CircuitPython 10行プログラミング Step5 (5) Raspberry Pi PicoのPWM出力
PWM出力用のモジュールがpwmioです。周波数、デューティ比を変化させて実行してみます。
●周波数
800Hz、デューティ50%の波形(黄色)です。
import pwmio
import time
from board import *
import math
pwm = pwmio.PWMOut(GP0, frequency = 800)
pwm.duty_cycle = pow(2,15)
time.sleep(100)
周波数を上げます。8kHzです。
周波数を上げます。80kHzです。
周波数を上げます。800kHzです。わずかにずれています。
周波数を上げます。8MHzです。少しずれてきました。
周波数を上げます。10MHzです。だいぶずれています。
周波数を上げます。15MHzです。相当ずれています。
●デューティ比
デューティ比を変えます。15kHz、pow(2,14)です。
import pwmio
import time
from board import *
import math
pwm = pwmio.PWMOut(GP0, frequency = 15_000)
pwm.duty_cycle = pow(2,14)
time.sleep(100)
pow(2,14)は25%です。
pow(2,13)は12.5%です。
pow(2,12)は6.25%です。
10%は、pwm.duty_cycle = int(pow(2,16)*0.1)で指定できます。
5%は、pwm.duty_cycle = int(pow(2,16)*0.05)で指定できます。
●周波数を変更したい
最初15kHzで5秒維持し、10kHzに変更します。
import pwmio
import time
from board import *
import math
pwm = pwmio.PWMOut(GP0, frequency = 15_000, variable_frequency=True)
pwm.duty_cycle = pow(2,15)
time.sleep(5)
pwm.frequency = 10_000
time.sleep(100)