ライン・スキャナーからArduinoに送られたアナログ値を解釈する方法は?

だから私は私のArduinoメガに接続されたラインスキャンカメラを持っていて、私はそれにデジタルクロックのインパルスを送り、アナログ出力を取り戻そうとしています。ラインスキャンカメラは128ピクセルを返します。

これまで私はインパルスを送って、私が印刷しているアナログ値を取り戻すことができました。しかし、値は毎回異なりますが、カメラは動かないので意味がありません。同様の数字を返すべきだと私は仮定します。

また、これらの数字が何を意味するのかを判断する方法はありますか?アナログ信号をカラーピクセルに変換する方法はありますか?私の究極の目標は、何かがラインスキャナのビジョンを通して動いたかどうかを判断することです

Here is the datasheet for the line scanner: http://www.farnell.com/datasheets/315815.pdf

ここに私のコードです:

void loop() {

  int delayTime = 20;
  digitalWrite(syncPin, HIGH);
  delayMicroseconds(delayTime);
  digitalWrite(clockPin, HIGH);
  delayMicroseconds(delayTime);
  digitalWrite(syncPin, LOW);
  delayMicroseconds(delayTime);
  digitalWrite(clockPin, LOW);
  delayMicroseconds(delayTime);

  for (int i = 0; i < 128; i++)
  {
    digitalWrite(clockPin, HIGH);
    pixelValue[i] = analogRead(dataPin);
    delayMicroseconds(delayTime);
    digitalWrite(clockPin, LOW);
    delayMicroseconds(delayTime);
  }

  digitalWrite(clockPin, HIGH);
  delayMicroseconds(delayTime);
  digitalWrite(clockPin, LOW);
  delayMicroseconds(delayTime);

  for (int j = 0; j < 128; j++)
  {
    Serial.print("I received: ");
    Serial.println(pixelValue[j]);
  }

}
0
analogRead()は少なくとも104μsの遅延を引き起こすので、おそらく後の delayMicroseconds()はおそらく必要ではないことに注意してください。
追加された 著者 Sprogz,

1 答え

まず、予備メモ:データシートによると、唯一の時間 あなたのプログラムに遅延が必要なのは、配列全体を読み込んだ後である 次の同期パルスを送信する。その他のタイミング要件はすべて あなたのメガの単一のCPUサイクルよりも短いので、追加する必要はありません 遅延。

カメラが動かなかったので、似たように返すべきだと私は思う   数字。

同様:はい。同一:いいえ。あなたは騒音がすべての読書をすることを期待する わずかに異なります。また、ムラのためにバリエーションもあります あなたのプログラムのタイミング(例えば、時間から時間に刻み込まれるタイマ割り込み 時間)。

これらの数字が何を意味するのかを判断する方法はありますか?

それらは、各画素によって集められる光の量に比例する。 それはあなたがその意味について知っているすべてについてです。

アナログ信号をカラーピクセルに変換する方法はありますか?

No. This is a B&W camera.

3
追加された
@ FortunaIwasaki:「実際の価値」はどういう意味ですか?
追加された 著者 Sprogz,
@ FortunaIwasaki:数字をピクセルに変換したいですか?それは意味をなさない。 ピクセル値に変換しますか?既にピクセル値があります。タイミングは4ページの「タイミング要件」:tql(min)= 20μs、その他の最小値は最大で50 nsです。
追加された 著者 Sprogz,
それはたくさんの助けになります、ありがとう。しかし、これは白黒カメラではありますが、数値を実際の値に変えることはできますか?
追加された 著者 Ze'ev,
私は白黒のピクセルを意味する申し訳ありません、また、あなたは私はあなたが全体の配列を読んだ後に遅延が必要なデータシートのどこに教えてくれますか?
追加された 著者 Ze'ev,