IR Remote Arduino

Hola a todos, soy nuevo en esto y tengo una duda. Despues de buscar mucho en internet logre por medio de la libreria sw IRremote y el correspondiente codigo ver el valor del boton off/on del control remoto de mi equipo de aire. Este es B24D7B84 , B24D1FE0.

Como hago ahora para desde arduino prender o apagarlo? Desde ya muchas gracias por su ayuda

Hola Arlengaz. Acá tienes una librería con ejemplos para recibir y enviar datos. https://github.com/shirriff/Arduino-IRremote Busca en los ejemplos y facilmente podrás adaptarlo a tu necesidad. Espero te sirva

muchas gracias por tu respuesta, estoy usando esa libreria, el tema es que no se como poner ese valor que me da para mandarlo al aire, porque en los ejemplos veo que usa sony y la verdad que ni idea de como modificar eso para mi necesidad. Perdon por ser tan tonto, pero mucha idea no tengo, solo ganas de aprender ;)

Bueno Arlengaz, no la hagas tan dificil, ni siquiera has dicho que marca de TV tienes, como podemos ayudarte? Si leyeras la librería verias esto

// main class for receiving IR
class IRrecv
{
public:
 IRrecv(int recvpin);
 void blink13(int blinkflag);
 int decode(decode_results *results);
 void enableIRIn();
 void resume();
private:
 // These are called by decode
 int getRClevel(decode_results *results, int *offset, int *used, int t1);
 long decodeNEC(decode_results *results);
 long decodeSony(decode_results *results);
 long decodeSanyo(decode_results *results);
 long decodeMitsubishi(decode_results *results);
 long decodeRC5(decode_results *results);
 long decodeRC6(decode_results *results);
 long decodePanasonic(decode_results *results);
 long decodeLG(decode_results *results);
 long decodeJVC(decode_results *results);
 long decodeSAMSUNG(decode_results *results);
 long decodeHash(decode_results *results);
 int compare(unsigned int oldval, unsigned int newval);

}

class IRsend
{
public:
 IRsend() {}
 void sendNEC(unsigned long data, int nbits);
 void sendSony(unsigned long data, int nbits);
 // Neither Sanyo nor Mitsubishi send is implemented yet
 // void sendSanyo(unsigned long data, int nbits);
 // void sendMitsubishi(unsigned long data, int nbits);
 void sendRaw(unsigned int buf[], int len, int hz);
 void sendRC5(unsigned long data, int nbits);
 void sendRC6(unsigned long data, int nbits);
 void sendDISH(unsigned long data, int nbits);
 void sendSharp(unsigned long data, int nbits);
 void sendPanasonic(unsigned int address, unsigned long data);
 void sendJVC(unsigned long data, int nbits, int repeat); // *Note instead of sending the REPEAT constant if you want the JVC repeat signal sent, send the original code value and change the repeat argument from 0 to 1. JVC protocol repeats by skipping the header NOT by sending a separate code value like NEC does.
 // private:
 void sendSAMSUNG(unsigned long data, int nbits);
 void enableIROut(int khz);
 VIRTUAL void mark(int usec);
 VIRTUAL void space(int usec);
}

Tenés dos clases una para recibir y otra para enviar. IRrecv.XXX para recibir códigos de la marca correspondiente IRsend.XXX para enviar un codigo de la marca XXX

Perdona mi ignorancia surbyte, no te enfades conmigo ;) , lo que intento prender es un aire acondicionado marca surrey. Y con respecto al tv que tengo es un Philips que al correr en programita que trae la libreria me dice que es RC6. El Valor es apagar RC6: 1000C Prender RC6: C Hasta ahi todo genial, pongo el led emisor en el ping 13 y no logro prenderlo ni a palos. verifico con una camara y puedo ver que el led prende y apaga, pero el tv ni se mosquea, ni hablar del aire :( Es que de programación no se mucho y me guio por los ejemplos que encuentro en internet.

Gracias de todos modos por de dicar tu tiempo a un inutil. Saludos

Según la documentación de la librería, el pin de salida que se usa para enviar es el 3, no el 13...

http://www.righto.com/2009/08/multi-protocol-infrared-remote-library.html

How to send This infrared remote library consists of two parts: IRsend transmits IR remote packets, while IRrecv receives and decodes an IR message. IRsend uses an infrared LED connected to output pin 3. To send a message, call the send method for the desired protocol with the data to send and the number of bits to send. The examples/IRsendDemo sketch provides a simple example of how to send codes:

No me enojo amigo, solo que desde que llegué a este foro encuentro una y otra vez el mismo inconveniente. O yo soy malo para entender los problemas o la gente no se toma el tiempo para explicarse bien.

Entonces mira la diferencia: Si tu hubieras contado lo mismo con lujo de detalles incluyendo links indicando la librería que estas usando, relatando cada paso que has dado para llegar a donde te quedaste atorado, uno puede reconstruir tu problema y tener todos los elementos para darte una mano. Igualmente se llega pero tras varias preguntas.

OJala tu problema sea el pin que estabas usando. Suerte y acá estamos. Recuerda.. danos todos los pasos que has dado asi resulta mas ilustrativo para quien tenga el mismo problema en el futuro.

Aparentemente el problema esta en el arduino mega, no emite en el puerto 3, alguien que lo resolvio?

la libreria dice en IRremoteInt.h

// Arduino Mega
#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
 //#define IR_USE_TIMER1 // tx = pin 11
#define IR_USE_TIMER2 // tx = pin 9
 //#define IR_USE_TIMER3 // tx = pin 5
 //#define IR_USE_TIMER4 // tx = pin 6
 //#define IR_USE_TIMER5 // tx = pin 46

o sea que tienes esas opciones para usar en el MEGA