Robofun 機器人論壇

 找回密碼
 申請會員
搜索
熱搜: 活動 交友 discuz
查看: 3765|回復: 4
打印 上一主題 下一主題

想問關於藍芽和esp8266的問題

[複製鏈接]
跳轉到指定樓層
1#
發表於 2018-10-2 14:33:13 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
想請問大家,我再同一塊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);
}
想請問大大們,是接線有問題還是程式碼的邏輯出錯了
2#
發表於 2018-10-2 17:14:01 | 只看該作者
SoftwareSerial 如果要使用兩個以上
一次只能收一個頻道
如果要切換頻道, 必須使用.listen();

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






3#
 樓主| 發表於 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的時候決定要監聽哪一個對吧?
4#
發表於 2018-10-2 18:01:25 | 只看該作者
對.
但你確定你的程式有辦法切來切去嗎?
注意! 不能切換太快, 否則搞不好兩個都掉資料
其實如果 Serial  沒其他用途
不如想辦法把其中一個改用 Serial


5#
 樓主| 發表於 2018-10-2 19:25:21 | 只看該作者
本帖最後由 asd8602070 於 2018-10-2 19:26 編輯
超新手 發表於 2018-10-2 18:01
對.
但你確定你的程式有辦法切來切去嗎?
注意! 不能切換太快, 否則搞不好兩個都掉資料
其實如果 Serial  沒其他用途
不如想辦法把其中一個改用 Serial


請問這是甚麼意思呢,抱歉我還不太熟悉
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

小黑屋|手機版|Archiver|機器人論壇 from 2005.07

GMT+8, 2024-11-21 18:03 , Processed in 0.158923 second(s), 6 queries , Apc On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表