手機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();
}
讚讚