![見出し画像](https://assets.st-note.com/production/uploads/images/54362249/rectangle_large_type_2_b047a3dc9c2efafab48323d38f23286b.jpg?width=1200)
ラジコンカー(4)・・・組んでみる
前回
で電源の目途も立ちました。
制御は
で使ったブレッドボードを引っぺがしてそのまま使うことにします。
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 左転
おーし、走らせるぞ。
あ、こけた (^_^;)
とりあえず、振り落とされないように輪ゴムで固定しました。
ひとまず完成ということにしましょう。