claro que si meta... aquí el programa que esta escrito para los códigos de los botones mencionados del bravia (en rojo), para el programa que tu propones también es posible, solo basta con descifrar el codigo del botón del control, y ponerlo en el programa, en estos dias subo uno que busque para practicas y que activa un rele de estado solido o mas de acuerdo a los botones del control que uno le asigne.
#include <IRremote.h>
IRsend irsend;
int RECV_PIN = 2;
const int RELAY1 = 6;
int relayState = 0;
IRrecv irrecv(RECV_PIN);
decode_results results;
long previousMillis = 0;
long interval = 500;
const int buttonPin = 4;
const int buttonPin1 = 7;
int buttonState = 1;
int buttonState1 = 1;
void setup()
{
irrecv.enableIRIn();
pinMode(RELAY1, OUTPUT);
pinMode(buttonPin, INPUT);
pinMode(buttonPin1, INPUT);
}
int counter = 0;
void loop() {
if (irrecv.decode(&results)) {
unsigned long currentMillis = millis();
if (currentMillis - previousMillis>interval){
previousMillis = currentMillis;
if(results.value==16236607&&relayState==HIGH)// codigo del boton rojo del control
{ relayState=LOW;
counter=0;
analogWrite(RELAY1, counter/4);
}
else if(results.value==16236607&&relayState==LOW)
{relayState=HIGH;// codigo del boton rojo del control
counter = 255;
}
else if
(results.value==16187647&&relayState==HIGH)// codigo del boton verde del control
{
counter = counter -20;
if(counter<=0){
counter =0;
}
}
else if(results.value==16220287&&relayState==HIGH)// codigo del boton amarillo del control
{
counter=counter+20;
if(counter>=255){
counter = 255;
}
}
analogWrite(RELAY1, counter);
}
irrecv.resume(); // Receive the next value
}
buttonState = digitalRead(buttonPin);
buttonState1 = digitalRead(buttonPin1);
if (buttonState == LOW) {
digitalWrite(RELAY1, HIGH);
}
else if (buttonState1 == LOW){
digitalWrite(RELAY1, LOW);
}
}