ラズパイからモータードライバー経由でモーター2つを動かそうとしているけど期待どおりに動かない。ハードの切り分けなど殆どしたことがないので切り分け作業用のメモを残しておく。基本時系列に沿って書いていく。
切り分け開始前
GPIO22とGPIO13とGPIO17とGPIO27でセットでVREFからの電圧で動かす予定。組み合わせは以下の認識。
GPIO22 | 1 | 1 | 0 | 0 |
GPIO13 | 0 | 1 | 1 | 0 |
動作 | 動く(順方向) | 動かない(ロック) | 動く(逆方向) | 動かない(空転) |
配線をいじったりしたが部品によって動作が違いそう。整理しながらやらないとハマりそうなので腰を据えて調べていく。
切り分け開始
モーター動作用の電源は電池ボックスから5.5Vほどで取れている。モーターに電源を直結しても想定どおりの回転方向で動作。
各GPIO毎に電圧をかけて個別にLEDを光らせたところPINからの電圧は正常どおり出ている模様。
gpio -g write n 1
gpio -g write n 0
モータードライバーは秋月で売っていたBD6211Fを手作業で半田付けしたもの。半田付けの失敗などの理由でモータードライバーが正常に動作していない気がする。2つのモータードライバーで動作が違いそうなのでマジックで色を塗って見分けられるようにする。以降ドライバー白/黒。確認した結果は以下(GPIO17,27の組合せでも同じ動作だったが表は省略)
GPIO22 | 1 | 1 | 0 | 0 |
GPIO13 | 0 | 1 | 1 | 0 |
想定 | 動く(順方向) | 動かない(ロック) | 動く(逆方向) | 動かない(空転) |
結果 | × | ○ | ○ | ○ |
GPIO22 | 1 | 1 | 0 | 0 |
GPIO13 | 0 | 1 | 1 | 0 |
想定 | 動く(順方向) | 動かない(ロック) | 動く(逆方向) | 動かない(空転) |
結果 | ×(かろうじて動いている) | ○ | × | ○ |
結果は
- 白/黒ともに動かないが、それぞれ別の動きをしている
- GPIO22,13ともに1の時にロックは動作している
- ドライバー白の順方向が動作しないとはいえかろうじて動いている
どこかがショートしていて動作に必要な量がモーターまでうまく流れていない気がする
通電状況を調べてみる
白から
GPIO22 | 1 | 1 | 0 | 0 |
GPIO13 | 0 | 1 | 1 | 0 |
想定 | 動く(順方向) | 動かない(ロック) | 動く(逆方向) | 動かない(空転) |
結果 | × | ○ | ○ | ○ |
V | 少し(0.1vぐらい)と0を数秒で行き来 | 0 | 4 | 0 |
ma | 少し(0.1vぐらい)と0を数秒で行き来 | 0 | 250以上 | 0 |
黒も
GPIO22 | 1 | 1 | 0 | 0 |
GPIO13 | 0 | 1 | 1 | 0 |
想定 | 動く(順方向) | 動かない(ロック) | 動く(逆方向) | 動かない(空転) |
結果 | ×(かろうじて動いている) | ○ | × | ○ |
V | 少し(0.5vぐらい)と0を1秒で | 0 | 0.05v程度安定 | 0 |
ma | 100mA程度と0を1秒で | 0 | 0.1ma程度で安定 | 0 |
これから