QTRA 8センサーボードからすべての個別の8センサーをデジタルで読み取ろうとしています:
http://www.pololu.com/docs/0J19/all
私が得ている問題は、ロボットがその位置を正しく読み取ることができるということです:
qtra.readLine(sensorValues);
最初の 6 つのセンサーをデジタルで正しく読み取ることができますが、最初の 2 つのセンサーからは何も読み取れません。
以下に、これをテストするために書いた簡略化したコードを示します。light7 と light 8 は、黒い線の真上にある場合でも、常に 0 を返すことに注意してください。私が間違っていることがあるかどうか、および最初の 2 つのセンサーの出力に手動で 1 または 0 を割り当てないようにする方法があるかどうかを知りたいです。
#include <QTRSensors.h>
#define NUM_SENSORS 8 // number of sensors used
#define NUM_SAMPLES_PER_SENSOR 4 // average 4 analog samples per sensor reading
#define EMITTER_PIN 2 // emitter is controlled by digital pin 2
// sensors 0 through 5 are connected to analog inputs 0 through 5, respectively
QTRSensorsAnalog qtra((unsigned char[]) {A7, A6, A5, A4, A3, A2, A1, A0},
NUM_SENSORS, NUM_SAMPLES_PER_SENSOR, EMITTER_PIN);
unsigned int sensorValues[NUM_SENSORS];
//LIGHTS
int light1 = A0;
int light2 = A1;
int light3 = A2;
int light4 = A3;
int light5 = A4;
int light6 = A5;
int light7 = A6;
int light8 = A7;
void setup(){
pinMode(light1, INPUT);
pinMode(light2, INPUT);
pinMode (light3, INPUT);
pinMode(light4, INPUT);
pinMode(light5, INPUT);
pinMode(light6, INPUT);
pinMode(light7, INPUT);
pinMode(light8, INPUT);
Serial.begin(9600);
}
void loop(){
Serial.print(digitalRead(light1));
Serial.print(".....");
Serial.print(digitalRead(light2));
Serial.print(".....");
Serial.print(digitalRead(light3));
Serial.print(".....");
Serial.print(digitalRead(light4));
Serial.print(".....");
Serial.print(digitalRead(light5));
Serial.print(".....");
Serial.print(digitalRead(light6));
Serial.print(".....");
Serial.print(digitalRead(light7));
Serial.print(".....");
Serial.print(digitalRead(light8));
Serial.println();
}
これに答えるために時間を割いてくれる人に感謝します...