Go Down

Topic: Lambda Control of Oxigen Content in Flue Gas of Pellet Boiler (Read 286 times) previous topic - next topic

gendov

I am new in this forum. I searched deeply in it but did not find similar project like mine.
I will highly appreaciate your advise on following matter:

I would like to measure the oxygen content in percentage in exhaust gases of my pellet boiled by using simple and cheap LSM-11 narowband Bosch lamda sensor. Then to show it on display. Further development is to includ PID algoritm and control the burner fan speed (air quantity) in order to keep the oxygen content in flue gas constant. This will optimize the burning process and increase efficency. 


I know, there are ready devices using wideband lambda sensor that give linear output 0-5v for oxygen 0-21%. But they cost about 200 EUR. However I am looking for cheap solution. 
LSM-11 is intended for O2 control in boilers. It has simple heating circuit and voltage output in range of about 1v. 

https://1drv.ms/b/s!Av7Gpg63Y-oIxmOT8Z0UiOcz3mmF

The curve is extended in the lean side. This is the part that boilers use for lambda control. Not like in petrol engines the pellet boilers neads about 5.3% O2 in the flue gas for optimal fuel burning. I want to use only the lean side of curve -10 mV to 40 mV :

https://1drv.ms/u/s!Av7Gpg63Y-oIxmL8I5eel5YpWo6U


The output voltage commes from the 2 wires of the sensor and vary from -10mV to 40mV in the range in which I would like to measure the oxygen content in %. So it need amplification and shifting so the all analog signal is positive in order to be readed by Arduino analog input. 
I purchased one LM358 ready board with 2 stage voltage amplifier to play with it. I still wait for it to arrive. It is just a base on which I can chage the diagran as I want. 

https://de.aliexpress.com/item/1005001622201285.html?spm=a2g0s.9042311.0.0.3c774c4dmFNeIf

May you suggest a proper diagram for amplifiacion of this signal for importing in Arduino uno by analog input with resonable resolution - 0.1 mV should be enaugh? Should it be differential amlifier? How to shift the negative voltage so all output to be pozitive? 
How to limit the amplifier input only to 40 mV??? Or to limit the output insread? I do not need to read teh part from 40mV to 1 volt input.
The curve is non linear but that I will corrected by program ways. So , even if amplification is not enaugh linear I can correct it in the program at the calibration stage. 
I suppose the input impedance should be enaugh high to not influence the output of the sensor. 

Best regards,
Gendov

johnerrington

This circuit should do what you want.
The gain is set by 1+R2/R1 = 28
The offset is adjusted with R4 but if R4 = 470k you would add an offset of 0.1V


You will probably need to play with the values to get the gain and offset to match your requirements.

I'd suggest a CMOS op amp such as the mcp6002.

You dont say which arduino you plan to use?


I'm trying to help. If I find your question interesting I'll give you karma. If you find my input useful please give me karma (I need it)

srturner

Nice project. Where did your lean side curve come from? It shows the sensor voltage going negative at about 11% oxygen, which doesn't seem to correspond to the Bosch datasheet. Where does the negative voltage come from in automotive environment with a single-sided supply?
S.


gendov

Hi johnerrington ,
Thanks for your suggestion. I will try it.
I will use Ardoino UNO. 


Hi srturner,
The LSM11 diagram that I posted is comming from "VIESMANN Service instructions VITOLIGNO 300-P" pellet boiler which utilizes lambda control of the burnig process. See link with 2 pages PDF file - curve is on the second page :

https://1drv.ms/b/s!Av7Gpg63Y-oIxmcnDZd3MVA4qxoi

I do not know what is the diagram of input electronix to which it is connected. It might be the shifting to minus mV is comming for the external to the sensor items  in the connection digram.
It does not matter. If all signal is positive that is more easy to connect to UNO. 

srturner

Having all positive voltage output will simplify the design a little. The project looks doable using the circuit posted by johnerrington. But I can't imagine how you're going to calibrate it.
S.

JohnRob

I don't think you will find the LM358 to be stable enough to reliably measure those low voltages.   I would you suggest you use something like this  ADC Converter

In addition to being very stable,  The delta - sigma is very good at noise rejection and will definitely provide a better measurement than the Arduino analog input.
Please do not PM me with thread based messages.  If your thoughts are worth responding,  the group should benefit from your insight.

RIN67630

The output voltage commes from the 2 wires of the sensor and vary from -10mV to 40mV in the range in which I would like to measure the oxygen content in %. So it need amplification and shifting so the all analog signal is positive in order to be readed by Arduino analog input.

