Unsure how to demultiplex an already-multiplexed sensor (MICS-VZ-86F, 2in1 PWM)

Hi all,

(Long-time reader, first-time poster. Somewhat still a newb with all things microelectronics. Grateful for any help).

I'm stuck on a project trying to connect a MICS-VZ-86F volatile organic compound sensor to Arduino.
The datasheet for the sensor is here: https://sgx.cdistore.com/datasheets/e2v/MiCS-VZ-86%20and%20VZ-89%20rev%204.pdf. (I am deliberately using the PWM version of this sensor as we've had trouble getting the I2C version working on a Particle Photon.. which is the intended final deployment device. That's a forum post for another day... on another forum..).

The VZ-68F sensor produces two variables as outputs : CO2 equivalent air quality levels (CO2equ) and VOC levels (tVOC). CO2equ has a PWM output range of 55-95%, and tVOC has an output range of 5-45%.

I've learned enough about "multiplexing" to interpret for the sensor's datasheet that both variables are being fed through the same output pin as a multiplexed signal. Where I'm stuck on is how to to "demultiplex" this and extract each variable's value on the Arduino.

I've seen many how-tos on how to demultiplex using an Arduino, but I'm a bit lost in understanding how this PWM signal relates to analog-to-digital demux, digital-to-analog demux, digital-digital demux, etc. In other words, am I doing an analog-to-digital demux, the reverse, or a different type of demux altogether...?

I would rephrase this into two separate questions, I guess:

  1. Is it clear that I need a demultiplexer chip to break down the sensor's single signal into two signals? If not, can I use the Arduino directly?

  2. If I do need a demultiplexer, what type of demultiplexer would be appropriate? 4051, 74HC238? Maybe this is too general of a question, but really any example would be useful. If it helps, I am trying to demultiplex this sensor without consuming any more than 4 digital pins on the Arduino... I also have 5 analog pins to spare.

With many many thanks!

The data sheet is not very clear as to how the PWM signal is multiplexed. However I think it works like this. If the PWM is in the range 55% to 95% it is a C02 measurement if it is within the range 5% to 45% it is a tVOC measurement.

However, there is no information as to how many cycles of each measurement are output consecutively.

There is no need to demultiplex this, simply measure the duty cycle of the PWM and sort the readings out into the two measurements depending on the results you get. The pulseIn function should be enough to measure this.