If I use multiple switches, however, it would require multiple resistors. Is there any way to do this with less hardware? If I have to, I'll use a bunch of resistors, but I'd rather not
It is real but better is to connect the switch between the input and ground. Then either put the 1K from the input to +5V or enable the internal pull up resistors by doing digitalWrite(pin,HIGH) after setting that pin as an input.
Okay, so I'm a little confused. I don't think the multiplexers I am using default to high, so I can't just connect the switches to ground. Since the switches are behind multiplexers, I can't use the internal pullup resistors in the arduino. Is there a way to use a single pullup resistor for all of the switches, or does each switch need its own?
Yeah, I'm using CMOS multiplexers. This is what I'm confused about. I am trying to build the PocketPiano from these schematics:
The multiplexers are CMOS, but the actual connection between the multiplexers and the buttons is not shown. I know each switch isn't using a resistor, because the version using the kit looks like this:
Yes you will need pull up resistors. Why on earth would someone design a digital multiplexing circuit using analogue multiplexers I don't know. The problem is that it is too easy to make a bad design and put it on the net.
So no way round it but use resistors. To make the wiring easer have you come across thin film resistor arrays like this:-?
They use a common connector for one end of all the resistors so are ideal for pull ups.