JH7UBCブログ

アマチュア無線 電子工作 家庭菜園など趣味のブログです

Raspberry Pi Pico MicroPython PWM テスト

2021-11-11 08:22:21 | Raspberry Pi Pico
 Raspberry Pi PicoのPWM(Pulse Width Modulation)のテストをします。
 Picoは、DAC(デジタルアナログコンバータ)を持っていませんので、Arduinoと同じように疑似アナログ出力としてPWMを使うことになります。

 PWM信号は、全てのGPIOに出力可能です。
 例として、GP15に1000Hz、デューティ比50%の信号を出力するスクリプトです。
 4行目 GP15にPWM信号を出力します。
 5行目 周波数を1000Hzに指定します。
 6行目 デューティ比を設定します。16ビット(0~65535)で指定します。この例では、32768ですから、50%になります。


 出力された波形です。設定した通りの波形です。


 実際の周波数を測定してみました。

 確かに1000Hzです。けっこう正確です。周波数は100Hzから60kHzまで設定できます。

 dutyを設定する方法は、duty_u16( ) の他に、dutyの幅をns単位で設定できる duty_ns( ) があります。

 deinit() でPWMを無効化できます。

 PicoのGPIOは、30個ありますが、下の表のようなグループに分けられ、周波数は、スライス単位で、デューティは、チャンネル単位で設定します。

 スライス  チャンネルA    チャンネルB
  0   GPIO0 GPIO16  GPIO1 GPIO17
  1   GPIO2 GPIO18  GPIO3 GPIO19
  2   GPIO4 GPIO20  GPIO5 GPIO21
  3   GPIO6 GPIO22  GPIO7 GPIO23
  4   GPIO8 GPIO24  GPIO9 GPIO25
  5   GPIO10 GPIO26   GPIO11 GPIO27
  6   GPIO12 GPIO28   GPIO13 GPIO29
  7     GPIO14      GPIO15

最新の画像もっと見る

コメントを投稿