000 Lambda valid, lambda value contains lambda reading in .001 lambda increments
Offset by .5 lambda (0x000 = .5 lambda, 0x3FF = 1.523 lambda)
001 Lambda value contains O2 level in 1/10%
010 Free air calibration in progress, Lambda data not valid
011 Need Free air Calibration Request, Lambda data not valid
100 Warming up, Lambda value is temp in 1/10% of operating temp.
101 Heater Calibration, Lambda value contains calibration countdown.
110 Error code in Lambda value
111 reserved
If you don’t want to parse all possible states, you can simply go on 000 means valid data,
not 000 means invalid data. Last we have the information needed to approximate AFR
from the actual lambda reading:
This is the ‘Air Fuel Multiplier’, scaled by 10. In other words, 147 really represents 14.7.
You would multiply this number by the lambda measurement to get approximate AFR for
the fuel currently specified.
Although you probably have figured all this out, we get asked how to calculate the proper
values from this packet a lot, so, at the risk of repeating, the basic measurements are:
Assemble “L”
Assemble “AF”
Assemble “F”
if (F == 0) // Valid
{
float lambda = (L * 0.001) + 0.500;
float afr = lambda * AF / 10;
}
‘Old’ (LM-1) Lambda/AFR Channels
The old lambda channel (sent only by the LM-1) is the most complicated, and also the
most troublesome for parsing. Although all the sample applications properly parse this
packet, frankly, if you are writing your own parser you might do well to simply ignore it,
unless you know that you will have to deal with connected LM-1’s.
Komentarze do niniejszej Instrukcji