137 void setSensorPins(
const uint8_t *pins, uint8_t sensorCount);
221 void setEmitterPins(uint8_t oddEmitterPin, uint8_t evenEmitterPin);
498 return readLinePrivate(sensorValues, mode,
false);
521 return readLinePrivate(sensorValues, mode,
true);
555 uint16_t emittersOnWithPin(uint8_t pin);
561 void readPrivate(uint16_t *sensorValues, uint8_t start = 0, uint8_t step = 1);
563 uint16_t readLinePrivate(uint16_t *sensorValues,
QTRReadMode mode,
bool invertReadings);
565 QTRType _type = QTRType::Undefined;
567 uint8_t *_sensorPins =
nullptr;
568 uint8_t _sensorCount = 0;
572 uint8_t _samplesPerSensor = 4;
576 uint8_t _emitterPinCount = 0;
578 bool _dimmable =
true;
579 uint8_t _dimmingLevel = 0;
581 uint16_t _lastPosition = 0;
const uint8_t QTRNoEmitterPin
Represents an undefined emitter control pin.
QTRReadMode
Emitter behavior when taking readings.
const uint16_t QTRRCDefaultTimeout
Default timeout for RC sensors (in microseconds).
QTREmitters
Emitters selected to turn on or off.
const uint8_t QTRMaxSensors
The maximum number of sensors supported by an instance of this class.
Represents a QTR sensor array.
void calibrate(QTRReadMode mode=QTRReadMode::On)
Reads the sensors for calibration.
QTRType getType()
Returns the type of the sensors.
uint16_t readLineWhite(uint16_t *sensorValues, QTRReadMode mode=QTRReadMode::On)
Reads the sensors, provides calibrated values, and returns an estimated white line position.
uint8_t getOddEmitterPin()
Returns the odd emitter control pin.
uint8_t getEvenEmitterPin()
Returns the even emitter control pin.
uint8_t getEmitterPinCount()
Returns the number of emitter control pins in use.
void setDimmingLevel(uint8_t dimmingLevel)
Sets the dimming level.
void setTypeRC()
Specifies that the sensors are RC.
void setEmitterPin(uint8_t emitterPin)
Sets the emitter control pin for the sensors.
uint16_t getSamplesPerSensor()
Returns the number of analog readings to average per analog sensor.
void setEmitterPins(uint8_t oddEmitterPin, uint8_t evenEmitterPin)
Sets separate odd and even emitter control pins for the sensors.
void setSamplesPerSensor(uint8_t samples)
Sets the number of analog readings to average per analog sensor.
void setDimmable()
Specifies that the sensors are dimmable.
void setNonDimmable()
Specifies that the sensors are non-dimmable.
void setTypeAnalog(uint16_t maxVal=1023)
Specifies that the sensor type is analog.
void emittersOn(QTREmitters emitters=QTREmitters::All, bool wait=true)
Turns the IR LEDs on.
void emittersOff(QTREmitters emitters=QTREmitters::All, bool wait=true)
Turns the IR LEDs off.
CalibrationData calibrationOff
Data from calibrating with emitters off.
uint16_t readLineBlack(uint16_t *sensorValues, QTRReadMode mode=QTRReadMode::On)
Reads the sensors, provides calibrated values, and returns an estimated black line position.
void read(uint16_t *sensorValues, QTRReadMode mode=QTRReadMode::On)
Reads the raw sensor values into an array.
uint16_t getTimeout()
Returns the timeout for RC sensors.
void readCalibrated(uint16_t *sensorValues, QTRReadMode mode=QTRReadMode::On)
Reads the sensors and provides calibrated values between 0 and 1000.
uint8_t getEmitterPin()
Returns the emitter control pin.
void resetCalibration()
Resets all calibration that has been done.
uint8_t getDimmingLevel()
Returns the dimming level.
void setTimeout(uint16_t timeout)
Sets the timeout for RC sensors.
bool getDimmable()
Returns whether the sensors are dimmable.
void emittersSelect(QTREmitters emitters)
Turns on the selected emitters and turns off the other emitters with optimized timing.
CalibrationData calibrationOn
Data from calibrating with emitters on.
void releaseEmitterPins()
Releases emitter pin/pins that have been set.
void setSensorPins(const uint8_t *pins, uint8_t sensorCount)
Sets the sensor pins.
Stores sensor calibration data.
uint16_t * minimum
Lowest readings seen during calibration.
uint16_t * maximum
Highest readings seen during calibration.
bool initialized
Whether array pointers have been allocated and initialized.