【Raspberry Pi】モータドライバTA8428Kでモータ制御

この記事では、ラズパイ(Raspberry Pi)でDCモータを制御する方法を解説します。モータドライバは TOSHIBAのTA8428K を使用します。
Raspberry Piでモータを制御するまでの流れ
こちらの図のは、Raspberry
Piと、モータドライバ、DCモータの配線のイメージ図です。Raspberry
PiとDCモータの電源を別々に用意することに注意しましょう。
モータのノイズ対策
さっそくモータを動かしていきたいところですが、その前に、Raspberry PiなどのマイコンでDCモータを使う場合に注意しなければならないことがあります。それはモータのノイズです。 モータは逆回転やストップなどの急激な動きの変化時に、逆起電圧が発生します。この逆起電圧はかなり大きな電圧でして、そのノイズが通信エラーなどのご動作を引き起こします。そのため、モータにパスコンと呼ばれるコンデンサをはんだ付けして、ノイズ対策を行います。 具体的には次の図のようにモータの端子間と、端子とシャーシの間に合計3つのコンデンサをはんだ付けします。

このコンデンサは瞬間的に発生したモータのノイズを、アースへ落としてくれます。バイパスコンデンサを略してパスコンなどと呼ばれてます。コンデンサの容量は0.1uF程度で、 セラミックコンデンサ を使えば大丈夫です。
モータ本体ににコンデンサをはんだ付けするときは、はんだ付けする部分をあらかじめやすりで削っておくとはんだ付けしやすいです。
また、ある程度 ワット数の高いはんだごて でないと、はんだ付けできませんのでご注意ください。こちらのような温度調整がはんだごてに備わっていると、色々な用途に使えて便利です。
モータドライバTA8428Kの使い方
ここでは、モータドライバTA8428Kの使い方を説明します。
TA8428Kの特徴
TA8428Kは、DCモータ用のブリッジドライバです。次に、モータドライバTA8428Kの特徴を挙げておきます。
- モータの正転、逆転、ストップ、ブレーキが制御できる
- 電源は7.0~27.0Vの間で動作する
- 最大3.0A、平均で1.5Aの電流を流せる
TA8428Kの各ピンの役割
TA8428Kの各ピンの役割はこちらの表の通りです。IN1とIN2に入力される信号によって、DCモータの動きを制御する仕組みになってます。
端子番号 | 端子記号 | 説明 |
---|---|---|
1 | IN1 | 出力の状態を制御する |
2 | IN2 | 出力の状態を制御する |
3 | OUTA | DCモータへつなげる |
4 | GND | GND |
5 | OUTAbar | DCモータへつなげる |
6 | N.C | 使わない |
7 | Vcc | 電源電圧 |
ちなみに、モータドライバを正面から見た時、一番左側から1番端子となります。
TA8428Kの真理値表
モータドライバのINとOUTの関係をもうすこし詳しく見ていきます。次の表は入力端子IN1、IN2にHighとLowの信号を入力したときの、出力の変化をあらわす表になります。
IN1 | IN2 | OUTA | OUTAbar | 出力モード |
---|---|---|---|---|
H | H | L | L | ブレーキ |
L | H | L | H | 逆転 |
H | L | H | L | 正転 |
L | L | OFF | OFF | ストップ |
たとえば、モータを正転させたい場合は、IN1にHighを入力しIN2をLowにします。入力電圧は、モータドライバの電源電圧Vccの範囲までとなります。Raspberry Piのデジタルピンの出力は3.3Vなので、GPIO端子をそのまま入力へ接続できます。
モータドライバには電流が多く流れるので、ドライバを壊さないためにも 放熱板(ヒートシンク) を取り付けたほうが安全です。 また、モータ制御では急激な電流変化が起こるため、モータドライバ近くの電源とGNDの間に10μFのコンデンサを入れておきます。
モータドライバだけでモータを動かしてみよう
ここで、Raspberry Piでモータを制御する前に、モータドライバだけでモータを動かしてみましょう。次のとおりに配線すれば、モータが正転するはずです。
端子番号 | 端子記号 | 説明 |
---|---|---|
1 | IN1 | 9V |
2 | IN2 | GND |
3 | OUTA | DCモータへ |
4 | GND | GND |
5 | OUTAbar | DCモータへ |
6 | N.C | 未接続 |
7 | Vcc | 9V |
その他にも、IN1とIN2の状態を入れ替えたりして、逆転やブレーキができるか確かめてみてください。
モータの回転速度
ここまでで、モータドライバの基本的な使い方がご理解いただけたでしょういか?ところで、モータの制御には「正転」「逆転」「ブレーキ」の他に 「回転速度」 があります。DCモータの回転速度は、PWM信号でコントロールできます。PWM信号について詳しくは、 をご覧ください。
Raspberry Piとモータドライバを使ってDCモータの制御
それでは、Raspberry
Piとモータドライバを使ってDCモータの制御を行なっていきます。Raspberry
Piでモータ制御するには、gpiozero
ライブラリを使うと簡単です。次のようにしてインストールしておきましょう。
$ sudo apt install python-gpiozero
Raspberry PiとTA8428Kの配線
Raspberry PiとモータドライバTA8428Kを次のように配線します。Raspberry PiとTA8428KのGNDを必ず共通につないでください。
Raspberry Pi | TA8428K |
---|---|
GPIO14 | IN1 |
GPIO15 | IN2 |
GND | GND |
Pythonプログラム

次のような動作をする制御を、Pythonでプログラミングしてみました。
- 正転しながら徐々にスピードが上がる
- 急転回して徐々にスピードが遅くなる
- そして停止する
from gpiozero import Motor
from time import sleep
### TA8428K モータドライバテスト ###
= Motor(14, 15) # GPIO14をIN1へ、GPIO15をIN2へ繋ぐ
motor
0.3) # 0.3はモータの速度
motor.forward(2) # 2秒間正転し続ける
sleep(0.6)
motor.forward(2)
sleep(1.0)
motor.forward(2)
sleep(1.0) # ここで反転する
motor.backward(2)
sleep(0.6)
motor.backward(2)
sleep(0.3)
motor.backward(2)
sleep(
motor.stop()
ご覧の通り、gpiozero
のMotor
モジュールを使うと、とても簡単にモータ制御を行うことができます。
以上でRaspberry
PiでTA8428Kモータドライバを使ってDCモータを制御する方法の説明をおわります。他にも、
や 、
を書いてます。
関連記事
- 昇圧型DC-DCコンバータでESP32の5Vから12V電源をつくる(MT3608)
- 3端子レギュレータの使い方(5V→3.3V)
- Arduinoと可変抵抗でLEDの明るさ制御
- 【自作マイクへの道①】ECM(エレクトレットコンデンサマイク)の使い方
- よく使う電子パーツ・部品の読み方〜初心者のための電子工作