wen201 發表於 2016-11-22 20:54:15

arduino遙控車 超音波資料不法順利傳給手機

這是藍牙遙控車想加進一段可以把超音波的資料傳給手機
程式是參考網路的 不知道為什麼沒有成功
手機沒有反應監視視窗沒問題
想請問大家

#include <AFMotor.h>
#include <SoftwareSerial.h>
AF_DCMotor m1(1),m2(2),m3(3),m4(4);//馬達
SoftwareSerial BT(3,4);
char val;
const byte trig = 10;
const int echo = 9;   
unsigned long d;         
int counter=0;
void setup() {
pinMode(trig, OUTPUT);
pinMode(echo, INPUT);   
Serial.begin(9600);
BT.begin(9600);      
}

void loop() {
float duration; //持續時間
float distance; //距離
digitalWrite(trig, HIGH);
delayMicroseconds(1000);
digitalWrite(trig, LOW);
duration = pulseIn(echo, HIGH);
distance = (duration / 2) * 0.034;
Serial.print(distance);
Serial.println("cm");
delay(500);

int sendData = (int) (distance*100);
byte packet;
packet = 97;
packet = sendData / 256;
packet = sendData % 256;

    if(BT.read() == 97)
    {
      for(int i = 0; i < 3; i++)
      BT.write(packet);
    }
    }

超新手 發表於 2016-11-23 06:38:51

藍牙有接到 ardunio 的接腳 3 和 4嗎 ?

wen201 發表於 2016-11-23 13:21:09

回復 2# 超新手


   有 藍芽有連接到就是資料送不過來

超新手 發表於 2016-11-24 08:50:34

這個程式雖然有小問題, 但還 OK
所以不是硬體問題, 就是操作問題
1. 手機連線成功時, 藍牙燈有停止閃爍嗎?
2. 藍牙的 RX 接到Arduino 的那一根腳,TX 接到Arduino 的那一根腳?

wen201 發表於 2016-11-25 05:42:50

回復 4# 超新手

燈有停止閃爍
RX=3TX=4

我車子的程式用藍牙控制是跑得動的
一開始用超音波測距 監控視窗會跑 是正常的

我現在想要再加上去 傳回手機顯示 這個功能 沒有成功

超新手 發表於 2016-11-25 08:39:48

那 APPINVEMTOR的超音波定時回傳有致能嗎?

wen201 發表於 2016-11-29 22:37:05

回復 6# 超新手


   不好意思 方便解釋致能是什麼意思嗎 謝謝         剛入門 一些名詞不太瞭解抱歉

wen201 發表於 2016-12-2 13:30:48

謝謝回復已解決
我把app傳數字97 改成傳字串' '
再用 switch case 命令
就成功了

king15119 發表於 2016-12-6 23:52:12

請問一下樓上的大大程式碼改成什麼樣子......我改了好幾次還是傳不回去

wen201 發表於 2016-12-7 05:53:25

回復 9# king15119
#include <SoftwareSerial.h>
char val;
const int trig =10;
const int echo =9;
SoftwareSerial BT(3,4);
void setup() {
pinMode(trig, OUTPUT);
pinMode(echo, INPUT);   
Serial.begin(9600);
BT.begin(9600);
}
void loop() {
float duration;
float distance;
digitalWrite(trig, HIGH);
delayMicroseconds(200);
digitalWrite(trig, LOW);
duration = pulseIn(echo, HIGH);
distance = (duration / 2) * 0.034;
Serial.print(distance);
Serial.println("cm");
delay(200);
int sendData = (int) (distance * 100);
byte packet;
packet = 97;
packet = sendData / 256;
packet = sendData % 256;
if (BT.available() ){
    val = BT.read();
    Serial.println(val);
    switch (val) {
      case 'q'://測距
      for(int i = 0; i < 3; i++)
   BT.write(packet);
      break;
}
}
}
然後我是app的部分是 呼叫藍芽傳送單位元組數字97 改
                               呼叫藍芽發送文字 q

wen201 發表於 2016-12-7 06:23:04

APP的計時器 速率要調慢一點 不然遙控的部分 會被傳距 傳的q 擋住 導致遙控失靈 只剩測距部分會動作

king15119 發表於 2016-12-9 03:48:14

本帖最後由 king15119 於 2016-12-9 03:49 編輯

我照上面的結果還是沒辦法傳回手機........
我APP INVENTOR 裡面也只有改發送文字的地方..CLOCK的數值也有拉長至2秒,可是手機上面還是完全沒顯示...
http://www.robofun.net/forum/images/attachicons/binary.gif

wen201 發表於 2016-12-10 11:50:41

藍芽有連到嗎?

king15119 發表於 2016-12-10 19:08:05

回復 13# wen201


   有~燈是常亮狀態

king15119 發表於 2016-12-11 01:08:14

可以請問一下你的程式碼跟APP INVENTOR的部分嗎

wen201 發表於 2016-12-12 23:20:47

回復 15# king15119 程式就是上面的

給你app連線部分


   如果再不行可能我就不太瞭解什麼原因了
    不好意思

leo0983405269 發表於 2017-9-13 15:09:50

不知道是否有人可以給最終解決方法

我的問題是一樣的手機怎麼改值都出不來
頁: [1]
查看完整版本: arduino遙控車 超音波資料不法順利傳給手機