はじめに
このページでは、ビギナー向けに、マイコンボードPIColoの開発方法を説明します。開発環境の用意や無償のCコンパイラのインストールについてはこちら、プロジェクト/プログラム作成についてはこちらを参照願います。
※以下の情報は2010年7月現在のものです。ご注意ください。
PIColoについてはこちらを参照願います。
パーツリスト
パーツ |
型名 |
個数 |
購入先 |
モータ |
マブチモータ(RE-140など) |
1 |
模型店など |
トランジスタ |
2SC1815 |
1 |
電子部品店 |
抵抗1 |
100Ω 1/4〜1/10Wのもの |
1 |
電子部品店 |
抵抗2 |
10KΩ 1/4〜1/10Wのもの |
1 |
電子部品店 |
基板 |
小さめのユニバーサル基板 |
1 |
電子部品店 |
コネクタ |
2mmピッチピンヘッダ |
1 |
浅草ギ研及び販売店 |
ケーブル |
センサーケーブル |
1 |
浅草ギ研及び販売店 |
マイコンの大電流駆動
「LEDの点灯とスイッチの入力」のところで説明しましたが、一般的なマイコンの端子は数mA〜数十mAまでしか電流を流したり引っ張り込んだりすることができません。PIC16F1936の場合も、データシートに書いてあるとおり25mAまでしか扱えません。
一方、マブチモータなどのDCモータは、回転するときに数A流れます。ということで、マイコンの端子を直接モータに接続しても、モータは回りません。そこで、トランジスタを使います。
トランジスタは小さな電流を、大きな電流に増幅します。
これは基本的な回路です。これでも動きますが、大きな電流が流れるので保護回路が必要になります。ということで通常は下のようになります。
R2は、電源投入時などにマイコンの端子が不安定になる場合がありますが、そのときにも確実にトランジスタのベースをLowにしておくためのプルダウン抵抗です。プルダウン用なので1K〜10Kぐらいで適当に。
ダイオードは、モータ停止の瞬間に発生する逆起電力(モータから逆の電流が流れる)を逃がすためのものです。
ということでこのような回路を作ってみました。マイコンの端子はRC2につないでます。
実際につくってみた写真です。トランジスタの回路からは2mmピッチピンヘッダを出して、浅草ギ研のセンサーケーブルでPIColoに接続できるようにしています。取り外しが可能です。
トランジスタは、定番であり、秋葉などでも一袋いくらで売られている2SC1815を使いました。端子の配列はこのようになっています。
モーターON/OFFプログラム
プログラムとは言っても、単純に端子をON/OFFするだけなので簡単です。とりあえず作ってみたプログラムがこちらになります。
念のため、テキストファイルも置いておきます。プロジェクトを作ってCファイルで追加してください(詳しくは前ページ参照)。
MOTOR.txt
実験してみたところ、問題なく、1秒おきにモータがまわりました。R1を小さくすれば速くまわります。逆に大きくすれば遅くなります。モータによっては回転するのに必要な電流が違うので、はじめはR1を大きめにして、だんだん小さくしていくとよいでしょう。ちなみにRE−140の場合はR1を1Kオームぐらいにすると電流が足りなくて回らなくなります。あまり小さい抵抗にすると電流が流れすぎて回路が燃えることがありますので注意してください。
余談ですが、ロボットコンテストなどではギリギリの計算で回路を組んでいるので、モータドライブ回路が燃えるということがよくあります。卓上で実験してても、たとえばなにかの拍子にモータの軸がロックしたりすると非常に大きな電流が流れて燃えます。筆者も何度か経験あり。ということで大きな電流を使う回路を作る場合には安全に注意してください。
Hブリッジ回路
モーターを逆回転させたい場合は、通常はHブリッジ回路というものを使います。先のモータON/OFFの回路をモータのスイッチとみたてた場合、スイッチが4つあれば正転と逆転を制御できます。
AとA’、BとB’のトランジスタが連動しているとします(ベースを共通にすれば連動可能)。A系統とONにしてB系統をOFFにすると電流が左から右へ、逆にすると逆に流れます。モータは電流を流す方向で回転も変わりますので、このようにして正転と逆転が制御可能となります。
トランジスタよりも電流が流せて、なおかつ応答が速いものにFETがあります。ということで、このような回路のスイッチングには通常はFETを使います。FETの場合、いろいろと制約があり、単純にH型に配置しただけでは性能がよくありませんので、もっと沢山の部品を使います。グーグルで検索するといろいろと例が出てきます。
FETを使って回路を組むのは結構面倒なのですが、これが1つのICになっているものがモータードライバICです。秋葉などで入手できます。
モータドライバIC
秋葉などでよく売られているモータドライバICにTA7291があります。そのデータシートにブロック図が書いてあります。
VCCはICへの電源、VrefはHブリッジ回路への電源、VSはモータへの電源になります。たとえば、PIColoにつなぐ場合はこの3つは全部電源+(乾電池のプラス。4.5V)につなげばよいでしょう。IN1とIN2の端子で制御します。
IN1とIN2のHigh/Lowでこのように制御することができます。CW(ClockWise)は時計回り、CCW(Counter
ClockWise)は反時計回りを表します。
モータドライバICの使い方については、単に端子を2個つないでHigh/Lowするだけなのでここでは説明を省略します。
さいごに
マブチモータなどの小型のDCモータを使った玩具などはたくさんあります。これを機に、壊れて使わなくなったおもちゃをマイコンで自動化、というのも面白いかもしれません。
次はスイッチによる外部割込みについて。たとえばモータ駆動中に緊急停止スイッチによる割り込みで緊急停止、ということが可能になります。
2010年7月22日
|