We all have faced the problem of managing multiple remotes while using our home theater. Although there are commercially available universal remote, this project will allow you to make your own universal remote controller and hence will teach you the working of a remote. In short, it learn the required signal of different remotes all at once, store them and can transmit them based on the input received from the user on the remote. A typical NEC protocol is used to implement the remote control but with a little modification you could also use RC-5 protocol
Presently, it only has the capacity to store 9 buttons due to the keypad being used, however, you could replace with a touch screen based LCD to store more signals and increase the attractiveness of the project. The microcontroller used for this project is Atmega1284 mounted on a custom PCB. When the device is in input mode, microcontroller is used to detect IR signal to store the signal of your remote. When the device is in output mode, microcontroller detects user input and generates pulse distance encoding of the corresponding stored binary data message. A brilliant project to understand NEC protocol which can also be used on day to day basis.