Interfacing with garage door remote

Hi all,

I have recently bought an universal RF remote from ebay for garage door.

http://www.qinuo.net/en/pro_view.asp?ID=133

I would like to know if anyone has interfacing this kind of remote with the arduino? I am trying to read the data from the remote with the receiver sketch from virtualwire library but no data is extracted from the remote.

Thanks

  1. Which frequency is your TX on 433.92MHz, 330MHz or 315MHz
  2. Which FQ is your receiver on......
  3. what is your decoder chip on the receiver

Use PT2272 receiver decoder with RF, easily available on alibaba. I am using Model No.: DL-R02EF (http://www.hkdaylightrf.com) for other purpose, you can easily interface with your remote.

Thanks both of you for the reply.

Hardcore,

  1. Which frequency is your TX on 433.92MHz, 330MHz or 315MHz
    → I am using the 433.92MHz frequency remote

  2. Which FQ is your receiver on…
    → The receiver has the same frequency. I guess the signal is received but the decoding at arduino level is not working.

  3. what is your decoder chip on the receiver
    → The receiver is simply a receiver module. No decoder is available on the receiver module. I was thinking of decoding the received signal directly using the arduino by software.
    Is that possible ?

Pravas, thank you for the link of the DL-R02EF. I will get one.

My idea is to get the signal from the universal remote control and process it using the directly the arduino (without standalone decoder). And then depending on the code of the 4 buttons remote, control the different interface of the arduino (switching on leds, activated relays, and so on…)
Do you think that it is possible ? And how can I do it ?

The link is:

//Arduino PIN     DL-R02EF PIN  DESCRIPTION
//      2<-----------> VT             for interrupt pin
//      7<----------->D3
//      8<----------->D2
//      9<----------->D1
//     10<---------->D0
int pbIn = 0;                  // Interrupt 0 is on DIGITAL PIN 2!
int addr0=0;
int addr1=0;
int addr2=0;
int addr3=0;
int d7=0,d8=0,d9=0,d10=0;
int rfZone;
void setup() {
  // attachInterrupt(pbIn, stateChange, CHANGE); interrupt
   attachInterrupt(pbIn, stateChange, RISING );
  
  pinMode(13, OUTPUT); //13 pin is using for test purpose
  pinMode(7, INPUT); 
  pinMode(8, INPUT); 
  pinMode(9, INPUT); 
  pinMode(10, INPUT); 
  delay(10);
  addr0=digitalRead(7);   // <=d3  RF data decoder pin
  addr1=digitalRead(8);   // <=d2  RF data decoder pin
  addr2=digitalRead(9);   // <=d1  RF data decoder pin
  addr3=digitalRead(10); // <=d0  RF data decoder pin
   rfZone=-1;                 //  Due to M4 latch
  digitalWrite(13, LOW);    // set the LED off
}
void loop() {
  
  int rfVal;
  while(true)
  {
     if( rfZone >=0 ) //SOME RF INTERRUPT HAS BEEN TRIGGERED...
     {   rfVal=rfZone;
         rfZone=-1;
        // ----------------------RECEIVING THE RF  WHEN LED BLINK------------------------------
         digitalWrite(13, HIGH);   //  set the LED on
         delay(500);                    //  wait for a .5 second
         digitalWrite(13, LOW);    // set the LED off
       //-------------------------------------------------------------------------------------------------
        // Serial.print(rfVal);
        // Serial.println("   TEST");
        // ProcessRFMessage(rfVal);
     }
   }
   delay(100);
}
//Interrupt handler run automatically when any message received from remote key
//Interrupt pin is connected to arduino pin2
//rfZone is -1 when nothing is triggered
//rfZone >=0  when any key is receive from remote 
void stateChange()
{
d7=digitalRead(7);   // <=d3  RF data decoder pin
d8=digitalRead(8);   // <=d2  RF data decoder pin
d9=digitalRead(9);   // <=d1  RF data decoder pin
d10=digitalRead(10); // <=d0  RF data decoder pin

addr0=addr0 ^  d7; //digitalRead(7); // <=d3
addr1=addr1 ^  d8;// digitalRead(8); // <==d2
addr2=addr2 ^  d9; // digitalRead(9); // <==d1
addr3=addr3 ^  d10; // digitalRead(10);// <==d0

addr2=addr2 << 1;
addr1=addr1 << 2;
addr0=addr0 << 3;
rfZone=(addr3 | addr2 | addr1 | addr0)-1;
addr0=d7;      // digitalRead(7); // <=d3
addr1=d8;      // digitalRead(8); // <==d2
addr2=d9;      // digitalRead(9); // <==d1
addr3=d10;     // digitalRead(10);// <==d0

}