Search
Product Info
Mux Shield
sku: DEV-09832
Description: If you need a lot of inputs and/or outputs, this is your solution! The Mux (Multiplexer) Shield adds the capacity for up to 48 inputs or outputs on the Arduino and Arduino Mega. Using three Texas Instruments CD74HC4067 Analog Multiplexers, the Mux Shield makes it possible to have 48 analog/digital inputs or digital outputs in many configurations.
The Mux Shield comes with stackable headers installed and ready to plug into your Arduino!
Features:
- 48 analog inputs/digital inputs
- Vcc and Ground header strips (each input/output pin has a dedicated Vcc and Ground)
- Reset button
- PIN 13 LED and Power LED
- Stackable headers (plug directly into Arduino and add more shields on top)
- Arduino Mega compatible
- Requires digital pins 2,3,4,5 and analog pins 0,1,2 – 48 inputs/outputs for the price of 7 pins!
Documents:
Pricing
Comments
16 comments
Feeds
Currency
Display prices in
Feedback
If you would like to tell us more, you can fill out our form if you need some psycho-suggestive questions. Go to the form.































Just get the Arduino Stackable Header Kit and use them as spacers between one shield and the next.
Also, how much current and what voltages can it handle? There are numerous "Vcc" ports, but I haven't found where it's specified to what they're connected. If it's the regulated 5 V from the Arduino, that'll limit the available current/port substantially. OTOH, if it's the Arduino's Vin, then it's not likely to be a very stable source. Furthermore, it appears it would be useful, for at least some applications (controlling servos, for example), to be able to provide power to the "Vcc" rails around, rather than through, the Arduino.
I'm thinking about the suitability of the Mux Shield to drive large numbers of servos. However, I have yet to do the math to determine how many servo control pulses I can fit in the time between pulses to a single servo.
TIA for you thoughts,
Eric
Vcc can handle 2V to 6V because the the IC is the HC not the HCT version. Looks like Icc should exceed 50mA. I can't tell, but it looks like the muxes are getting power from the Arduino regulator.
You won't be able to plug the servo directly into the mux channels unless the servos are very, very, very small (I've never seen servos as small as you would need them).
How does one select only one of the 48 ports? I took a look at the example code and found:
//Since all 3 multiplexers have the same control pins, the one multiplexer data line we want to
//talk to should be set to output and the other two multiplexer lines should be be 'bypassed' by
//setting the pins to input
That doesn't appear to support the notion of selecting only one port, just the notion of selecting three ports, but writing to only one of them.
Also, what do you perceive as limitting the size of the servos? AFAIK, the control signal current required by a servo is on the order of 1 mA and essentially independent of the servo's size. The drive power comes from the +V and Gnd wires, so it's not connected to the Arduino's DO. However, the drive power must come from somewhere, which is why I originally asked about the source of "Vcc" supplied to the rows of terminals adjacent to the mux I/O terminals and whether it could be fed other than through the Arduino. (I don't particularly care, in this discussion, about the power going to the muxes themselves.)
As the schematic doesn't appear to be readily available, what's the best way to determine the power routing on that board prior to obtaining one?
TIA,
Eric
int val = analogRead(0);
val = map(val, 0, 1023, 0, 1);
http://mayhewlabs.com/media/Mux_Shield_Schematic.pdf
T*H*A*N*X for providing the schematic!
As you can see from my posts above, I'm interested in providing more current through the "5V" and "GND" connectors (to such loads as servos) than the Arduino's regulator can provide. I'd appreciate your help with the following:
1) What are the ampacities of the 5V and GND traces and connectors on the Mux Shield?
2) Can I sever the connections between the rows of 5V and GND connectors and (the connections between the Arduino and the Vcc and Gnd terminals of the mux chips)? (My thinking is: I could run the mux chips (& the reset button & on-board LEDs) from the Arduino's regulator, but use some other power source for the rows of voltage and ground connectors that run alongside the mux terminals. I would need to feed the rows of connectors from that external power source, tying the grounds of the two supplies together to ensure a common reference.)
3) If I can provide a separate power supply to those rows of connectors, can I do that at a higher voltage than 5V? (I'm not looking to get anywhere near line voltage, but I can foresee uses for things in the range of 6V to 24V.)
4) If I can't reasonably sever the connections to those rows of connectors, can I feed +5V and Gnd (from a higher current source than the Arduino's on-board regulator) to the Arduino through the Mux Shield?
TIA,
Eric
The easy answer is that the Mux Shield probably isn't what you need. The way it is routed and the ICs themselves are not meant for high current draw or independent voltage lines. There are some servo shield designs out there, like one from Adafruit. There are also multiplexer ICs that are meant to run high intensity LEDs or servos that you might think about.
Let me know if you still can't find what you're looking for and I'll come up with a new shield for you.
It shouldn't be too hard. It might be possible that you can use pins 2-5 for both shields in an ingenuous way since the Mux Shield only uses these pins for control lines during an analog read (if your not in the middle of an analog read, it makes no difference how the lines are used or what data is on them). But, if you want to remove the conflict in hardware, here is how:
Cut the stackable header leads on the Mux Shield pins 2-5 so they don't connect to the Arduino. Run jumpers from pins 5-8 on the Mux Shield to pins 2-5 on the Mux Shield. Change the example code to the following:
#define CONTROL0 8
#define CONTROL1 7
#define CONTROL2 6
#define CONTROL3 5
This way you are isolating the Mux Shield from the Arduino and still getting the Mux Shield the data it needs.