2018年3月5日 星期一

Arduino (26) 主、從端HC-05藍芽互相連通+二輪智能車系統。


智能車搭配藍芽序列阜操控,

如果已經玩到現在這種程度的話就知道只是想充充版面而已,

沒什麼難度,只想試看看而已,順便也寫一下。



搭配一個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);
  }
}




沒有留言:

張貼留言

8051 (6) 紅外線避障模組控制LED七段顯示器。

這篇要做的Project就是感測器測到訊號時,LED七段顯示器會開始計算偵測次數, 到第5次時會讓紅色LED燈發光。 程式如下: #include <reg52.h> unsigned char seg[5]={0xf9,...