AVRマイコンの研究も進んできました。
今回はモーターの制御です。
ATMEGA88が刺さっているブレッドボードに、モータードライバICの「TA7291P」を追加します。
これまで、乾電池2本で実験していましたが、乾電池3本にしました。(TA7291Pが5V仕様なので。)
肝心のモーターは、ずっとお蔵入りしていたロボデザイナーのモーターを接続してみました。
(1)1秒間LEDを点灯
(2)モーターを1秒間正回転
(3)1秒間LEDを点灯
(4)モーターを1秒間逆回転
(5)1秒間LEDを点灯
(6)モーターを停止
という単純なプログラムを作って、いざ動作開始!とやってみました。
本来であれば、5秒で終わるプログラムのハズなのですが・・・何回も回転したり逆転したり止まったり・・・LEDも何回も光ります。
おかしいなぁ、ループなんて入れていないのですが・・・
(また、コンパイラのバグか? ・・・ うまくいかないと、すぐに他人のバグにしたがる奴! いるいる!)
訳が分からないのでモーターを外してみたら、ちゃんと動作しました。 LEDが三回光って終りになりました。 これって、モーターのノイズで誤動作していたってこと? それともモーターの回転で電源電圧が下がってRESETしちゃったってことでしょうか?
どちらにしても、このままじゃちゃんと動作しそうにありません。
なんか対策が必要なようですね。 ふぅ~。
PWMでモーターの回転を絞ってみたら、なんかうまく動作しました。
う~ん不安定?
コンデンサでもかませれば良いのかな?
それとも、電源の安定化が必要なのかな?
そういえば、確かロボデザイナーで実験した時には、コントローラの電源とモータの電源は分離しなければ、ちゃんと動作しなかったなぁ。
世界中のみんな、オラに技術を分けてくれ!
実験で分かったことは、モ-ターの回転開始、モーターの逆転時に誤動作しやすいようです。 (あと止めた時も!)
これも、メカトロの常識ですか?