2013-08-28 43 views
0

我正在寫一個記錄和打印數字和模擬輸入的程序。不幸的是,arduino內存不足。爲了讓程序變小,我試圖用for循環打印輸入。我一直在努力做的事情:如何在for循環中打印出一組變量

for(int analog = analog0; analog <= analog9; analog ++){ 
    Serial.println(analog); 
} 

當我運行Arduino的,它並不總是打印出所有的投入,有時打印出無,或者一個或兩個,達到約16個輸入(我只有10個連線)。每次循環運行時,它都會輸出不同數量的輸入。有什麼建議麼?

回答

2

我對arduino一無所知,但如果analog0是模擬值的讀數,那麼當然這個代碼不會起作用。 analog的值將是一個隨機ADC值!也許你需要做

for(int i = 0; i<= 9; i++){ 
    Serial.println(analogRead(i)); 
} 
+0

不幸的是,這將不完全工作。我不能讀取像這樣的模擬值,我必須單獨閱讀它們,並進行一些數學運算以獲得輸入值(在我的情況下爲壓力)。如果我嘗試類似: 'for(int i = 0; i <= 9; i ++){Serial.println(analog(i)); }' Arduino認爲「模擬」是一種功能。 – Xjkh3vk

+0

他的代碼正在逐個讀取它們。看看他寫的:analogRead(i)。看看你寫的是什麼:analog(i)。 – user2461391

+0

你應該發佈你的其他代碼。如何計算或聲明'analog0'等。如果你正在計算'analog0 = analogRead(0)* 3.3/4096'或類似的東西,你需要改變你的代碼來做'analog [0] = analogRead(0)* 3.3/4096',然後循環是通過'analog [i]'。 –

1

首先你的for循環是錯誤編碼的。

另外,儘量儲存環()外的模擬整數:

int analog[10]; 

    // etc. 

    loop() { 
     int x; 

     analog[0] = analogRead(analogPin0); 
     analog[1] = analogRead(analogPin1); 
     // etc. do calcs 
     // for a beginning programmer, this for loop is OK 
     for (idx = 0; idx < 10; idx++) { 
      serial.println(analog[idx]); 
     } 

}