産業用ラズパイと言われる『RevPi』について今日もやった事の備忘録を共有します。
今回は【DIOモジュールのPWM制御】についてです。
PWM制御とは
PWM(Pulse Width Modulation)とは、半導体を使った電力を制御する方式の1つです。オンとオフの繰り返しスイッチングを行い、出力される電力を制御します。
一定電圧の入力から、パルス列のオンとオフの一定周期を作り、オンの時間幅を変化させる電力制御方式をPWMと呼びます。早い周期でスイッチングを行うことで、オンのパルス幅に比例した任意の電圧が得られます。これは、半導体がオンとオフ状態が最も損失が少ない(中間状態は損失多い)ことを利用した電力制御方式です。
PWMは、優れた制御性と、高効率が特長で、インバーター回路で広く使われている技術です。ブラシ付きDCモーターの回転制御にも使われています。
PWMとは | 東芝デバイス&ストレージ株式会社 | 日本 (semicon-storage.com)
インバーター回路にて、PWM制御のオンの時間幅(デューティー)を周期的に変化させることにより、モーター駆動に最適な正弦波の交流電圧を作ることができます。
簡単に言うと、『一定間隔&周期のON/OFF制御をPWM制御』と呼ぶってことですね。
そして、『ONとOFFの時間比率をデューティー比』と呼ばれています。
例を紹介します。
5Hz(周期:200msec) & デューティー比40% のPWM制御をしたい場合 ONの時間 :200msec * 40 / 100 = 80msec OFFの時間:200msec * (100 - 40) / 100 = 120mse
※イメージするようなパルス波形はデューティー比50%の波形という事になります。
PWM制御の設定
RevPiの構成を設定するページに移動してください。
※移行方法は、過去記事を参考にしてください。
【RevPi】IOモジュール(ユニット)の構成設定 | 育児パパの人生備忘録 (t19488sns.com)
DIOのモジュールを選択してください。
右下のウィンドウの『Value Editor』を今から設定していきます。
デューティー比の設定
『Value Editor』を真ん中くらいまでスクロールすると、下記の行に設定していきます。
※今回はDO1にPWM制御の設定を行います。
デフォルトの設定では、Nameは< PWM_1 >です。
入力できる数値の範囲は、[0から100]の整数を入力します。
例えとして、Valueを< 50 >にしました。
この数値は、デューティー比のパーセンテージを指定します。
今回の例の設定は、デューティー比50%です。
PWM制御するPIN番号を設定
次に行うのは、PWM出力する出力ピンの番号を指定します。
『Value Editor』を一番下までスクロールすると、< OutputPWMActive >という項目があります。
入力制限は、[0から65535]の整数を入力が入力可能です。
ここで入力するのは、どの番号のPINをPWM出力するかを設定します。
有効するPINを「1」、無効にするPINを「0」として、
PINの順番に0と1を並べると、2進数の形になります。
その2進数を10進数の形に変換した数値を入力します。
例えば、[DO-1 / DO-2 / DO-4 / DO-7]をPWM出力する場合を紹介します。
今回は、DO-1のPINのみの設定なので「1」を入力します。
PWMの周波数を設定
最後に「PWMの周波数の設定」を行います。
『Value Editor』を一番下までスクロールすると、< OutputPWMFrequency >という項目があります。
ちなみに、周波数とは。。。
交流は電気の流れる方向が周期的に変わります。1秒間に何回変わるか、その回数を周波数といいます。単位はヘルツ(Hz)。
周波数とは – コトバンク (kotobank.jp)
日本で使われている電気は東日本が50ヘルツ、西日本が60ヘルツの交流です。東京電力の電気は50ヘルツの交流、1秒間に電流の方向が50回交替をしています。
周波数の設定は、5パタンが設定可能です。
■ 周波数: 40Hz → 周期:25.00msec ■ 周波数: 80Hz → 周期:12.50msec ■ 周波数:160Hz → 周期: 6.25msec ■ 周波数:200Hz → 周期: 5.00msec ■ 周波数:400Hz → 周期: 2.50msec
それ以外の場合は、独自で作る必要がありそうです。
今回は、< 40Hz 1% > を設定します。
設定を有効にする
設定が終わったら、設定をモジュールに反映させる必要があります。
[File] → [Save as Start-Config.]をクリックします。
[Project Saved…]というウィンドウが表示されて、自動で閉じられます。
これで保存は完了です。
そして、デバイスリセットをします。
[Tools] → [Reset Driver] をクリックします。
PWM制御 実行結果
前回の回路をそのまま使います。
するとLEDが高速点滅するのが分かります。
※点滅しない場合は、デューティー比75%以上にするといいと思います。
まとめ
『DIOモジュールのPWM制御の設定』を紹介しました。
『Value Editor』の設定を変更する事で簡単にPWM出力を作ることが出来ます。
もう少し、周波数に幅がほしかったなと正直思いました。。。
1Hzと10Hzくらいは、お試し用に欲しかった。。。
それくらいなら、自分で作れって意味なんでしょうね。
業務でプログラミング(C#/VB/Python)を作っている。
挫折を何回も繰り返し、幾度の壁を乗り越えてきた。
乗り越えてきた事を忘れないように記録に残す。
同じ思いをしている人への情報提供になれたらと思う。
基本は初心者に向けたプログラムの情報を提供する。
コメント