

arduinoでanalogReadから数値を読み込み、一時的にバッファに数値を蓄えておくプログラムを書いていますが、うまくできていないです。どのようにすれば解決できるか教えていただきたいです。  
私は、上記解決のために、配列を用いようとしているのですが、正式な数値を読み込めません。

今回arduinoのプログラムをpythonで動かし、pythonの方で、数値を表示させるため、このような作業を必要としています。

現在のコードは下記のようになっています。

よろしくお願いします。

[code]

    void setup()
    {
      pinMode(1, OUTPUT);
      Serial.begin(9600);
    }
    
    
    void loop()
    {
      char a;
      if (Serial.available() > 0)
      {
        a = Serial.read();
        if (a == 'z')
        {
          delay(10);
          digitalWrite(8,LOW);
          Measure();
        }
    
        if (a == 'y')
        {
          digitalWrite(8,HIGH);
    
        }
      }
    }
    
    void Measure()
    {
      int x;
      int v[300];
      int i[300];
      for(x = 1; x <= 300; x++)
      {
        v[x] = analogRead(A3);
    　　　i[x] = analogRead(A4);
        delayMicroseconds(1000);
    
      }
      delay(5000);
      for(x = 1; x <= 300; x++)
     {
       Serial.print(v[x]);
       Serial.print(',');
       Serial.println(i[x]);
     }
    }
    
[/code]


CC BY-SA 3.0
2016-05-12T03:56:01.647
24775
2016-05-13T02:18:44.823
13491
question
arduino
arduinoで数値をバッファに蓄え、一気にserial送信したい


入力ピンの指定は、正しいのでしょうか？  
関数 Measure()の中で使われている入力ピンの指定、A3,A4の値を定義しているコードが見当たりません。

[code]

    v[x] = analogRead(A3);　
    i[x] = analogRead(A4);
    
[/code]

もしも、ピン３とピン４からアナログ値を読み込むのであれば、

[code]

    v[x] = analogRead(3);　
    i[x] = analogRead(4);
    
[/code]

と修正してみてください。

「正式な数値を読み込めません。」というのが、意味もなく変動する値が読み込まれるという現象を指しているのなら、何も接続されていないピンからアナログ値を読み込んでいる可能性が高いと思われます。  
そこで、analogReadの引数を疑いました。


CC BY-SA 3.0
2016-05-13T02:18:44.823
24807
2016-05-13T02:18:44.823
217
24775
answer