A while back, I bought a universal remote for the entertainment system. I chose one fancy enough to have learning capability, but not fancy enough to be programmed with a computer.
Annoyingly, the factory and universal remote only had a button to toggle through the various inputs. This gets tedious quickly when you have a few video game consoles. I knew that the TV had discrete codes, which would take you directly to a selected input. But I didn’t have a way to program the remote with these codes.So I wrote an IR transmitter for Arduino. Then I could use the Arduino to program the remote, and have nice discrete component access straight from the remote that I’m already using. My TV is a Samsung, which uses the . It’s a pretty simple protocol consisting of two address bytes and two command bytes, with a 9 ms burst ahead of it. Ones and zeros are encoded as different pauses after a short burst at 38 kHz. My previous IR project was very helpful for debugging timing issues.
Download the code. The only hardware required is an IR LED attached to pin 13.