Changed main.ino to test.ino, added values to the PID constants.
This commit is contained in:
parent
51140583be
commit
11d448226d
4 changed files with 131 additions and 61 deletions
93
qtr-test/qtr-test.ino
Normal file
93
qtr-test/qtr-test.ino
Normal file
|
@ -0,0 +1,93 @@
|
|||
//Made by POLULU
|
||||
|
||||
#include <QTRSensors.h>
|
||||
|
||||
// This example is designed for use with eight RC QTR sensors. These
|
||||
// reflectance sensors should be connected to digital pins 3 to 10. The
|
||||
// sensors' emitter control pin (CTRL or LEDON) can optionally be connected to
|
||||
// digital pin 2, or you can leave it disconnected and remove the call to
|
||||
// setEmitterPin().
|
||||
//
|
||||
// The setup phase of this example calibrates the sensors for ten seconds and
|
||||
// turns on the Arduino's LED (usually on pin 13) while calibration is going
|
||||
// on. During this phase, you should expose each reflectance sensor to the
|
||||
// lightest and darkest readings they will encounter. For example, if you are
|
||||
// making a line follower, you should slide the sensors across the line during
|
||||
// the calibration phase so that each sensor can get a reading of how dark the
|
||||
// line is and how light the ground is. Improper calibration will result in
|
||||
// poor readings.
|
||||
//
|
||||
// The main loop of the example reads the calibrated sensor values and uses
|
||||
// them to estimate the position of a line. You can test this by taping a piece
|
||||
// of 3/4" black electrical tape to a piece of white paper and sliding the
|
||||
// sensor across it. It prints the sensor values to the serial monitor as
|
||||
// numbers from 0 (maximum reflectance) to 1000 (minimum reflectance) followed
|
||||
// by the estimated location of the line as a number from 0 to 5000. 1000 means
|
||||
// the line is directly under sensor 1, 2000 means directly under sensor 2,
|
||||
// etc. 0 means the line is directly under sensor 0 or was last seen by sensor
|
||||
// 0 before being lost. 5000 means the line is directly under sensor 5 or was
|
||||
// last seen by sensor 5 before being lost.
|
||||
|
||||
QTRSensors qtr;
|
||||
|
||||
const uint8_t SensorCount = 8;
|
||||
uint16_t sensorValues[SensorCount];
|
||||
|
||||
void setup()
|
||||
{
|
||||
// configure the sensors
|
||||
qtr.setTypeRC();
|
||||
qtr.setSensorPins((const uint8_t[]){10, 11, 12, 14, 15, 16, 18, 19}, SensorCount);
|
||||
qtr.setEmitterPin(7);
|
||||
|
||||
delay(500);
|
||||
pinMode(LED_BUILTIN, OUTPUT);
|
||||
digitalWrite(LED_BUILTIN, HIGH); // turn on Arduino's LED to indicate we are in calibration mode
|
||||
|
||||
// 2.5 ms RC read timeout (default) * 10 reads per calibrate() call
|
||||
// = ~25 ms per calibrate() call.
|
||||
// Call calibrate() 400 times to make calibration take about 10 seconds.
|
||||
for (uint16_t i = 0; i < 400; i++)
|
||||
{
|
||||
qtr.calibrate();
|
||||
}
|
||||
digitalWrite(LED_BUILTIN, LOW); // turn off Arduino's LED to indicate we are through with calibration
|
||||
|
||||
// print the calibration minimum values measured when emitters were on
|
||||
Serial.begin(9600);
|
||||
for (uint8_t i = 0; i < SensorCount; i++)
|
||||
{
|
||||
Serial.print(qtr.calibrationOn.minimum[i]);
|
||||
Serial.print(' ');
|
||||
}
|
||||
Serial.println();
|
||||
|
||||
// print the calibration maximum values measured when emitters were on
|
||||
for (uint8_t i = 0; i < SensorCount; i++)
|
||||
{
|
||||
Serial.print(qtr.calibrationOn.maximum[i]);
|
||||
Serial.print(' ');
|
||||
}
|
||||
Serial.println();
|
||||
Serial.println();
|
||||
delay(1000);
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
// read calibrated sensor values and obtain a measure of the line position
|
||||
// from 0 to 5000 (for a white line, use readLineWhite() instead)
|
||||
uint16_t position = qtr.readLineBlack(sensorValues);
|
||||
|
||||
// print the sensor values as numbers from 0 to 1000, where 0 means maximum
|
||||
// reflectance and 1000 means minimum reflectance, followed by the line
|
||||
// position
|
||||
for (uint8_t i = 0; i < SensorCount; i++)
|
||||
{
|
||||
Serial.print(sensorValues[i]);
|
||||
Serial.print('\t');
|
||||
}
|
||||
Serial.println(position);
|
||||
|
||||
delay(250);
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue