We have the Grove Oxygen Sensor connected to an SeeedUnio Cloud via the Base Shield V2 and the results we are getting seem a little low.
Initially we had the sensor code set to use 3.3 volts but the base shield is set to run at 5v due to other sensors also being used. We have adapted the code ( we are using the demo code from the WiKi ) and the percentage value increased from 12% to just over 18%. It is worth mentioning that we did run the sensor at 5 volts but eh code was set to 3.3 for several hours.
However we are expecting the percentage to be higher, apparently it should be close to 20%. We have tried the sensor both indoors and outdoors and the % value doesn’t seem to change.
There are two things we are not sure about
Pre heating - The WiKi suggests the sensor needs pre-heating for 5 - 10 mins. What does this mean, do you just plug the sensor in and leave it powered up… is there any code that needs to be run ?
The Code - As i mentioned above, we are using the demo code to test with and the only setting we have changed is the voltage
</s>const float VRefer = 3.3; // voltage of adc reference<e>
We have now set this to
</s>const float VRefer = 5; // voltage of adc reference<e>
Is there anything else that needs to be changed as i presume the voltage being used affects the calculation to present the percentage value.
If anyone can offer any guidance it will be appreciated.
The choice of ADC reference voltage depends on the voltage input of the O2 sensor. If O2 sensor’s supply is 5V, Vref is 5V. Otherwise Vref is 3.3V.
We just use Seeeduino’s adc that can get sensor’s data. I use a Seeeduino V4.2 to test it, and can get right data. But the wiki makes a mistakes. It connects O2 sensor to A0, but in the demo code it use A5 pin. I have told wiki manager to check it, maybe it has been checked now.
Thanks for reply, but I’m already tryed this calibration code. When it’s run, serial monitor shows right value, but sensor, for some reason, don’t reacting when I blow at it. If, after running of calibration code, I’m try to use main sketch, low values comes back.
Can you advise me what must to happened after running calibration or what should I do?
According to this if I’ll rewrite line “float Concentration = MeasuredVout * 0.21 / 2.0” to “float Concentration = MeasuredVout * 0.21 / 0.85” where 0.85 - my Vout value at fresh air. Does it OK that my sensor showing Vout at two times lower than in sample?
Yes, you can do that, The current ranage of ME2-O2 is 80uA~160uA due to individual difference. So the output will be different. For more info, please refer to below link. thanks.