General > General Technical Chat
making a simple IR transmitter
<< < (6/7) > >>
ledtester:
You might be interested in this project:

https://youtu.be/taZQkVBzl-c

No code, unfortunately, but the details are discussed in depth.
msuffidy:
Hooray I think I got it working before destroying anything with my soldering iron. Just used a 270 ohm resistor. Seems pretty much how you do it. I encased it in glue gun to make it a bit more durable and safe.
msuffidy:
Well either I have the wrong IR EM freq, or I missed the carrier. I have some ideas, but the code may have to be changed. I may just have to oscillate the current sample. Yup I just ran everything so fast it would be like a modulation and a test receiver got something.

I give up, I am starting over with a pure NEC protocol source that inputs the 32 bit transmission. Looks doable. It is not universal, but will allow me to quickly change the light puck, like 5hz or so I guess.
msuffidy:
Well the good news is I seem to have it working, and I can use my arduino as a remote for the light puck. The bad news is my codes seem to be slightly different than the other one as per the linux ir-keytable response. It was doing NOTHING for a while until I experimented with lowering certain timings. I was relying on delay statements instead of using timer operations, and the execution time is different from the official timings.
The input string looks like this:
Y00010000111011110101000010101111Z
Here are the codes that concern me:
the real remote:
41426.337421: event type EV_MSC(0x04): scancode = 0x800a
mine:
42438.193464: event type EV_MSC(0x04): scancode = 0x80a
also:
https://web.ncf.ca/fs864/pickup/sketch_irled1-006.ino
ledtester:
Some immediate observations:

- digitalWrite has a lot of overhead. There are "fast" versions of digitalWrite/Read which do not have the overhead of a subroutine call or Arduino pin to AVR PORT bit conversion at run time. Just google "fast digitalWrite arduino".

- I am not sure about how delayMicroseconds is implemented, but I would use the avr library version:

https://www.nongnu.org/avr-libc/user-manual/group__util__delay.html

which, with the proper compilation flags results in inline code.

- bit-banging the carrier signal is insane. I would set up a PWM pin to do that and then just enable or disable it every 562 us as needed.
Navigation
Message Index
Next page
Previous page
There was an error while thanking
Thanking...

Go to full version
Powered by SMFPacks Advanced Attachments Uploader Mod