• Skip to main content
  • Skip to primary sidebar

RNTLab.com

The Ultimate Shortcut to Learn Electronics and Programming with Open Source Hardware and Software

  • Courses
  • Forum
    • Forum
    • Ask Question
  • Shop
  • Account
  • Blog
  • Login

IR & OLED

Q&A Forum › Category: Arduino › IR & OLED
0 Vote Up Vote Down
Ray Leiter asked 2 years ago

I have been trying for some time now to get my IR sensor to work together with my 1.3 inch OLED display.
Each device works by itself; I test the OLED using a push button to allow me to display the next integer from a counter on the display.
I’m using this display “#include <Adafruit_SH110X.h>” and “Adafruit_SH1106G display = Adafruit_SH1106G(128, 64, &Wire, -1);”
When I test the IR sensor by itself, I use “#include <IRremote.h>”. I use the IR transmitter I got with my addressable LED strip — its uses NEC codes and I can sucessfully display the codes. I note that I belive I am using an old version of the IRremote lib since it says so on the serial output and the include file is “h” as opposed to “hpp”.
My problem may be the old library — I don’t think the APIs are the same in the new lib as the old, so I’d have to redo the code to use th new IRremote lib.
I wonder if anyone has actually produced a working sketch where the IR sensor is used with the OLED display?
If so, which IRremoote lib was used?

Question Tags: 1.3 " OLED, IR sensor
6 Answers
0 Vote Up Vote Down
Sara Santos Staff answered 2 years ago

Hi.
What is exaclty the error message that you get related to the IR Remote library?
Regards,
Sara

0 Vote Up Vote Down
Ray Leiter answered 2 years ago

Sara, here is the text from the serial output when using “IRremote.h” as opposed to “IRremote.hpp”.
Thank you for using the IRremote library!
It seems, that you are using a old version 2.0 code / example.
This version is no longer supported!
Please use one of the new code examples from the library,
available at “File > Examples > Examples from Custom Libraries / IRremote”.
Or downgrade your library to version 2.6.0.
Start with the SimpleReceiver or SimpleSender example.
The examples are documented here:
https://github.com/Arduino-IRremote/Arduino-IRremote#examples-for-this-library
A guide how to convert your 2.0 program is here:
https://github.com/Arduino-IRremote/Arduino-IRremote#converting-your-2x-program-to-the-4x-version
I have tried using IRremote.hpp by following the guide “how to convert your 2.0 program”, but I failed to make it work.
I get output like this even when I don’t use the IR transmitter:
Protocol=UNKNOWN 1 bits (incl. gap and start) received
Received noise or an unknown (or not yet enabled) protocol
rawData[2]:
-3276750
+ 100
Sum: 100
I even tried downgrading to the older lib version 2.6.0 as suggested but to no avail.
I’d be happy with any sketch that actually works, preferably with NEC codes.
Thanks,
Ray

0 Vote Up Vote Down
Sara Santos Staff answered 2 years ago

Hi.
I’m currently away from the office, so I cant test code at the moment.
But, have you tried their simplest example without any modifications?
Sometimes when lirbaries are deprecated they still work even though they produce a warning message… I’m not sure if that’s the case. But sometimes it’s just a warning message, but the code compiles anyways.
 
Regards,
Sara

0 Vote Up Vote Down
Ray Leiter answered 2 years ago

Sara,
Thanks for the reply/suggestion. I have tried many of the so-called simple examples for IRremote.
Here are 2 things I find interesting about trying to use the IR detector with one of the many IR transmitters in order to trigger a task.

  1. I have yet to find any examples of the code necessary for reading the IR detector which do NOT produce output on the serial monitor when NOTHING is transmitted via the IR transmitter. They all produce output when NOTHING is being done except me breathing to stay alive.
  2. I was quite surprised when I put my scope on the output pin of the IR detector and observed a regularly occurring pulse train!!! It’s no wonder the example code produces output on the serial monitor when nothing is being done (except breathing).

I was hoping for an example piece of code which did NOT produce ANY output on the serial monitor EXCEPT when I pressed a button on the IR transmitter! Then, all I would have to do is determine which button produced which code and then write my piece of code to recognize that code and take whatever action I decided was appropriate for that code — seems pretty simple, doesn’t it?
At this point, I conclude one of two things; either my IR detector is faulty OR the use of an IR detector to trigger a task on my Arduino is far more involved, in terms of programming, than I was led to believe by reading the many articles I’ve read on-line about doing this kind of thing.
I’m quite discouraged and am thinking of abandoning the idea of using IR to trigger a task.
I don’t know what to make of the fact that my scope shows the IR detector emitting output when no IR signal is being sent to it — perhaps it’s so sensitive, it picks up IR from ambient room light from incandescent or LED bulbs??
Do either you or Rui know of a sample piece of code that produces output ONLY when an IR signal is directed to the IR detector? I would love to get hold of such a piece of code along with the necessary info on its use such as which version of which IR library to use.
Thanks for whatever help you can provide.
Ray

0 Vote Up Vote Down
Ray Leiter answered 2 years ago

Sara,
I thought it good for me to let you and any others interested, know of my progress.
As usual, your advice was good as I discovered upon taking it and looking closely at the example.
I selected “TinyReceiver.cpp” from the custom library “IRremote”. It worked, but gave me more than I wanted.
As I indicated in a previous posting, all I wanted was a single output of the code corresponding to the button I pressed on the IR transmitter.
I was able to acheive exactly that with some minor modification of the example.
I was also able to display the code on the 1.3 inch OLED display using the following icludes/code:
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SH110X.h>
Adafruit_SH1106G display = Adafruit_SH1106G(128, 64, &Wire, -1);
I now have exactly what I was trying to accomplish and all it took was some persistence and your excellent advice, as usual.
As always, thanks for your help — you and Rui are the BEST!
Ray

0 Vote Up Vote Down
Sara Santos Staff answered 2 years ago

Hi.
That’s great!
I’m glad you were able to solve the issue.
I’ll mark this issue as resolved.
If you need further help, you just need to open a new question in our forum.
Regards,
Sara

Primary Sidebar

Login to Ask or Answer Questions

This Forum is private and it’s only available for members enrolled in our Courses.

Login »

Latest Course Updates

  • [New Edition] Build ESP32-CAM Projects eBook – 2nd Edition April 16, 2025
  • [eBook Updated] Learn ESP32 with Arduino IDE eBook – Version 3.2 April 16, 2025

You must be logged in to view this content.

Contact Support - Refunds - Privacy - Terms - MakerAdvisor.com - Member Login

Copyright © 2013-2025 · RandomNerdTutorials.com · All Rights Reserved

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.