Sending commands is very simple, all you need to do is call the function "sendCode (94, 248)". The first number is the address of the device in this case YAMAHA AV receiver and the second number is the command in this case POWER.
More information about NEC protocol can be found at: SB-Projects: IR Remote Control NEC protocol.
Sketch for sending NEC IR commands
// ********************************************************* // Program: NEC PROTOCOL INFRARED REMOTE SENDER // Version: 1.0 // Author: Elvis Baketa // Description: // ********************************************************* // definitions of constants #define pulseTime 560 // duration of carrier pulse #define irLed 2 // ir led connected to digital pin 2 #define YAMAHA 94 // device address byte #define STANDBY 248 // device command byte // standard Arduino setup routine void setup() { pinMode(irLed, OUTPUT); // set irled pin as output digitalWrite(irLed, LOW); // turn of ir led // send test command to turn on/off yamaha av receiver sendCode(YAMAHA, STANDBY); } // standard Arduino loop routine void loop() { } // routines to create a carrier pulse void carrierPulse(unsigned int duration) { for(int i=0; i < (duration / 35); i++) { digitalWrite(irLed, HIGH); // set irled to high delayMicroseconds(13); // duration of high pulse digitalWrite(irLed, LOW); // set irled to low delayMicroseconds(13); // duration of low pulse } } // routines for sending code void sendCode(byte addressByte, byte commandByte) { // preparing the code for sending unsigned long code = 0; code = addressByte; code = code << 8; code = code | addressByte ^ 0xFF; code = code << 8; code = code | commandByte; code = code << 8; code = code | commandByte ^ 0xFF; // start sending code // send AGC pulse approximate to 9ms carrierPulse(16 * pulseTime); // space pulse approximate to 4.5ms delayMicroseconds(8 * pulseTime); // send bits one by one, MSB first for (int i=31; i>=0; i--) { if (bitRead(code, i)) { carrierPulse(pulseTime); delayMicroseconds(3 * pulseTime); }else{ carrierPulse(pulseTime); delayMicroseconds(pulseTime); } } // send stop bit carrierPulse(pulseTime); }