Robofun 機器人論壇

 找回密碼
 申請會員
搜索
熱搜: 活動 交友 discuz

請問各位arduino 數值上傳到手機app的相關問題!!

查看數: 3771 | 評論數: 11 | 收藏 0
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發佈時間: 2017-12-27 09:35

正文摘要:

本帖最後由 qzec0910266 於 2017-12-27 09:42 編輯 請問各位 溫溼度搭配藍芽 手機app就可以順利接受到數值 空氣品質(pms3003)卻沒辦法,請各位幫我看一夏問題出在哪謝謝 以下是程式碼: #include <SoftwareSerial.h ...

回復

qzec0910266 發表於 2017-12-28 15:46:44
超新手 發表於 2017-12-28 15:19
繼電器? 應該不行吧?
電池? 不會是碳鋅電池吧?
如果有變壓器,

好的謝謝
我再試試看
超新手 發表於 2017-12-28 15:19:12
本帖最後由 超新手 於 2017-12-28 16:02 編輯

繼電器? 應該不行吧?
電池? 不會是碳鋅電池吧?
如果有變壓器,
不如先拿掉電池, 接變壓器加接USB試看看
先確定真的是電力問題
qzec0910266 發表於 2017-12-28 15:12:14
超新手 發表於 2017-12-28 14:29
你應該有另外給 Vin 吧? 不是直接接 USB 吧?
有兩種可能
1. Vin 所能提供的電流太小

我的接法是
9v電池輸入arduino
再由arduino的5v輸出給兩個元件
應該是你說的第二點八
如果買個繼電器 有辦法解決嗎
謝謝!!
超新手 發表於 2017-12-28 14:29:27
你應該有另外給 Vin 吧? 不是直接接 USB 吧?
有兩種可能
1. Vin 所能提供的電流太小
   換一個大電流的變壓器(如果你是用電池, 並聯電池)即可
2. Arduino 的+5V 不夠力
    這就比較麻煩, 可能要自己外掛一個 Vin 轉 5V 的隆壓模組
    然後把一部份的電源接到這個新 5V 上升(要記得共地)

    如果你有另一個 arduino, 可以先把兩個arduino共地,
    新的 arduino 看是要接 VIN 或 USB,
    由新的 arduino 提供 5V 給藍牙, 看看還會不會有問題
    如果是, 再決定要怎麼做....
    小心別接錯了
      
qzec0910266 發表於 2017-12-28 14:07:21
超新手 發表於 2017-12-27 12:32
應該都有
1) app端
   這個程式下了一個 byte, 就馬上去讀

超新手大大 感謝你昨天給的建議
我把return一道loop最外層就成功了

想在請問你 因為我藍芽和空氣感測器都接5v但好像推不太動
藍芽的燈有時就不閃了
想請問你 有什麼建議可以解決嗎
謝謝!!
qzec0910266 發表於 2017-12-27 16:17:17
超新手大大感謝你的回覆
超新手 發表於 2017-12-27 12:32:57
應該都有
1) app端
   這個程式下了一個 byte, 就馬上去讀
   資料應該沒辦法回傳的這麼快, 所以很可能會在下一輪才回傳
2) Arduino
   因為 delay(1000); 的關係
   這個程式每隔一秒才處理一次命令
   而你卻一次計時器中斷就送了 1, 2, 3, 4 四個命令
   當然是可以把計時中斷弄慢一點
   但根本方法還是把程式寫的有效率點

   
qzec0910266 發表於 2017-12-27 12:18:35
超新手 發表於 2017-12-27 11:45
>>如果我直接把return 拿掉的話他可以繼續往下跑嗎
不行, 會漏掉命令
因為你在前面温濕度己經執行一次


超新手大大非常感謝你的回覆
想在請問你
app接收數值時
總是溫度接收最快
其他數值總會延遲
是因為arduino端的問題還是app端的問題
謝謝
超新手 發表於 2017-12-27 11:45:24
本帖最後由 超新手 於 2017-12-27 11:58 編輯

>>如果我直接把return 拿掉的話他可以繼續往下跑嗎
不行, 會漏掉命令
因為你在前面温濕度己經執行一次
serialA=I2CBT.read();
你又在 空氣品質 這邊又執行 一次
serialA=I2CBT.read();
這樣就會漏命令
整個程式最好只有一個 serialA=I2CBT.read();

不過你可以先拿掉試看看, 因為這樣改比較簡單
反正多讀幾次, 應該有一次會成功



超新手 發表於 2017-12-27 10:36:45
本帖最後由 超新手 於 2017-12-27 10:38 編輯

1. 你的程式根本到不了
//空氣數值透過藍芽傳送到app 這一行
在這行之前, 副程式就 return 掉了
2. 比較簡單的改法, 就是
//空氣數值透過藍芽傳送到app
以下的程式,
1) 拿掉其中的  serialA=I2CBT.read();
2) 然後整個  移到
if (serialA == 2){
.......
}
的下面即可
3) 再把
long  pmat25=0,pmat100=0;
移到最上(外)層, 也就是變成全域變數

3. 另外...你的APP 是對的嗎?

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

GMT+8, 2024-5-15 02:04 , Processed in 0.200291 second(s), 10 queries , Apc On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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