IR remote

Hello everyone:)

Iam trying to built a remote controller based on voice recognition for a school project. I got the voice recognition part to work but having some problem with sending IR.

Iam using ken shirriff library for receving and sending, i got a RC6 remote controll at home but dont really understand how it works.
I got the receving part to work and have already got the codes for all the buttons but having issues for sending.

Decoded RC6 1000C (20 bits) // powerOn
Decoded RC6 10001 (20 bits) // channel one

Let’s say i want to change to channel one from the arduino

#include <IRremote.h>

IRsend irsend;

void setup()
{
Serial.begin(9600);
}

void loop() {
if (Serial.read() != -1) {
irsend.sendSony(0x8100, 20); // i got the 10001 from channel1 and it’s 20 bits, is this right?
delay(100);
}
}
}

i got a ir led connceted on pin 3 with a 100ohm to GND

How did you arrive at the value 10001 for channel 1? I think you should post the code that printed that value.

Mixing decimal, binary, and hexadecimal values is a recipe for disaster.

The value that i got was like this:
Decoded RC6 10001 (20 bits)
raw code:(42){-11640,2750,900,400,900,500,400,450,400,450,900,950,350,500,400,450,450,450,400,450,450,450,450,450,400,450,450,500,400,450,400,500,400,450,450,450,400,500,400,450,400,950}

  • IRremote: IRrecvDump - dump details of IR codes with IRrecv
  • An IR detector/demodulator must be connected to the input RECV_PIN.
  • Version 0.1 July, 2009
  • Copyright 2009 Ken Shirriff
  • http://arcfn.com
    */

#include <IRremote.h>

int RECV_PIN = 11;

IRrecv irrecv(RECV_PIN);

decode_results results;

void setup()
{
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
}

// Dumps out the decode_results structure.
// Call this after IRrecv::decode()
// void * to work around compiler issue
//void dump(void *v) {
// decode_results *results = (decode_results *)v
void dump(decode_results *results) {
int count = results->rawlen;
if (results->decode_type == UNKNOWN) {
Serial.println(“Could not decode message”);
}
else {
if (results->decode_type == NEC) {
Serial.print("Decoded NEC: ");
}
else if (results->decode_type == SONY) {
Serial.print("Decoded SONY: “);
}
else if (results->decode_type == RC5) {
Serial.print(“Decoded RC5: “);
}
else if (results->decode_type == RC6) {
Serial.print(“Decoded RC6: “);
}
Serial.print(results->value, HEX);
Serial.print(” (”);
Serial.print(results->bits, DEC);
Serial.println(” bits)”);
}
Serial.print(“Raw (”);
Serial.print(count, DEC);
Serial.print(”): ");

for (int i = 0; i < count; i++) {
if ((i % 2) == 1) {
Serial.print(results->rawbuf_*USECPERTICK, DEC);_

  • }*
  • else {*
    Serial.print(-(int)results->rawbuf_USECPERTICK, DEC);_
    _
    }_
    _
    Serial.print(" “);_
    _
    }_
    _
    Serial.println(”");_
    _
    }_
    void loop() {
    _
    if (irrecv.decode(&results)) {_
    _
    Serial.println(results.value, HEX);_
    _
    dump(&results);_
    _
    irrecv.resume(); // Receive the next value*_
    * }*
    }