Robofun 機器人論壇

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

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2016-11-22 20:54:15 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
這是藍牙遙控車想加進一段可以把超音波的資料傳給手機
程式是參考網路的 不知道為什麼沒有成功
手機沒有反應  監視視窗沒問題
想請問大家  

#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[3];
  packet[0] = 97;
  packet[1] = sendData / 256;
  packet[2] = sendData % 256;

    if(BT.read() == 97)
    {
      for(int i = 0; i < 3; i++)
        BT.write(packet);
    }
    }
2#
發表於 2016-11-23 06:38:51 | 只看該作者
藍牙有接到 ardunio 的接腳 3 和 4嗎 ?
3#
 樓主| 發表於 2016-11-23 13:21:09 | 只看該作者
回復 2# 超新手


   有 藍芽有連接到  就是資料送不過來
4#
發表於 2016-11-24 08:50:34 | 只看該作者
這個程式雖然有小問題, 但還 OK
所以不是硬體問題, 就是操作問題
1. 手機連線成功時, 藍牙燈有停止閃爍嗎?
2. 藍牙的 RX 接到Arduino 的那一根腳,  TX 接到Arduino 的那一根腳?
5#
 樓主| 發表於 2016-11-25 05:42:50 | 只看該作者
回復 4# 超新手

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

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

我現在想要再加上去 傳回手機顯示 這個功能 沒有成功
6#
發表於 2016-11-25 08:39:48 | 只看該作者
那 APPINVEMTOR  的超音波定時回傳有致能嗎?
7#
 樓主| 發表於 2016-11-29 22:37:05 | 只看該作者
回復 6# 超新手


   不好意思 方便解釋致能是什麼意思嗎 謝謝         剛入門 一些名詞不太瞭解抱歉
8#
 樓主| 發表於 2016-12-2 13:30:48 | 只看該作者
謝謝回復  已解決
我把app傳數字97 改成傳字串' '
再用 switch case 命令
就成功了
9#
發表於 2016-12-6 23:52:12 | 只看該作者
請問一下樓上的大大程式碼改成什麼樣子......我改了好幾次還是傳不回去
10#
 樓主| 發表於 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[3];
  packet[0] = 97;
  packet[1] = sendData / 256;
  packet[2] = 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
11#
 樓主| 發表於 2016-12-7 06:23:04 | 只看該作者
APP的計時器 速率要調慢一點 不然遙控的部分 會被傳距 傳的q 擋住 導致遙控失靈 只剩測距部分會動作
12#
發表於 2016-12-9 03:48:14 | 只看該作者
本帖最後由 king15119 於 2016-12-9 03:49 編輯

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

(1.32 MB, 下載次數: 578)

APP介面

APP介面
13#
 樓主| 發表於 2016-12-10 11:50:41 | 只看該作者
藍芽有連到嗎?
14#
發表於 2016-12-10 19:08:05 | 只看該作者
回復 13# wen201


   有~燈是常亮狀態
15#
發表於 2016-12-11 01:08:14 | 只看該作者
可以請問一下你的程式碼跟APP INVENTOR的部分嗎
16#
 樓主| 發表於 2016-12-12 23:20:47 | 只看該作者
回復 15# king15119 程式就是上面的

給你app連線部分


   如果再不行可能我就不太瞭解什麼原因了
    不好意思
17#
發表於 2017-9-13 15:09:50 | 只看該作者
不知道是否有人可以給最終解決方法

我的問題是一樣的  手機怎麼改值都出不來
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-11-21 20:28 , Processed in 0.179149 second(s), 8 queries , Apc On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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