Robofun 機器人論壇

標題: 關於arduino 抓取amg8833數值的問題 [打印本頁]

作者: lucy5222    時間: 2018-6-1 14:46
標題: 關於arduino 抓取amg8833數值的問題
本帖最後由 lucy5222 於 2018-6-1 14:47 編輯

大家好,目前在使用arduino 在抓取數值時,預計一次抓取一個,可是在打開序列埠之後,卻同時出現兩個,而第一個是錯的,之後的數值皆為正確(就是一次只抓一個),想請問大家如何解決此問題 謝謝(順序圖片由1-3)
#include <Wire.h>

#include <Adafruit_AMG88xx.h>

Adafruit_AMG88xx amg;

//float pixels[AMG88xx_PIXEL_ARRAY_SIZE];
float pixels[8][8];
void setup()
{
    Serial.begin(115200);      
    bool status;   
    status = amg.begin();   
    if (!status) {}      
    //delay(100);
    amg.readPixels(&pixels[0][0]);   
}

void loop()
{      
    for (int i=0; i<=0; i++)
    {     
        for (int j=0; j<=2; j++)
        {   
            Serial.print("C");            
            Serial.print(pixels[j]);
            Serial.print(i);
            Serial.print(j);            
            while (Serial.available()<=0) {}
            Serial.read();d
            delay(50);                                                      
        }
    }

   for(int i=0; i<=0; i++)
   for (int j=0; j<=2; j++){{
       Serial.print("A");
      Serial.print(pixels[j]);
      Serial.print(", ");
}}

}
   

3.PNG (10.69 KB, 下載次數: 379)

3.PNG

2.PNG (10.51 KB, 下載次數: 380)

2.PNG

1.PNG (10.81 KB, 下載次數: 373)

1.PNG

作者: 超新手    時間: 2018-6-1 15:40
1. 你應該對一下你貼的程式, 因為它根本無法成功編譯成功
我猜是這個論譠的問題...
你貼的程式如果有 [ i ], 它會把你的程式改掉
像是
Serial.print(pixels[j]);
我猜你原本是寫
Serial.print(pixels[ i][j]);
被論壇改掉了....
2. 看來你應該是抓到它的 BUG 了
改成   Serial.begin(9600); 試看看_
當然, 序列監控視窗那邊也要一起改成 9600

作者: lucy5222    時間: 2018-6-1 17:09
以經改過了可是會出現更大的誤差 想請問是arduino 本身的問題嗎
作者: 超新手    時間: 2018-6-1 18:12
應該是Arduino 的問題
因為我用 hyper terminnal 或 access port 軟體的來取代
序列監視視窗, 結果就正常

不過我用 9600 就ok了
如果不行, 你也可以加個 delay
Serial.begin(115200);
delay(4000);
或是拿掉
while (Serial.available()<=0) {}
    Serial.read();


結果就正常





歡迎光臨 Robofun 機器人論壇 (https://robofun.net/forum/) Powered by Discuz! X3.2