Controlling Pixel Strips with 3-way switches


I am brand new to the forum. I recently purchased an Arduino Uno, and I am using it to control some pixels on my ceiling of my room. I would like to control the LEDs with manual switches that I have. The problem I am facing is that I need to use interrupt based programming as polling based is not feasible for the level of control I want and for the scope of the project. I have 12 functions that I would like to control:

Increase red of all LEDs
Decrease red of all LEDs
Increase green of all LEDs
Decrease green of all LEDs
Increase blue of all LEDs
Decrease blue of all LEDs
Turn on LEDs (set brightness to 255)
Turn off LEDs (set brightness to 0)
Increase LED brightness
Decrease LED brightness
Cycle to next LED function
Cycle to previous LED function

With those 12 controls I could do everything I want with the LEDs. I need to be able to turn the LEDs on and off without having to power the arduino on and off.

The question I have is this: Does there exist some PCI library that will let me set up 12 different pins on the arduino to be interrupt pins? (on a slight side topic, what does it mean for the arduino to have 3 interrupt channels?)

Have you considered something like this?

While the controller fulfills 10/12 of the functions I need, it would not integrate well with my current system. I am using the LEDs in an automation routine, and I am installing the switches as a mechanical override in the case that my web interface goes down.

Thanks for the reply though. The controller is very interesting, and I might buy one just to play with it.


I am using the keypad and detector for data input to the Arduino.
The Arduino is programmed to respond accordingly.

So here is my solution. I am using two of the posted circuits. Each circuit will go to one analog pin, and I will use the PinChangeInt Library to program inputs to a FSM. According to multisim, I get ~-9.3mv when my inputs are floating, even with the pulldown resistors in place. Every other combination of inputs causes positive outputs. Can the arduino handle such a small negative voltage to it’s analog pins?


LED_input.pdf (56.7 KB)

I have fixed the 3 errors in my schematic. I changed the op amp U2 negative rail to be properly connected, I changed R7 to be 32K and not 32 ohms, and I removed the pulldown resistor at the output, which was becoming a voltage divider and was decreasing the amount of voltage I was getting. Updated schematic attached.

LED_input.pdf (56.4 KB)