先ほどはタクトスイッチを指で押し、ステッピングモーターを回してみました。タクトスイッチは金属同士の接触で電気を流すので、数アンペア程度の電流なら余裕でON/OFFが可能です。
しかしArduinoのGPIOには、ステッピングモーターを駆動するだけの電流を流す能力はありません。そこでトランジスタの力を借りてステッピングモーターを駆動すだけの電流を増強する必要があります。そのためドライバー回路あるいはドライバーICが必要になります。
次の図は今回実験に使っているステッピングモーター「55SPM25D7」のデーターシートから引用したものです。
55SPM25D7のコイル間の抵抗は12Ωです。これを乾電池4個の電力(6V)を使って回すので、6 ÷ 12 = 0.5となり、0.5Aが流れる計算になります。直流ブラシ付きモーターを駆動した時に使ったトランジスタ「2SC2120Y」を4個使って回路を組んでみました。
ステッピングモーターの駆動には、Arduino GPIOのD8、D9、D10、D11を使います。D11がステッピングモーターのXにつながるトランジスタを制御します。D10が-X、D9がYそしてD8が-Yです。コモン(COM)はステッピングモーター駆動用のプラス電源につなぎます。
Arduinoの各GPIOから、トランジスタのベースにつながる抵抗の値は480Ωとしました。この抵抗値で、ステッピングモーターのコイルに流れる電流を調整します。この抵抗値の求め方は第2回の記事(基礎からのマイコンモーター制御(2):マブチモーターをArduinoで制御する)を参考にしてください。
データシートによると駆動に必要な電力は「4W」とあります。0.5×6で3Wとなり多少足りません。取りあえず回転させるだけならばこれでも足りますが、定格通りの性能が必要な場合は、必要な電力を用意しなくてはなりません。
駆動に最適な電力が4Wでコイルの抵抗が12Ωですから、
4=電流×電圧
電流=電圧/12
4=(V/12)*V
4=V*V/12
4*12=V*V
48=V*V
V=√48=6.928V
となり、最適な電圧は7V弱となります。
上の写真がブレッドボードへの実装例です。ブレッドボードは2枚連結して使っています。上のブレッドボードは先に試したタクトスイッチの回路を改造したもの、下のブレッドボードにはArduino Nanoのみを配置し、それぞれトランジスタのベースにつながる抵抗で2つのブレッドボード間を渡しています。ArduinoのGNDとモーター駆動用の電源のGNDは共通にしてください。
Copyright © ITmedia, Inc. All Rights Reserved.