Arduino

ブラシレスモーターを三相交流で動かす

今回はブラシレスDCモータ(以降BLDCモータ)をArduinoを使って三相交流にて回していきたいと思います。

前回の記事で矩形波ではありますがBLDCモータを回転させることには成功しました。BLDCモータが回転する原理についてはその記事をご覧ください。

「ブラシレスDCモータ制御用の回路を自作する」

目次
  1. Arduinoで交流波形を出力する
  2. Arduinoで三相交流波形を出力する
  3. 回路の製作
  4. BLDCモータを三相交流で回転させる

❶Arduinoで交流波形を出力する

「Arduinoで交流波形を出力する」という項目名ですが残念ながらArduinoでは交流波形は出力できません。

Arduinoに限らずほとんどのマイコンはONもしくはOFFの出力しかできないためです。要するに下図の図1のように5Vか0Vしか出力できません。

しかし、今回作りたい交流波形は図2の正弦波のように5Vから徐々に電圧を下げ0Vにする。また、0Vから徐々に電圧を上げ5Vにするといったように5V、0V以外の電圧も出力する必要があります。

そこでPWM制御を利用し、疑似的な交流波形は出力します。

PWM制御とは、電圧信号を高速でON、OFFし、そのパルスの幅を変えることで、平均的な電力や電圧を制御します。

電圧の低いところではON時間の短いパルス幅に、電圧の高いところではON時間の長いパルス幅にして、疑似的に正弦波を作り出します。

一見複雑そうですが、ArduinoIDEにはsin波形を簡単に作ることができるsin関数があります。

下記コードは正弦波を生成し、シリアルプロッタに出力するコードです。

また、出力した正弦値をPWMでアナログ出力する際のデューティー比として入力すれば、指定したピンから疑似正弦波を出力することができます。

出力波形は下記のようになります。黄色の波形が無加工の出力波形で青色の波形が ローパスフィルタを通した後の出力波形になります。

➋Arduinoで三相交流波形を出力する

続いて三相交流波形を作っていきます。

といっても先に紹介したコードを改良し、3つのPinから位相の違う交流波形を出力するだけです。

下記コードにて三相交流を出力することができます。

❸回路の製作

今回作成したコードですと、前回の記事

「ブラシレスDCモータ制御用の回路を自作する」

で製作したゲートドライバは使用できません。なので新しくゲートドライバ回路を作ります。

今回はゲートドライバICを使ったブートストラップタイプのゲートドライバを作りました。

下記に回路図を添付します。

なお、インバータ回路は前回の記事で製作したものを流用します。

❹BLDCモータを三相交流で回転させる

下記に配線後の写真を添付します。

なお、Arduinoに書き込むコードも可変抵抗で回転速度を調整できるように改良したものを使用してみます。

これまで紹介した方法でBLDCモータを回転させることができました。

また、消費電力も前回は1.5Vを入力時の電流量は5.2Aで7.8W消費でしたが、今回は1.5Vを入力時の電流量は3.3Aで約5W消費となり、消費電力も下げることができました。