upm
1.7.1
Sensor/Actuator repository for libmraa (v2.0.0)
|
API for the DFRobot CO2 Sensor. More...
This sensor returns an an analog voltage that falls as the concentration of CO2 increases. It contains a heater that must be allowed to 'warm' up the sensor before measurements are stable (hours to days is the recommendation). It requires that the MCU be powered from an external power supply (not USB) at 5v, since the heater will consume significant current.
The sensor should be allowed to 'heat' up for some time before beginning use, typically a couple of hours minimum. It also needs fairly precise calibration at 400ppm and 1000ppm to return meaningful results.
The sensor also incorporates a potentiometer that can be adjusted to specific threshold. Once that threshold is reached, an LED on the sensor will light, and the digital pin will be driven high.
Public Member Functions | |
MG811 (int pin, int dpin, float aref=5.0) | |
~MG811 () | |
float | getReferenceVoltage () |
void | setCalibration (float ppm400, float ppm1000) |
float | volts () |
float | ppm () |
bool | thresholdReached () |
Protected Attributes | |
mraa::Aio | m_aio |
mraa::Gpio | m_gpio |
float | m_zeroPointValue |
float | m_reactionValue |
int | m_aRes |
MG811 | ( | int | pin, |
int | dpin, | ||
float | aref = 5.0 |
||
) |
MG811 constructor
pin | Analog pin to use |
dpin | Digital pin that indicates threshold |
aref | Analog reference voltage; default is 5.0 V |
float getReferenceVoltage | ( | ) |
Return a cumputed reference voltage to be used in calibration.
void setCalibration | ( | float | ppm400, |
float | ppm1000 | ||
) |
Set calibration parameters. You should measure the reference voltage you get when at CO2 concentrations of 400ppm (ambient) and 1000ppm using the getReferenceVoltage() method. Then specify those voltages here for more accurate results.
ppm400 | The measured reference voltage at 400 ppm |
ppm1000 | The measured reference voltage at 1000 ppm |
float volts | ( | ) |
Returns the voltage detected on the analog pin
float ppm | ( | ) |
Returns the computed CO2 concentration in ppm (Parts Per Million). This method will return 0.0 if the reference voltage is greater than the ppm400 value. Essentially, ppm values below 400 will be reported as 0.
bool thresholdReached | ( | ) |
Read the digital pin and return true if the set threshold has been reached or exceeded. This threshold is set by adjusting the potentiometer on the sensor.