Robofun 機器人論壇
標題:
Arduino藍芽問題(十萬火急)
[打印本頁]
作者:
a6141100
時間:
2013-6-5 16:22
標題:
Arduino藍芽問題(十萬火急)
以下是小弟程式碼
目的:利用藍芽與手機(Android)藍芽通訊,手機傳數值2,1,0;
而Arduino收到2要執行感光偵測,大於臨界點會發出警報(蜂鳴器)且Led燈會亮;
收到1要自行一直跑感光並偵測值,
大於臨界點會發出警報(蜂鳴器)且Led燈會亮,
收到0則關閉Arduino。
面臨問題:
當App結束關掉或是藍芽因距離過遠斷掉連接Arduino無法判斷出來!!!!
再跑模式1(收到1),會無窮迴圈,原本功能是希望能再跑迴圈的時候若輸入另外一個值(ex:2或1),則Arduino會執行2或1該有的功能。
請大大幫個忙,感恩
int potPin = 2;
int val = 0;
int speakerPin = 7;
int sval = 1318;
int ledPin = 9;
void setup(){
Serial.begin(9600);
pinMode(speakerPin,OUTPUT);
pinMode(ledPin, OUTPUT);
}
void loop(){
if(Serial.available()){
unsigned char charreceived = Serial.read();
switch(charreceived){
case '2':
Serial.println("can not open and far");
val = analogRead(potPin);
Serial.println(val);
digitalWrite(ledPin,LOW);
if(val>25){
digitalWrite(ledPin,HIGH);
digitalWrite(speakerPin,HIGH);
delayMicroseconds(sval);
}delay(1000);
break;
case '1':
do{
Serial.println("can not open");
val = analogRead(potPin);
Serial.println(val);
digitalWrite(ledPin,LOW);
if(val>25){
digitalWrite(ledPin,HIGH);
digitalWrite(speakerPin,HIGH);
delayMicroseconds(sval);
}
delay(1000);
}while(charreceived=1);
break;
case '0':
Serial.println("free mode");
break;
}
}
}
作者:
babyfish0226
時間:
2013-6-6 10:39
回復
1#
a6141100
case '1':
do{
Serial.println("can not open");
val = analogRead(potPin);
Serial.println(val);
digitalWrite(ledPin,LOW);
if(val>25){
digitalWrite(ledPin,HIGH);
digitalWrite(speakerPin,HIGH);
delayMicroseconds(sval);
}
delay(1000);
charreceived = Serial.read(); //加這一行
}while(charreceived=1);
break;
複製代碼
這個迴圈主要是用charreceived=1來做判斷,但是當app端離開或藍芽斷線的時候,若最後的狀態停在charreceived=1的話則會進入do無限迴圈裡面,我想,在while的前面加上一行charreceived = Serial.read(); 若藍芽恢復連線時則do迴圈內也可以接收到訊號並改變charreceived的值也許就可以了。
作者:
a6141100
時間:
2013-6-7 14:00
回復
2#
babyfish0226
大哥@@感恩。這問題已解!!!!
但還有一個大問題!!!!
藍芽斷掉連接Arduino是否有判斷式,我目的是要做出當藍芽斷掉連接Arduino會知道並發出警報(蜂鳴器會叫)!!
麻煩看到的大大能幫忙一下。
感恩。
作者:
pizg
時間:
2013-6-8 00:13
手機每隔特定的時間傳送資料給Arduino,
Arduino端則可以計數接收到該資料的時間,
若時間超過你認為就是斷訊的秒數,
就可判定為藍芽斷線.
作者:
a6141100
時間:
2013-6-10 23:41
回復
4#
pizg
怎麼計數接收到該資料的時間!!?
作者:
pizg
時間:
2013-6-13 18:13
本帖最後由 pizg 於 2013-6-13 18:25 編輯
回復
5#
a6141100
你可以參考Cooper Maa老師的這篇文章.
http://coopermaa2nd.blogspot.tw/2011/04/millis-button.html
或是這一篇
http://coopermaa2nd.blogspot.tw/2011/04/pulsein-button.html
作者:
faxg1991
時間:
2013-8-11 21:57
請問a6141100大大
你的android 端的程式是怎麼寫的??
小弟也再使用藍芽但看其他網站上的都看不太懂
能不能請大大給一下你android端的程式?
作者:
pizg
時間:
2013-8-11 22:51
請問a6141100大大
你的android 端的程式是怎麼寫的??
小弟也再使用藍芽但看其他網站上的都看不太懂
能不 ...
faxg1991 發表於 2013-8-11 21:57
你 google 一下就有了,keyword > amarino
歡迎光臨 Robofun 機器人論壇 (https://robofun.net/forum/)
Powered by Discuz! X3.2