https://blog.with2.net/link/?1965529

二個のDCモータを制御する

https://blog.with2.net/link/?1965529

前回につづいてモーターの制御に取り組んでいます。

今回はダブルギヤボックスのモーター2個を使ってみます。

ついでに製作する車両の尾灯を模してLED2個をを前進時にはOFF,後進ではON、旋回では片側ON,停止ではONという回路を追加して、前後進、停止の制御はパソコンのキーボードから出来るように改造しました。

より車両に近づいた感があります。

2個のモーター制御のsketchはこちらのサイトを参考にさせていただきました。
http://makerslove.com/5244.html/2

sketchはほぼ上記サイトのものを拝借しています。

今回初めて使う命令文が「Serial通信」です。
Arduinoにはシリアル通信機能が搭載されており、パソコンとUSB経由で通信できます。

これを実装するのは非常に簡単です。setup()に「Serial.begin(9600)」、loop()に「Serial.read()」と書くだけです。9600は通信速度で接続機器で変わってくるようなのですが今は後回しにします。結果オーライで進めます。トラブルが起きてから解決法を勉強しないと身につかないタイプです。

命令文の一例です。

if (Serial.available() > 0) { // シリアル通信でデータが送られてくるまで待つ。
    char c = Serial.read(); // 一文字分データを取り出す。
    Serial.println(c);
    if (c == 'w') { // 前進
      analogWrite(in1_1, 255);
      analogWrite(in1_2, 0);

これでパソコンのキーボードで”c”を打てば前進ということです。

LEDのほうは、ここまでくると自力で書きたせるようになってきました。

後進の時にはLEDを点滅させたいのですが、点滅のsketchはどうもうまくいきません。もう少し勉強しなければならないようですが、とりあえず後回しです。よほどのトラブルでなければ勉強しないタイプでもあります。

キーボードからの指令で問題なく作動しています。ここまでくれば、キーボードからの指令を距離センサからの指令と考えれば衝突回避は出来そうな気がしてきました。

さらに赤外線信号にすればリモコン操作も出来ることになるなと考えています。機体が完成すれば次の課題にしなければなりません。

トランスミッション周りはこれで一応完成として、次は距離センサとそれを首振り運動させるサーボモーターの制御をやってみたいと考えています。

シェアする

フォローする