酒と薔薇の日々(その2)

好きなことだけ求めて生きるアスペ気味のINTJ人

三輪バギー復活か?

2023年08月07日 15時49分44秒 | マイコン(ESP32・Arduino等)

随分前に買って放りっぱなしだった3輪バギー 当時送料込みで9$でした。
最近、新講座を検討しててarduinoでバギーキットを動かそうかなどと話が進んでいる。
確か、ドライバボードが1枚余ってたはずなのでちょっと組んでみることにした。
電源が電池4本で6Vのはずだが、ニッケル水素4.8Vで動くのかな~ 少し疑問

プラ製の車輪がなんとも奥ゆかしいと言うかチープと言うか・・・
まあ、無問題ではある。多分

モータードライバ基盤が要る。2種類あった。

左は、2019年8月購入で「RASBEE L9110S DCモータステップモータ駆動基盤」2個で265円(現在は379円)
右は、arduinoシールドでDCモーター4個(あるいはステッパ / サーボ2個)まで駆動可能
  同じく2019年8月購入で「Rasbee オリジナル L293D モーター ドライブ シールド」価格は217円(現在は391円 高くなってるね~)
  (購入に際してこちらを参考とさせていただいた)

無駄にシールドのスペースを潰したくないしこのぢ者はモータ2個しか無いので左のやつで十分かな?
戦車でもこれを使った実績あるし。PWM駆動も可能なことは実証済み。最終はこちら
だが、当時の記事を読み直すとマブチモータの場合、最大電流問題から「L293D」を使うが吉と書いていた。
ちょっと悩みますな。熱に注意しておこう。

-------------------------

まずはデータシートはこちらから
アナログポートを使いPWM制御が可能と書かれサンプルが載っていた。

何とか動いたのだが・・・(動画
何故かPWM値を127にしたら右前進しか動かない。へんじゃろ
配線がまた切れたのかとテスターを持ち出す。確かに右モータしか電圧がかかっていない。
arduinoからの出力ピン(8)をモータードライブ基盤の別入力へ差し替えると、そのモータだけは動く。へんじゃろ!
しばし悩んだゾ

PWM出力値を511に戻すもダメ
ところがPWM値を1023にしただけで、な、な、なんと元通り動き出した。へんじゃろ!!
モータードライブ基盤がおかしいのかな。
HI/LOで動かすのが吉かも。わからんね

================

const int A1A = 8;
const int A1B = 9;
const int B1A = 11;
const int B1B = 10;

int r_speed = 700;  // 511以下では動作不良を起こした。なぜ?    
int l_speed = 700;      

void setup() {
  pinMode(A1A, OUTPUT);
  pinMode(A1B, OUTPUT);
  pinMode(B1A, OUTPUT);
  pinMode(B1B, OUTPUT);
}

//--------停止----------
void stop(){
  analogWrite(A1A,0);
  analogWrite(A1B,0);
  analogWrite(B1A,0);
  analogWrite(B1B,0);
}
//--------後退系----------
void r_backward(){
  analogWrite(A1A,r_speed);
  analogWrite(A1B,0);
}
void l_backward(){
  analogWrite(B1A,l_speed);
  analogWrite(B1B,0);
}
void back(){
  r_backward();
  l_backward();
}
//--------前進系-----------
void r_forward(){
  analogWrite(A1A,0);
  analogWrite(A1B,r_speed);
}
void l_forward(){
  analogWrite(B1A,0);
  analogWrite(B1B,r_speed);
}
void forward(){
  r_forward();
  l_forward();
}
//------その場で回転-------
void turn_r(){
  r_backward();
  l_forward();
}
void turn_l(){
  r_forward();
  l_backward();
}

void loop() {
  forward(); delay(2000);  stop(); delay(2000);
  back();    delay(2000);  stop(); delay(2000);
  turn_r();  delay(2000);  stop(); delay(2000);
  turn_l();  delay(2000);  stop(); delay(2000);
}

 

この記事についてブログを書く
« YMM4など勉強会開催 | トップ | ロボカーの再構築を検討(ESP... »