智能車搭配藍芽序列阜操控,
如果已經玩到現在這種程度的話就知道只是想充充版面而已,
沒什麼難度,只想試看看而已,順便也寫一下。
搭配一個Master。
因為要同時看螢幕和車子,只好讓他懸空轉。
程式如下 :
就只附上Slave端的就好了。
#include <SoftwareSerial.h>
SoftwareSerial BT(3, 4);
char val;
const byte IN1 = 10;
const byte IN2 = 9;
const byte IN3 = 8;
const byte IN4 = 7;
void setup() {
BT.begin(38400);
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
}
void forward()
{
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
}
//前進的函式。
void backward()
{
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
}
//後退的函式。
void turnLeft()
{
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
}
//左轉的函式。
void turnRight()
{
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
}
//右轉的函式。
void stop()
{
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
}
//停止的函式。
void loop() {
if (BT.available()) {
val = BT.read();
if (val == '1') {
forward();
delay(100);
BT.println("forward");
} else if (val == '2') {
backward();
delay(100);
BT.println("backward");
}else if (val == '3') {
turnLeft();
delay(100);
BT.println("turnLeft");
}
else if (val == '4') {
turnRight();
delay(100);
BT.println("turnRight");
}
else if (val == '5') {
stop();
delay(100);
BT.println("stop");
}
//輸入數字對應輪子轉動方式。
delay(100);
}
}