Continue to Site

Welcome to our site!

Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

  • Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

Capture Infrared Signals

Status
Not open for further replies.

Suraj143

Active Member
I am trying to make an universal infrared receiver using a general pin on PIC12F675.I use a TSOP1738 reciever.

I measure every high and low signals timings and stores them on GP registers.ex:if a low pulse 600uS in Byte1, 1200uS in Byte2 etc...Like wise I store 30 GP registers.

The problem is when the remote is focusing in far (4m) the signals are weaker.so the stored values are mismatch.I check a range with some offset like this.

(StoredValue- 32uS) < Recieved Time < (32uS +StoredValue)

I think the 32uS offset is not enough...!! Any idea?
 
Universal remote will be difficult for PIC12F675 with only 64 bytes RAM, but just possible, maybe.

.. and yes, Received IR signal will be different from the the original transmitted signal, as the receiver chip tends to stretch MARK pulses and shrink SPACEs.

The further away the transmitter is from the receiver, the more the distortion, which is why commercial "universal" remotes require the training remote to be located very close to the receiver when learning.

Exact figures are hard to predict, as there are so many variables. I hope you have a Digital Storage Oscilloscope (or better still, Logic Analyser) available, otherwise working out how to adjust the received timing to re-produce close to original transmit timing will be very difficult.

You might want to try subtracting 40uS from each mark value then adding 40uS to each space value, but this is pure guesswork on my part. Use an Oscilloscope to compare original remote timings with your transmit timings to be sure that you have faithfully reproduced the original signal.
 
I believe you are discussing the change in pulse with and spacing with distance:
upload_2015-10-18_9-0-25.png


as shown on the left of this graph. Methods that depend on accurate pulse or space widths will be prone to problems, because those widths are not very reproducible (as just mentioned by hexreader). One way around that is to use a coding scheme that does not depend on pulse width, but rather on a transition, such as Manchester coding. If you search ETO for Manchester you will get lots of hits. Or, just search Google. There are other methods of coding, but Manchester is a common keyword to search.

John
 
Status
Not open for further replies.

New Articles From Microcontroller Tips

Back
Top