asd8602070 發表於 2018-10-2 14:33:13

想問關於藍芽和esp8266的問題

想請問大家,我再同一塊arduino上裝上HC-05還有ESP8266,分別設定腳位是(11,12),(3,4),程式碼如下:
#include <Wire.h>
#include <SoftwareSerial.h>
#define _baudrate   115200
SoftwareSerial BT(11,12);
SoftwareSerial debug(3,4);

然後在void setup(){
Serial.begin(9600); //Arduino serial port baud rate:9600
BT.begin(_baudrate);//HC-05的buadrate

debug.begin(_baudrate);//這裡是問題所在,原本可以透過手機傳訊息來開關pin13的燈泡,加上這個後就不行了。
傳訊息的方式是透過appinventer的藍芽傳文字檔on或off來控制pin13的HIGH,LOW。

RGB.reserve(30);
pinMode(Beep,OUTPUT);
pinMode(flame,INPUT);
}
想請問大大們,是接線有問題還是程式碼的邏輯出錯了

超新手 發表於 2018-10-2 17:14:01

SoftwareSerial 如果要使用兩個以上
一次只能收一個頻道
如果要切換頻道, 必須使用.listen();

void loop() {
BT.listen();
//做 BT 的事
debug.listen();
//做 debug 的事
}
如果切到一邊(如BT), 另一邊(DEBUG)就"有可能"掉資料.
因為是軟體模擬, 所以有限制






asd8602070 發表於 2018-10-2 17:19:55

本帖最後由 asd8602070 於 2018-10-2 17:23 編輯

超新手 發表於 2018-10-2 17:14
SoftwareSerial 如果要使用兩個以上
一次只能收一個頻道
如果要切換頻道, 必須使用.listen();


非常謝謝!我馬上來試試
這樣我的void setup()裡面還是一樣裝BT.begin()還有debug.begin(),只是在loop的時候決定要監聽哪一個對吧?

超新手 發表於 2018-10-2 18:01:25

對.
但你確定你的程式有辦法切來切去嗎?
注意! 不能切換太快, 否則搞不好兩個都掉資料
其實如果 Serial沒其他用途
不如想辦法把其中一個改用 Serial


asd8602070 發表於 2018-10-2 19:25:21

本帖最後由 asd8602070 於 2018-10-2 19:26 編輯

超新手 發表於 2018-10-2 18:01
對.
但你確定你的程式有辦法切來切去嗎?
注意! 不能切換太快, 否則搞不好兩個都掉資料
其實如果 Serial沒其他用途
不如想辦法把其中一個改用 Serial


請問這是甚麼意思呢,抱歉我還不太熟悉
頁: [1]
查看完整版本: 想問關於藍芽和esp8266的問題