I am trying to capture infrared signals sent from a remote control used to control my motorized blinds.
Parts
- Somfy LT30 remote control (http://www.avoutlet.com/index.php?dispatch=products.view&product_id=4474)
- Arduino UNO
- Vishay TSOP38238 IR receiver
Software
- Arduino IDE 1.6.8
- IRrecvDumpV2 example from IRremote library
My circuit and sketch work well to capture IR signals from other devices such my TV remote (SONY protocol). However, with the blinds remote, pressing any button yields the same code.
For example, here is the output after pressing the DOWN, STOP and UP multiple times. The code is always C37D2430.
Encoding : UNKNOWN
Code : C37D2430 (32 bits)
Timing[21]:
+ 600, - 400 + 550, - 450 + 500, - 450 + 550, - 450
+ 550, - 450 + 550, - 450 + 500, - 500 + 500, - 450
+ 550, - 450 + 550, - 450 + 500
unsigned int rawData[21] = {600,400, 550,450, 500,450, 550,450, 550,450, 550,450, 500,500, 500,450, 550,450, 550,450, 500}; // UNKNOWN C37D2430
Encoding : UNKNOWN
Code : C37D2430 (32 bits)
Timing[21]:
+ 600, - 400 + 550, - 400 + 550, - 450 + 550, - 450
+ 500, - 500 + 500, - 450 + 550, - 450 + 550, - 450
+ 550, - 450 + 500, - 450 + 550
unsigned int rawData[21] = {600,400, 550,400, 550,450, 550,450, 500,500, 500,450, 550,450, 550,450, 550,450, 500,450, 550}; // UNKNOWN C37D2430
Encoding : UNKNOWN
Code : C37D2430 (32 bits)
Timing[21]:
+ 600, - 400 + 550, - 400 + 550, - 450 + 550, - 450
+ 500, - 500 + 500, - 450 + 550, - 450 + 550, - 450
+ 500, - 450 + 550, - 450 + 550
unsigned int rawData[21] = {600,400, 550,400, 550,450, 550,450, 500,500, 500,450, 550,450, 550,450, 500,450, 550,450, 550}; // UNKNOWN C37D2430
Encoding : UNKNOWN
Code : C37D2430 (32 bits)
Timing[21]:
+ 600, - 400 + 550, - 400 + 550, - 450 + 550, - 450
+ 500, - 500 + 500, - 450 + 550, - 450 + 550, - 450
+ 500, - 450 + 550, - 450 + 550
unsigned int rawData[21] = {600,400, 550,400, 550,450, 550,450, 500,500, 500,450, 550,450, 550,450, 500,450, 550,450, 550}; // UNKNOWN C37D2430
Encoding : UNKNOWN
Code : C37D2430 (32 bits)
Timing[21]:
+ 550, - 400 + 550, - 450 + 550, - 450 + 500, - 450
+ 550, - 450 + 550, - 450 + 550, - 450 + 500, - 450
+ 550, - 450 + 550, - 450 + 550
unsigned int rawData[21] = {550,400, 550,450, 550,450, 500,450, 550,450, 550,450, 550,450, 500,450, 550,450, 550,450, 550}; // UNKNOWN C37D2430
Encoding : UNKNOWN
Code : C37D2430 (32 bits)
Timing[21]:
+ 600, - 400 + 500, - 450 + 550, - 450 + 550, - 450
+ 550, - 450 + 500, - 450 + 550, - 450 + 550, - 450
+ 500, - 500 + 500, - 450 + 550
unsigned int rawData[21] = {600,400, 500,450, 550,450, 550,450, 550,450, 500,450, 550,450, 550,450, 500,500, 500,450, 550}; // UNKNOWN C37D2430
Encoding : UNKNOWN
Code : C37D2430 (32 bits)
Timing[21]:
+ 600, - 400 + 500, - 450 + 550, - 450 + 550, - 450
+ 550, - 450 + 500, - 450 + 550, - 450 + 550, - 450
+ 550, - 450 + 500, - 450 + 550
unsigned int rawData[21] = {600,400, 500,450, 550,450, 550,450, 550,450, 500,450, 550,450, 550,450, 550,450, 500,450, 550}; // UNKNOWN C37D2430
What could I be overlooking?
Thoughts
- I've read that the remote could be using a frequency that isn't 38 kHz. But shouldn't an incompatible frequency only result in a loss of range?
- I could clean up the signal by adding a capacitor and resistor (as indicated on the Vishay datasheet) but is this necessary as I'm getting consistent results from other remotes?