2018年2月18日 星期日

Arduino (21) 主、從端HC-05藍芽互相連通+紅外線觸發。


接下來這篇就不要用PC來控制藍芽風扇,

進階點來由紅外線避障模組來控制吧。


我本來想過完年去找我們公司的黃杯杯問一下Code,因為我自己寫風扇都不會動XD

結果剛剛被我寫成功了,整整寫了2天。



來看配置,下圖是Slave端。

一樣就是觸發繼電器給5V風扇。




再來是Master端,MCU用Nano,Trigger用一個紅外線避障模組。





結果就是這樣,程式寫了2天,總算成功了。

因為我C語言的能力不太好,畢竟是自學的,容易被卡小地方。


來看程式 :

Master端 :

#include <SoftwareSerial.h>
SoftwareSerial BT(8, 9);
int val;

void setup() {
  Serial.begin(9600);
  Serial.println("BT is ready!");
  pinMode(3,INPUT);
  BT.begin(38400);

}

void loop() {
  val=digitalRead(3);
  if(val!=HIGH)
//我也有卡這邊,我忘了紅外線避障是觸發低電位。
   {
     BT.write(100);
     delay(1000);
   }
delay(50);
}



Slave端 :

#include <SoftwareSerial.h>
SoftwareSerial BT(8, 9);
int val;
int pos=0;
void setup() {
  BT.begin(38400);
  Serial.begin(9600);
  pinMode(10, OUTPUT);

}

void loop() {
  if (BT.available()>0) {
    val = BT.read();
      if(val==100&&pos==0)
//這部分也可以用Boolean,切換開關模式,每次觸發改變HIGH、LOW與按下、未按下。

  {
   digitalWrite(10,HIGH);
   pos=1;
}
else if(val==100&&pos==1)
{
  digitalWrite(10,LOW);
   pos=0;
      }
   }
}


程式不長,但搞很久。








沒有留言:

張貼留言

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

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