Overview
The purpose of this project was as a test to see if the 4051 mux would be usable in audio switching. I've been designing a programmable guitar pedal switcher and used this as a test project to see if there were any fatal issues with using them for this purpose. I also had some attiny85s around and hadn't found a project for them. Being able to use two pins to control the select lines of 3 muxes was a perfect use case.In a future iteration I'll try the 4052 mux, the only reason I didn't use one this time is because I didn't have any, and I have heaps of 4051s lying around.
Bill of Materials
- Attiny85
- 3 x 4051 Multiplexers
- 2 x Momentary buttons
- 4 x Leds
- 5 x Stereo sockets
- 1 x 7805 Voltage regulator
- 2 x 10uF electrolytic capacitors
- 3 x 1k resistors
Code
The code for this is pretty basic, and self explanatory, with the attiny only using 2 inputs and 2 outputs. Each of the buttons either increments or decrements the current channel. Since the switcher only has 4 channels, only the first 2 select lines are used, with the third select line tied to ground. All 3 4051s use the same select lines.Using enum classes in this context is a bit overkill, but I've been trying to use as much c++ stuff as possible recently to get more comfortable with it.
I take advantage of the fact that the leds are powered through the common line on the multiplexer to use only one current limiting resistor for all of the leds.