• 締切済み

マイコンによるDCモータの制御

マイコンでDCモータの正転、逆転を制御したいのですがうまくいきません。 お力添えをお願いします。 ・使用するマイコン:PIC16F84A IC:TA7291P ・させたい動作 RB1のスイッチが押されると、2秒正転、2秒静止、2秒逆転、2秒静止→ループ ・問題点 マイコンからの出力をLEDに変えるとこの動作はうまくいくのですが、ICに出力するとうまくいきません。下にプログラムの一部を書きますが、while(s_f==1)のループに入れていないようです。 また、ICへの出力をマイコンからではなく、電源からの電流をスイッチングすると正転、逆転はうまくいきます。 マイコンとICの間に何かはさむ必要があるのでしょうか? while(1){ if(RB1==0) { while(s_f==1){ /*動作内容*/ RB4=1; RB5=0; delay(2000); //2秒待つ PORTB=0; delay(2000); RB4=0; RB5=0; delay(2000); RB4=0; RB5=1; delay(2000); } } }

みんなの回答

noname#159916
noname#159916
回答No.2

No.1 です。 編集してるうちに 「もしやマイコン電源は3.3Vとかですか?」が抜け、 「5Vでないでしょ」決め付けになってしまってました、 どうもすみません。 そうですか、5Vですか...すると No.1 の指摘はハズレですね... マイコンのポートの電流もデータシートの数値では足りてますし... No.1補足欄>しかし、LEDだと動作して、ICにつなぐと不具合が起こることを考えると、 No.1補足欄>指摘していただいた点が怪しいと感じます。 そうなんですよ、そこの伝達がうまくいってないとしか思えないので... No.1補足欄>実際に測定等で調べてみます! 役に立たずすみません。できれば波形で、電圧、時間を測ってみてください。

nock0331
質問者

お礼

いろいろ調べてみた結果、どうも一つの条件式内でモータの動作を変更する、特定の時間待つなど複数の操作を行うことが難しいようで、次の指示を出すタイミングでマイコンが止まってるみたいです。 マイコン内の条件式(条件式ひとつに対しひとつの動作)による正転逆転は動作確認できました。 原因ははっきりわかりませんでしたが、要求を満たすマイコンを探すか、プログラムの変更で対応したいと思います。 お付き合いいただき、ありがとうございました m(_ _)m

noname#159916
noname#159916
回答No.1

TA7291P がマイコンから受取る信号で、 High として受け付けるのが 3.5V以上要りますが、 マイコンの High 出力電圧が足りないのでは? マイコンのポートHigh出力は、低いと電源電圧-0.7V なので、 3.5V以上出すには電源電圧が 4.2V 必要です。 TA7291P データシート http://www.semicon.toshiba.co.jp/docs/datasheet/ja/LinearIC/TA7291F_TA7291SG_ja_datasheet_070613.pdf VIN1 の数字 MIN 3.5 ~ MAX 5.5 V PIC16F84A データシート http://ww1.microchip.com/downloads/en/devicedoc/35007b.pdf >マイコンとICの間に何かはさむ必要があるのでしょうか? マイコンの電源電圧を5V程度にすれば大丈夫なはずです。 他に不都合がなければ、ですが。 他の手としては、可能ならマイコンポートをオープンコレクタに設定し (可能かどうか未確認。不可ならダイオードを直列に挿入して オープンコレクタもどきにすれば、多分OK) 5Vでプルアップする手もあります。

nock0331
質問者

補足

すいません、説明不足でした。 マイコン、ICともに電源電圧は5V供給しています。 実際、スイッチを押すと一瞬動作し、すぐに止まってしまうという症状が出ています。 しかし、LEDだと動作して、ICにつなぐと不具合が起こることを考えると、 指摘していただいた点が怪しいと感じます。 実際に測定等で調べてみます!