NOTE: This tutorial has been updated to work with IRLib 2.x which is significantly different from previous versions.
Most consumer electronic devices such as TV, cable box, DVD players and other devices use infrared signals for remote control. Each manufacturer has its own protocols for encoding the data so that signals intended for one device do not interfere with another. In an earlier tutorial by LadyAda she describes the inner working of reading IR signals from a remote and creating your own IR signals using an IR LED. Her tutorial gives you a behind-the-scenes peek at how IR works but it's a bit difficult to wrestle with all those technical details in your project.
If you're like me, you have no idea how NeoPixels work, nor the inner workings of I2C or SPI communications but you don't need to because we have libraries for that. A good code library isolates you, the application programmer, from the hardware details and the inner workings of devices and provide you with an API that makes it easy to use the hardware without knowing or caring what's going on behind the scenes.
In this tutorial we will show you how to use IRLib for receiving, decoding, and sending IR signals in your Arduino based project. We will show you how to change colors on a NeoPixel, control a servo using IR remote and send signals to your TV or cable box from an Arduino. Future tutorials will include an IR control mouse, and Internet of things remote control and controlling a robot arm.