(第5回)モーター制御(その2) ピンポン玉射出
ロボコンではピンポン玉を射出する競技がありますが、モータードライバーだけでこの制御をすることは難しいです。理由は「RE-280RA」は無負荷の回転で700mAの電流がモーターに流れる場合があるためです。ピンポン玉を射出する瞬間はもっと大きい電流がながれます。
モーターにタイヤ等を取り付けてピンポン玉を射出する場合は、モータードライバーとモーターの間にリレーを入れることで制御が可能になります。
マイコンでモーターを動かしてピンポン玉を射出する
モータードライバーでモーターを動かす部品に「3V小型リレー」を追加します。
<使っている部品>
a.Arduino Pro Mini 328 3.3V 8MHz
b.BD-6211F-E2
c.SOP8(1.27mm)DIP変換基板 金フラッシュ
d.RE-280RA(説明用に大きいモーターを使用します)
e.ショットキーダイオード 40V1A 1S4+コンデンサ10uF
f.3V小型リレー 接点容量2A 946H-1C-3D
1.接続
モータードライバーに接続していたモーターの所にリレーの入力と接続。
(946H-1C-3D)
*)リレーは裏側から見た状態の配線
モータードライバーがOFFの場合、リレーの下側の2端子が通電ON。モータードライバーがONの場合は、通電がOFFになります。(上側の2端子はそれぞれ通電は逆になる)モータードライバーがOFF時に通電をONにするのは、全体の電流の消費量を少なくするためです。
モータードライバーOFF時:リレー 0mA+モーター700mA
モータードライバー ON時:リレー100mA+モーター 0mA
(接続図)
*)リレーは上から裏側を見た状態の配線
<注意>ピンポン玉の射出にモーターを2つ使う場合は、モーター毎にリレーが必要になります。
2.プログラムの準備
以下がサンプルプログラムです。コピーして使います。
リレーは消費電流が66mA程度ですので、大きいモーターの様にゆっくり電力をせず、一気に電力を供給しています。リレーは極性がないので、モータードライバーの正転、後転どちらでもリレーがONになります。サンプルは3秒ON、1秒OFFを繰り返しています。
//----(プログラム)----
uint8_t Mode;//モーター状態
uint8_t KirikaeFlag;//モーター切り替え判断
void
setup() {
delay(100);
pinMode(2, OUTPUT);//正転指令
pinMode(4, OUTPUT);//逆転指令
pinMode(5, OUTPUT);//モーター速度
KirikaeFlag = 1;
Mode = 1;
}
void loop() {
if (KirikaeFlag == 1)
{
KirikaeFlag = 0;
if (Mode == 0) {
Mode = 1;
} else if (Mode == 1) {
Mode = 0;
}
if (Mode
== 0) {
digitalWrite(2, HIGH) ;
digitalWrite(4, LOW) ;
analogWrite(5, 255);
}
if (Mode == 1) {
digitalWrite(2,
LOW) ;
digitalWrite(4, LOW) ;
analogWrite(5, 0);
}
}
else {
if (Mode == 0) {delay(3000);KirikaeFlag = 1;}
if (Mode
== 1) {delay(1000);KirikaeFlag = 1;}
}
}
実験の様子
電源に直結されているので、モーターの限界まで電流が流れています。以前、ピンポン玉を射出してペットボトルを倒す競技がありましたが、
その時のタイヤで実験をすると1000mA(1A)も流れています。これをBD6211Fのモータードライバーで制御することは困難ですが、リレーを
利用することで、制御ができます。ただし逆回転はできません。逆回転させる場合は、リレーを3個準備して2個のモータードライバーで制御する必要があります。
RE-280RAのような大きいモーターでも動作することが分かりましたか?。リレーがOFFする時にも、逆起電力が発生するため、モータードライバーの隣についているダイオード+コンデンサがあった方が良いです。
-------------