見出し画像

ラジコンカー(4)・・・組んでみる

前回

で電源の目途も立ちました。

制御は

で使ったブレッドボードを引っぺがしてそのまま使うことにします。

画像1

ArduinoNANOで、D10,D11はBluetoothモジュール HC-05 との通信用で使用済み。

L298Nとの通信につかうピンはデジタル出力が4本、アナログ出力(PWM)が2本。(その他電源関係)になります。

Arduino公式サイトにあるNANOのピンアサイン

の資料見ると、PWM出力に使えるのはデジタル3,5,6,9,10,11番のようですね。(というか、これって、UNOと同じか。)

※では、モーター1 をデジタル4,5,6 (PWMは 6)、モーター2をデジタル7,8,9(PWMは 9)でコントロールすることにしておきましょうか?

(と思ったところ「ピン5と6のPWM出力はデューティ比が高めになる」との情報を発見。

とりあえず、デジタル6でやってみて、何かバランスが崩れるようなら、モーター1のPWMはデジタル3で使うようにしましょう。)

ただ、いっぺんにやると不具合があったときにわからなくなりますので、今回はPWMを使わず、ジャンパピンを入れたままにしておきます。(つまり、最高速度固定)

スケッチは次のように準備しました。もっと短くスッキリかけるはずですけどね。

#define IN1 4
#define IN2 5
#define ENA 6
#define IN3 7
#define IN4 8
#define ENB 9

#include <SoftwareSerial.h>

SoftwareSerial mySerial(11, 10); //RX, TX
String receiveStr;

void setup() {
 mySerial.begin(9600);
 
 pinMode(IN1, OUTPUT);
 pinMode(IN2, OUTPUT);
 pinMode(IN3, OUTPUT);
 pinMode(IN4, OUTPUT);
}

void loop() {
 if(mySerial.available() > 0){  
   receiveStr=mySerial.readStringUntil('\n');

   if (receiveStr=="stop"){
     car_stop();
   }
   if (receiveStr=="forward"){
     forward();
   }
   if (receiveStr=="back"){
     back();
   }    
   if (receiveStr=="right"){
     turn_right();
   }
   if (receiveStr=="left"){
     turn_left();
   }
 }
}

void forward(){
 right_forward();
 left_forward();
}

void back(){
 right_back();
 left_back();
}

void car_stop(){
 right_stop();
 left_stop();
}

void turn_right(){
 right_back();
 left_forward();
}

void turn_left(){
 right_forward();
 left_back();
}

void right_forward(){
 digitalWrite(IN1,LOW);
 digitalWrite(IN2,HIGH); 
}

void right_back(){
 digitalWrite(IN1,HIGH);
 digitalWrite(IN2,LOW);   
}

void right_stop(){
 digitalWrite(IN1,LOW);
 digitalWrite(IN2,LOW);   
}

void left_forward(){
 digitalWrite(IN3,HIGH);
 digitalWrite(IN4,LOW); 
}

void left_back(){
 digitalWrite(IN3,LOW);
 digitalWrite(IN4,HIGH); 
}

void left_stop(){
 digitalWrite(IN3,LOW);
 digitalWrite(IN4,LOW); 
}

Bluetooth接続したスマホから文字列を送り

forward 前進
back 後退
stop 停止
right 右転
left 左転

おーし、走らせるぞ。

あ、こけた (^_^;)

画像2

とりあえず、振り落とされないように輪ゴムで固定しました。

ひとまず完成ということにしましょう。


この記事が気に入ったらサポートをしてみませんか?