Description: This is a breakout board for the very handy 16-Channel Analog/Digital Multiplexer/Demultiplexer CD74HC4067. This chip is like a rotary switch - it internally routes the common pin (COM in the schematic, SIG on the board) to one of 16 channel pins (CHANxx). It works with both digital and analog signals (the voltage can’t be higher than VCC), and the connections function in either direction. To control it, connect 4 digital outputs to the chip’s address select pins (S0-S3), and send it the binary address of the channel you want (see the datasheet for details). This allows you to connect up to 16 sensors to your system using only 5 pins!
Since the mux/demux also works with digital signals, you can use it to pipe TTL-level serial data to or from multiple devices. For example, you could use it to connect the TX pins of 16 devices to one RX pin on your microcontroller. You can then select any one of those 16 devices to listen to. If you want two-way communications, you can add a second board to route your microcontroller’s TX line to 16 device’s RX lines. By using multiple boards, you can create similar arrangements for I2C, SPI, etc.
The internal switches are bidirectional, support voltages between ground and VCC, have low “on” resistance and low “off” leakage, and to prevent crosstalk, perform “break-before-make” switching. The board also breaks out the chip’s “enable” pin, which when driven high, will completely disconnect the common pin (all switches “off”).
Based on 9 ratings:
2 of 2 found this helpful:
If anyone’s interested I wrote some code to read values from this mux: https://gist.github.com/nebspetrovic/125b56da1f9faa40eac2
It relies on PORTB for convenience.
2 of 2 found this helpful:
I haven’t used the analogue features yet. But the digital part of it is great. Do note that the enable pin, EN, is active low. The description says this but I don’t read…
Use this to read sixteen inputs or to control sixteen outputs (or any combination thereof) using only six pins from you micro (five pins if you hold EN low via hardwire). I used it to read buttons from a number pad.
I built a 64 channel (open ended) data logger with a logger shield/RTC, Arduino Uno 3, and 4 of these multiplexers. The operation was good. hookup was straight forward.
It is important that all inputs are fed by something. then all data reads correctly. But if inputs are left floating, the previous will carry to those floating channels. Seems the charged common circuit bleeds off previous data form other channels. ie. channel 0 is 2.35VDC. channel 1 is floating but reports 2.23VDC, channel 2 is floating but reports 2.15vdc. Unless told to do otherwise successive charge gets blead off via 70 ohms of internal resistance.
SO….(correct usage) either ground unused channels or connect them to something meaningful.
oh and… outputs can be ganged together on a single Analog input as long as only 1 channel is selected and read at a time.
Like all of SFH products. Easy to work with & great TUTORIAL support! Def Thumbs UP!!!
Thanks Guys jimkmc
The code is for this is available and works well. Easy to solder and wire up.
Qualitá ottima e spedizione veloce !! Tnx
I was completely out of COM ports for an application that I was building on my Netduino 3. This thing saved me as it basically added 16 more ports to be available for my microcontroller; for bidirectional Tx/Rx communication you would need to use 2 chips. I adopted the code from the posted bildr article and Arduino to suit the .NET micro Framework and uploaded the source code to my github account https://github.com/JakeLardinois/NetduinoMUX.
It’s a very useful device to control 16 things with 5 pins. It works perfectly fine to me!
Fast delivery, items received in good condition.