Creative Commons images are CC BY-NC-SA 3.0

4.95

added to your
shopping cart

quantity
In stock 168 in stock
4.95 1+ units
4.46 10+ units
3.96 100+ units

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").

Features:

  • 2V to 6V operation
  • "On" resistance: 70 Ohms @ 4.5V
  • 6ns break-before-make @ 4.5V
  • Wide operating temperature range: -55C to 125C

Documents:

Comments 65 comments

  • Ok, I’ve been trying to get this to work and am failing. I can’t get it to switch inputs. No matter what, I just get the input from C0. EN is set to low, and I’m pretty sure it’s all wired right. Is there a need for a delay or something between switching inputs and reading that input? Does EN ever need to be set high?
    I’m trying to wire this thing pretty simply to an Arduino. Are there any sample schematics or code to show how to use this?

  • How can I hook-up 8 rotary encoders with this? It sais it handles digital signals as well.

  • Has anyone used this for selectable output? Do the output pins have memory of what they were set to? The datasheet is kind of lacking in that info, maybe it’s [un]common knowledge what I’m asking?
    I’m trying to attach many simple on-off devices to an MCU but I’d like to know if I have to put in an output buffer or flip-flop or something.

  • I had trouble with this for a little bit so I’m posting it if others want to know.
    The S0-S3 act as an address so if you’re measuring multiple inputs coming from the C0-C15 side you set S0-S3 to that binary pin # and read it on the SIG pin. I had assumed that a 1 on say C8 would generate a 1000 on the S lines. In this instance you have to set S to 1000 and then the value reads in on SIG.
    Just for anyones info if they were having problems like I was. I didn’t quite understand that from the data sheet.

  • Seriously? Do you guys have any idea how much of the last two weeks I spent hand-soldering these CD74HC4067 ICs to your 28-SSOP boards with a 15w P.O.S. RadioShack iron? Clearly not, or you’d be begging to make it up to me. Is there a reason you didn’t mention your intention to break these out? It’s a spectacular product, but that really is too cruel. =P
    I can’t recommend this multiplexer highly enough. Love you guys ;-) Keep up the good work!

    • Thanks Zerk! We’re building them as quick as we can. We never gauge new product demand correctly, but our production dept usually catches up within a week or so.

    • Why not use the DIP version? Is the DIP version not available?

      • Good question - both TI and NXP make a DIP version available from Mouser and Digikey. This was created for a friend who needed to solidly connect a bunch of sensors to his Arduino and didn’t want to add a breadboard to his setup.

  • Does anyone know if there is a fritzing part for this? I could not find one and would like to include in my breadboard view.

  • Will this board allow me to get analog readings from an analog sensor? For example, if I’m using a Force Sensitive Resistor (like this https://www.sparkfun.com/products/9375), can I get a value from 0-1023? I initially started using a different chip (the MCP23017), but quickly learned that, while it says it is for analog and digital inputs/outputs, it can only return digital readings – so I’m only getting a 0 or 1 from the Force Sensitive Resistor.

  • Ive used this and it works well, although could’t I connect 6 of these, tie all 6 S0 together, same as S1, S2 and S3, then tie each SIG to a channel to another mux breakout, so in theory I could control 80 inputs/outputs only using 9 pins? I only ask because I’ve checked out the MUX Breakout II but I haven’t dissected it yet but it looks like they have incorporated 6 shift registers, wouldn’t it just be easier, smaller, cheaper and more powerful to just use another CD74HC4067 to talk to up to 16 other CD74HC4067s?

    • Of course I am not planning on reading potentiometers, it would slow down tremendously, but rather read the state of latching switches.

  • Can I use this board without any other device? Can I send it commands directly from a serial port? I would like to use it as a low cost analog video switch. My programming environment is VB.Net…

    • No serial alone wont work, but you could easily use something like the arduino pro “micro” to communicate with visual basic via serial, then simply send commands to the mcu to control the mux board, and to make it more cost effective just design your own pcb incorporating the CD74HC4067 and get the pcb printed from OSH Park, total cost would be under 18 bucks, or even cheaper, search around amazon lol

  • my guess is NO …but im going to ask anyway! is there anyway to use C0-C7 as analog inputs & C8-C15 as digital outputs at the same time? basically im wanting to read 8 pots in sequence and light an indicator LED so you know which pot is active. would be great if i can utilize those extra 8 pins on this board instead of having to use a shift register chip for the leds :)

    Thanks..

  • Could I use this to multiplex LED’s with enough precision to control brightness? (or rather transistors driving high powered leds)

  • Schematic is wierd :(

    • It looks “wierd” to me too, we’ll get it fixed. Thanks!

    • While I might have drawn it differently (first thing would have been moving the internals of the chip around and probably mirror the entire thing), in what way is it weird?

  • I think i already know the answer to this, but…

    Let’s say I have a matrix keyboard, where connecting line X0 with line Y0 results in a keypress. Pretty standard part.

    I connect all the rows/columns, one each to a pin on this or similar multiplexing chip. Is there any way, with one chip, to connect those pins to each other?

    I figure I can do it with two mux ICs, one for columns, one for rows, joined at their common I/O pin, but I’m trying to save room and parts by trying to combine that into one chip. If not this one, then maybe someone can recommend one? I need an 8x10 matrix.

  • Can this be used to control a 7 segment display? Or would it be better to use 2 shift registers? I think the main question is about the you can switch the digital writes on this.

  • Hi, I want to use this board for connecting multiple micros to one master micro using serial pins (tx/rx). One board for each signal, will this work ?

    • You got it! One board for all the TX lines, and one board for the RX lines will work. Just make sure you match your logic levels.

  • Ok… Have I been going about this all wrong? When using this chip to read multiple sensors (switches) I have been pulling each of the 16 inputs low with a resistor (one for each pin) which is a total mess, especially when piggybacking this on a protoshield (leaves no space for… anything else.) and then something donned on me: Can I just use 1 resistor to pull the SIG pin low and let the switches float? This would save a lot of time, space, and resistors!

  • Would anyone know how to wire this to a clock so it cycles automatically?

  • Can you connect this in a similar fashion to the 4051? http://tomekness.files.wordpress.com/2007/02/analog_multiplexer_demultiplexer_4051.pdf

    • If you are asking if this connects in a similar fashion as the 4051 then, the answer is yes. This is the big brother to the 4051.

      • So in theory then, I could have one connected to the arduino with 16 chained underneath it? Similarly to how the example I shared does for the 4051. This indeed makes me happy.

  • How do you use this with SPI? Don’t see anything in the datasheet about how to connect this..

    • It doesn’t use SPI. It has four digital inputs (S0-S3), that you drive with the binary number of the input pin you want to route to the output pin. 0000 = input 0, 0001 = input 1, 0010 = input 2, etc. (0 is a LOW input, 1 is a HIGH input.)

  • what are the two surface mount components on break out board ?
    are they by decoupling capacitors ?

  • Bought one of these recently and ity works great with 16 outputs. Is there any way of using a second Mux (with an Arduino) to get 32 outputs?

  • Why not just buy it in a DIP package?

  • would this work for demuxing a DAC? in other words, if i connect my dac out pin from the ARDUINO to this, could i get 16 channels out? is there code for using this thing?
    thanks

  • so im building a project that needs a x/y axis servos plus another one for a trigger would this work for that if not what would also to connect Spring Terminals to this and adding some sensors to this like a pir and making my arduino IR capable so i can use remote and a lcd and a separate touch screen to this. Would this work with the msp430g2 launchpad? and how would i connect this to eather the arduino uno and the msp430 launchpad

    • basicly i need it to control some sensors and 3 servos will this work and wat board will it fit arduino uno or the msp430 launchpad or both

  • Can this be used to send audio from a computer headphone output directly?

  • Does this come with the CD74HC4067 or is that to be soldered onto the board by the buyer?

  • I am doing a ADC/DAC mux for analog voltage range of +5V to -5V. This device has single supply Vcc=2-6V.<br />
    Can it be used for +/-5V analog voltage range with single supply? Thanks.

  • The schematic does not match the labels on the actual board. What is up with that? Which is correct?

  • So I want to connect 16 push buttons to a arduino nano using this shield in such a way it would read simultaneous presses. Can This be used to MUX the digital inputs on the arduino or do I have to wire resistors up to the buttons and go via analog??

  • Just made a sketchup model for this as well as putting together a group for various components found on this site. <br />
    http://sketchup.google.com/3dwarehouse/details?mid=f1b5beed30be925d7b60bd1235096291&prevstart=0<br />
    <br />
    http://sketchup.google.com/3dwarehouse/cldetails?mid=479cab9a5e32efc37b60bd1235096291&ct=mdcc&prevstart=0

  • is it necessary to tie unused inputs on this MUX to ground?

  • can you do analog and digital at the same time on this board?. … like if i wanted to split it up as 8 digital and 8 analog inputs?

    • Sure, just keep in mind that all the I/O are muxed to a single O/I pin, so make sure that pin can handle either source type.

  • Is there some reason that this board doesn’t have mounting holes? It would make it just a little more convenient and look neater then when I am going to have to put them in.

  • Would this work for piezo’s on an arduino based electric drum set? I need more analog inputs than just 6 and can’t afford a arduino mega.

  • Be careful and inspect your boards when you get them. I spent a good few hours debugging what I thought was a flaw in my looping algorithm when it turned out that two of the legs on the MUX chip were just barely soldered together causing one of the digital pins always to return a 0. All it took was a little bit of scraping with an exacto knife, but it took hours to track down.

  • silvap: Cant this multiplexer board drive servos?
    * i mean “can” instead of “cant"
    Can this multiplexer board drive servos?

  • Cant this multiplexer board drive servos?

    • No, it would not be able to drive multiple servos. This is used to connect 16 analogue sources to one A/D pin. Besides, servos need constant attention with their signal to work properly. You can use something like the Serial Servo Controller or convert some servos with the OpenServo boards and control them all with two lines with I2C.

  • I can be dense at times, but after reading the datasheet I’m still scratching my head….Is there any tutorial on how to actually wire this up to your MCU? (preferably a mega8/168/328)

    • In case anyone is looking, here’s a really simple diagram for hooking this up.

    • Haven’t played with mine yet but I believe you connect pin 1 to your analog input pin and then connect 10,11,13,14 (S0-S3 in the data sheet) to digital outs, and then use them to select which of the 16 input pins is passed to your mcu. Use page 2 of the data sheet to see how to select pins.

  • What is the bandwidth of this board? Impedance?
    Could this be used to switch video? What about using 5 of them to switch RGBHV(Say XGA) video?

    • Data sheet says 70 ohms typical. Bandwidth will be limited by the output load’s capacitance. Might work for video with short cable length. It doesn’t look like they sized the traces for 50 or 75 ohm impedance, but the trace lengths on this tiny board are very short so that shouldn’t be an issue.


Related Products