手機APP
HC-05請使用:https://play.google.com/store/apps/details?id=braulio.calle.bluetoothRCcontroller
onshape圖檔
老師我提供的基礎亂寫程式:
此程式只保證你的車子可以動,剩下優化請找資訊老師 😀
#include <SoftwareSerial.h> char BTcmd; SoftwareSerial BT(7,8); // RX, TX int MotorRight1=3; int MotorRight2=4; int MotorLeft1=5; int MotorLeft2=6; int MotorRight3=11; int MotorRight4=10; int MotorLeft3=12; int MotorLeft4=13; void setup() { Serial.begin(9600); BT.begin(9600); pinMode(MotorRight1, OUTPUT); pinMode(MotorRight2, OUTPUT); pinMode(MotorLeft1, OUTPUT); pinMode(MotorLeft2, OUTPUT); pinMode(MotorRight3, OUTPUT); pinMode(MotorRight4, OUTPUT); pinMode(MotorLeft3, OUTPUT); pinMode(MotorLeft4, OUTPUT); } void go()// 前進 { digitalWrite(MotorRight1,HIGH); digitalWrite(MotorRight2,LOW); digitalWrite(MotorLeft1,HIGH); digitalWrite(MotorLeft2,LOW); digitalWrite(MotorRight3,HIGH); digitalWrite(MotorRight4,LOW); digitalWrite(MotorLeft3,HIGH); digitalWrite(MotorLeft4,LOW); } void left() //右轉 { digitalWrite(MotorRight1,HIGH); digitalWrite(MotorRight2,LOW); digitalWrite(MotorLeft1,LOW); digitalWrite(MotorLeft2,HIGH); digitalWrite(MotorRight3,HIGH); digitalWrite(MotorRight4,LOW); digitalWrite(MotorLeft3,LOW); digitalWrite(MotorLeft4,HIGH); } void right() //左轉 { digitalWrite(MotorRight1,LOW); digitalWrite(MotorRight2,HIGH); digitalWrite(MotorLeft1,HIGH); digitalWrite(MotorLeft2,LOW); digitalWrite(MotorRight3,LOW); digitalWrite(MotorRight4,HIGH); digitalWrite(MotorLeft3,HIGH); digitalWrite(MotorLeft4,LOW); } void back()// { digitalWrite(MotorRight1,LOW); digitalWrite(MotorRight2,HIGH); digitalWrite(MotorLeft1,LOW); digitalWrite(MotorLeft2,HIGH); digitalWrite(MotorRight3,LOW); digitalWrite(MotorRight4,HIGH); digitalWrite(MotorLeft3,LOW); digitalWrite(MotorLeft4,HIGH); } void stop() //停止 { digitalWrite(MotorRight1,LOW); digitalWrite(MotorRight2,LOW); digitalWrite(MotorLeft1,LOW); digitalWrite(MotorLeft2,LOW); digitalWrite(MotorRight3,LOW); digitalWrite(MotorRight4,LOW); digitalWrite(MotorLeft3,LOW); digitalWrite(MotorLeft4,LOW); } void loop() { if (BT.available()) { BTcmd= BT.read(); if ('F' == BTcmd) go(); else if ('L' ==BTcmd) left(); else if ('B' ==BTcmd) back(); else if ('R' == BTcmd) right(); else stop(); //else stop() } else{ delay(200); } Serial.flush(); }
#include
char BTcmd;
SoftwareSerial BT(7,8); // RX, TX
int MotorRight1=3;
int MotorRight2=4;
int MotorLeft1=5;
int MotorLeft2=6;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
BT.begin(9600);
pinMode(MotorRight1, OUTPUT);
pinMode(MotorRight2, OUTPUT);
pinMode(MotorLeft1, OUTPUT);
pinMode(MotorLeft2, OUTPUT);
}
char m3;
char m4;
char m5;
char m6;
void loop() {
// put your main code here, to run repeatedly:
if(BT.available()){
BTcmd= BT.read();
if(‘F’ == BTcmd){
m3=HIGH;m4=LOW;m5=HIGH;m6=LOW;
}
else if(‘L’ ==BTcmd){
m3=HIGH;m4=LOW;m5=LOW;m6=HIGH;
}
else if(‘B’ ==BTcmd){
m3=LOW;m4=HIGH;m5=HIGH;m6=LOW;
}
else if(‘R’ ==BTcmd){
m3=LOW;m4=HIGH;m5=LOW;m6=HIGH;
}
else{
m3=LOW;m4=LOW;m5=LOW;m6=LOW;
}
}
else{
delay(200);
}
digitalWrite(MotorRight1,m3);
digitalWrite(MotorRight2,m4);
digitalWrite(MotorLeft1,m5);
digitalWrite(MotorLeft2,m6);
Serial.flush();
}
讚讚