This is a TV remote that uses a rotary knob to switch to 10 different pre-programmed channels. It has no buttons and allows users to switch to a specific channel without knowing or remembering the channel number. All you do is turn the knob so that it is pointing to the channel that you want and wait 1 second and it will change the channel.
You will need:
- Arduino (I used a Funduino pro mini to keep it small and cheap but any Arduino compatible chip should work.)
- Potentiometer (I used a Sparkfun 10 position rotary switch potentiometer breakout to make the control more tactile. https://www.sparkfun.com/products/13099 )
- IR LED (You can order these from your favorite electronics parts store or scavenge one from an old remote if you have soldering experience.)
- IR Receiver (https://www.sparkfun.com/products/10266 or something similar)
- LED Resistor (somewhere around 300 Ohm)
- Jumper Wires
- DC Power (I scrapped an old phone charger and put header pins on it but you can use whatever you normally use to power your Arduino.)
- Labels (I used a label maker)
- Foam core
- Knob (I 3d printed one from thingiverse http://www.thingiverse.com/thing:54024 )
- Breadboard or solder (I used a mini breadboard)
Step 1: Find Your Channel Codes
There is already a good Instructable on how to receive and decode the signals that your remote here https://www.instructables.com/id/How-to-control-your-TV-with-an-Arduino/ . I followed the first few steps of this Instructable and used the code to get the button codes for my remote. When you follow the directions in the other Instructable you should copy and paste the codes for all of the buttons of your TV into a text file. I have included the values that I got from my remote as an example of what yours should look like.
Step 2: Wire It Up
Use a breadboard or solder and jumper wires to connect the potentiometer wiper (usually the middle pin) to Arduino pin A0 and the other two pins to ground and 5V (the order of these doesn't matter, it only affects the direction of rotation). Then connect the IR LED to Arduino pin D10 and make sure to include a resistor in series (if you blow an IR LED you won't know because you can't see the light!).
Step 3: Write the Code
I have included the code that I used for my remote but you will need to edit it for it to work. If you use the 10 position rotary switch potentiometer breakout with 4.7 kOhm resistors then the only thing that you will need to change will be the values in the channelCodes.ino file to the values that you got in Step 1. If you are using a regular potentiometer or different resistor values, then you will probably need to modify the part of the code that divides your analogRead values into 10 different states (the variable is named switchState) based on your own individual potentiometer. Either way you need to change the values in the channelCodes.ino file to the values that you got in Step 1. Then upload the code to your Arduino and test it out to make sure it works before continuing.
Step 4: Make the Enclosure
I used foam core to make an enclosure for the remote circuitry. You can use whatever you like to make an enclosure or just leave it a bare breadboard if you like. I cut the foam core into a strip and then scored that strip into four sections to make a box. I cut a hole in the center of one of the panels for the potentiometer and made that the top. I then hot glued my breadboard down and my potentiometer into the hole to make sure it didn't move (be careful not to glue it too much so that you can't change the position of the potentiometer). I folded the section into a box and then hot glued it in place. I then cut two panels out of the foam making holes for the LED to poke out and the power cord to come out and hot glued them onto the box to make a cube. I also hot glued my 3d printed knob onto the shaft of my rotary switch.
Step 5: Print Labels
The last thing you need to do is print labels for your remote. I used a label maker and silver sharpie to display the channels on my enclosure but depending on your enclosure you may want to label your channels differently. Either way you will want to have the remote on and twist your potentiometer or rotary switch until the channel changes and then mark that spot as where you need to label for that specific channel. Repeat this process until you have labeled all of your channels and then you have a functioning Rotary TV Remote!