Don't waste your time tinkering with amplifiers.
Use an INA226 power monitor module. They cost less than 2$ at your favourite chinese store.

They are primary designed to monitor shunts in the range +-80mV.
They even can read the mV differential off-rail by up to 36V.
Isn't that perfect for your usage?

Just unsolder the shunt and read the "mV" directly over the I2C interface.

With the Arduino INA library from Zhanshin you get directly a stable and precise mV reading:
INA.getShuntMicroVolts(0);


Enjoy!


 

johnerrington

Quote
Don't waste your time tinkering with amplifiers.
Hardly a waste of time! However that little module looks interesting.

Also the SPI interface would allow the module to be used remotely from the arduino.

A 16 bit ADC and 2.5uV resolution makes it very tempting; and cheap as chips!

@RIN67630 - is there an option to change the range for the measured voltage other than +- 80mV?


Quote
I can't imagine how you're going to calibrate it.
A resistive divider, pot & multimeter to apply voltages?

I'm trying to help. If I find your question interesting I'll give you karma. If you find my input useful please give me karma (I need it)

gendov

Don't waste your time tinkering with amplifiers.
Use an INA226 power monitor module. They cost less than 2$ at your favourite chinese store.

They are primary designed to monitor shunts in the range +-80mV.
They even can read the mV differential off-rail by up to 36V.
Isn't that perfect for your usage?

Just unsolder the shunt and read the "mV" directly over the I2C interface.

With the Arduino INA library from Zhanshin you get directly a stable and precise mV reading:
INA.getShuntMicroVolts(0);


Enjoy!


 
Thanks for the suggestion. It always look better to use ready module than to start from scratch. 
I was looking to use MAX6675 module for K thermocouples mV measurement. But it has internal room temperature compensation that will distort measurement. INA226 will do the job. I ordered one.
I may use MAX6675 for measuring the temperature of flue gas of the boiler. It should not drop less than 120 deg.C to avoid condensation. Do you know better module for K type temperature measurement?

gendov

Having all positive voltage output will simplify the design a little. The project looks doable using the circuit posted by johnerrington. But I can't imagine how you're going to calibrate it.
S.
Let first establish some measurement circuit.
21% is easy - just open air. For 0% is necessary to blow the sensor with nitrogen. We had such calibration bottles with pure nitrogen on tanker ships. They are used for calibration O2 memeters that crew wear when going to closed spaces. However in the middle range between 0 and 21% should relay on the manufacturer curve. 

RIN67630

I may use MAX6675 for measuring the temperature of flue gas of the boiler. It should not drop less than 120 deg.C to avoid condensation. Do you know better module for K type temperature measurement?
In that temperature range a PT100 should be the first choice.
A max31865 Module should be preferable:
https://www.aliexpress.com/item/4000151215433.html

TomGeorge

Hi,
Also google   instrumentation amplifier.
As you are having to measure such small voltages, some amplification may be necessary.

An instrumentation amplifier is designed for this application with low noise and LOW DRIFT in offset and gain.

Tom... :)
Everything runs on smoke, let the smoke out, it stops running....

srturner


A resistive divider, pot & multimeter to apply voltages?
Sorry, my wording was unclear. I meant calibrating the sensor output itself (not the amplification stage). I suppose the OP is planning to take the datasheet on faith. This is a bit troubling because the two different graphs correlating output with %O2 varied WRT output voltage.
S.

gendov

Don't waste your time tinkering with amplifiers.
Use an INA226 power monitor module. They cost less than 2$ at your favourite chinese store.

They are primary designed to monitor shunts in the range +-80mV.
They even can read the mV differential off-rail by up to 36V.
Isn't that perfect for your usage?

Just unsolder the shunt and read the "mV" directly over the I2C interface.

With the Arduino INA library from Zhanshin you get directly a stable and precise mV reading:
INA.getShuntMicroVolts(0);


Enjoy!


 
Well, datasheet say that input voltage can be up to 36V but that is in voltage measuring mode. I will use it in current measuring mode for range up to 50mV by removing the shunt resistor as you suggested. However the full range of my sensor is 1V . I want it measure only first 50mV of this 1 V. Will the input sustain 1v in current measuring mode?

gendov

In that temperature range a PT100 should be the first choice.
A max31865 Module should be preferable:
https://www.aliexpress.com/item/4000151215433.html
Temperature range should not be higher than 300 °C. Hence PT1000 will fit for the purpose.

Go Up