以前からSPRESENSEのマルチコアで制御をやってみたいなと思い、はじめの一歩としてDCモータを動かしてみました。せっかくなら小型化したいので、メインボードのみでDCモータを動かせるモータドライバを探してみました。
いろいろ探したところ、ロジック電源が2V(メインボードは1.8Vなので少しスペック割れですが)のDRV8835を使ってみることにしました。(秋月電子で購入しました)
回路は次のようにしてみました。
テスト用のスケッチは次のような単純なものです。
実際に組み上げた様子がこちら。
波形を見てみると、モーター駆動待機状態でフラットになっていません。モーターに若干のブレーキがかかっている可能性があります。
ということで、キャパシタンスを追加してみることにしました。
実際に組み上げた様子がこちら。
波形を見てみると、電圧がLOWになっていません。モーターを動かす前の段階でモーターにブレーキがかかってしまっています。
次は、電圧をグランドに引っ張ることを考えてみました。で、100kΩの抵抗をつけてみました。
実際に組み上げた様子がこちら。
波形を見てみると、期待通り電圧がLOWになっています。モーターを動かす前の段階でフリーランになっているので、モーターに負担はかかっていないように見えます。
とは言うものの、どの方式が一番トルクが出ているは実際に測ってみないとわかりません。どうやって測ってみようかなぁ。
(。-`ω´-)
お時間のある方は動画もどうぞ。
いろいろ探したところ、ロジック電源が2V(メインボードは1.8Vなので少しスペック割れですが)のDRV8835を使ってみることにしました。(秋月電子で購入しました)
回路は次のようにしてみました。
テスト用のスケッチは次のような単純なものです。
#define AIN1 14
#define AIN2 15
void setup() {
// put your setup code here, to run once:
}
void loop() {
int i;
for (i = 0; i <= 255; ++i) {
analogWrite(AIN1, i);
analogWrite(AIN2, 0);
delay(100);
}
for (; i >= 0; --i) {
analogWrite(AIN1, i);
analogWrite(AIN2, 0);
delay(100);
}
for (i = 0; i <= 255; ++i) {
analogWrite(AIN1, 0);
analogWrite(AIN2, i);
delay(100);
}
for (; i >= 0; --i) {
analogWrite(AIN1, 0);
analogWrite(AIN2, i);
delay(100);
}
while(1);
}
実際に組み上げた様子がこちら。
波形を見てみると、モーター駆動待機状態でフラットになっていません。モーターに若干のブレーキがかかっている可能性があります。
ということで、キャパシタンスを追加してみることにしました。
実際に組み上げた様子がこちら。
波形を見てみると、電圧がLOWになっていません。モーターを動かす前の段階でモーターにブレーキがかかってしまっています。
次は、電圧をグランドに引っ張ることを考えてみました。で、100kΩの抵抗をつけてみました。
実際に組み上げた様子がこちら。
波形を見てみると、期待通り電圧がLOWになっています。モーターを動かす前の段階でフリーランになっているので、モーターに負担はかかっていないように見えます。
とは言うものの、どの方式が一番トルクが出ているは実際に測ってみないとわかりません。どうやって測ってみようかなぁ。
(。-`ω´-)
お時間のある方は動画もどうぞ。
SONY SPRESENSE メインボード CXD5602PWBMAIN1
- 出版社/メーカー: スプレッセンス(Spresense)
- メディア: Tools & Hardware
WINGONEERデュアルモータドライバモジュール1A TB6612FNG Arduinoマイクロコントローラ用
- 出版社/メーカー: WINGONEER
- メディア: エレクトロニクス
最新版 モータ技術のすべてがわかる本 (史上最強カラー図解)
- 作者: 赤津 観
- 出版社/メーカー: ナツメ社
- 発売日: 2012/09/04
- メディア: 単行本