Code Monkey home page Code Monkey logo

seeed_arduino_irsendrev's Introduction

IRremote Arduino Library

Available as Arduino library "IRremote"

License: GPL v2 Installation instructions Join the chat at https://gitter.im/z3t0/Arduino-IRremote LibraryBuild

This library enables you to send and receive using infra-red signals on an Arduino.

Tutorials and more information will be made available on the official homepage.

Installation

Click on the LibraryManager badge above to see the instructions.

FAQ

  • IR does not work right when I use Neopixels (aka WS2811/WS2812/WS2812B) Whether you use the Adafruit Neopixel lib, or FastLED, interrupts get disabled on many lower end CPUs like the basic arduinos. In turn, this stops the IR interrupt handler from running when it needs to. There are some solutions to this on some processors, see this page from Marc MERLIN
  • The default IR timer on AVR's is timer 2. Since the Arduino Tone library as well as analogWrite() for pin 3 and pin 11 requires timer 2, this functionality cannot be used simultaneously.
  • You can use multiple IR receiver by just connecting the output pins of several IR receivers together. The IR receivers use an NPN transistor as output device with just a 30k resistor to VCC. This is almost "open collector" and allows connecting of several output pins.

Supported IR Protocols

Aiwa, BoseWave, Denon, Dish, JVC, Lego, LG, MagiQuest, Mitsubishi, Panasonic, RC5, RC6, Samsung, Sanyo, Sharp, Sony, Whynter, (Pronto).

Handling unknown Protocols

Disclaimer

This library was never designed to handle long codes like the ones used by air conditioners. See Recording long Infrared Remote control signals with Arduino.
The main reason is, that it was designed to fit inside MCUs with relatively low levels of resources and was intended to work as a library together with other applications which also require some resources of the MCU to operate.

If you do not know which protocol your IR transmitter uses, you have several choices.

Supported Boards

  • Arduino Uno / Mega / Leonardo / Duemilanove / Diecimila / LilyPad / Mini / Fio / Nano etc.
  • Teensy 1.0 / 1.0++ / 2.0 / 2++ / 3.0 / 3.1 / Teensy-LC; Credits: @PaulStoffregen (Teensy Team)
  • Sanguino
  • ATmega8, 48, 88, 168, 328
  • ATmega8535, 16, 32, 164, 324, 644, 1284,
  • ATmega64, 128
  • ATmega4809 (Nano every)
  • ATtiny84, 85
  • SAMD21 (receive only)
  • ESP32
  • ESP8266 is supported in a fork based on an old codebase that isn't as recent, but it works reasonably well given that perfectly timed sub millisecond interrupts are different on that chip. See https://github.com/markszabo/IRremoteESP8266
  • Sparkfun Pro Micro

We are open to suggestions for adding support to new boards, however we highly recommend you contact your supplier first and ask them to provide support from their side.

Hardware specifications

The timer and the pin usage can be adjusted in IRremoteBoardDefs.h

Board/CPU IR-Receive Pin Timers
ATtiny84 6 1
ATtiny85 1 TINY0
ATmega8 9 1
ATmega48, ATmega88, ATmega168, ATmega328 3, 9 1, 2
ATmega1284 13, 14, 6 1, 2, 3
ATmega164, ATmega324, ATmega644 13, 14 1, 2
ATmega8535 ATmega16, ATmega32 13 1
ATmega64, ATmega128, ATmega1281, ATmega2561 13 1
ATmega8515, ATmega162 13 1
ATmega1280, ATmega2560 5, 6, 9, 11, 46 1, 2, 3, 4, 5
ATmega4809 5, 6, 9, 11, 46 TCB0
Leonardo (Atmega32u4) 5, 9, 13 1, 3, 4_HS
ESP32 4, all pins 1
Sparkfun Pro Micro 5, 9, 13 1, 3, 4_HS
Teensy 1.0 17 1
Teensy 2.0 9, 10, 14 1, 3, 4_HS
Teensy++ 1.0 / 2.0 1, 16, 25 1, 2, 3
Teensy 3.0 / 3.1 5 CMT
Teensy-LC 16 TPM1

Usage

  • TODO (Check examples for now)

Revision History

Please see changelog.md.

API documentation

This project documents the library API using Doxygen. It is planned to make generated and up-to-date API documentation available online.

To generate the API documentation, Doxygen, as well as Graphviz should be installed. (Note that on Windows, it may be necessary to add the Graphviz binary directory (something like C:\Program Files\Graphviz2.38\bin) to the PATH variable manually.) With Doxygen and Graphviz installed, issue the command doxygen from the command line in the main project directory, which will generate the API documentation in HTML format. The just generated api-doc/index.html can now be opened in a browser.

Contributing

If you want to contribute to this project:

  • Report bugs and errors
  • Ask for enhancements
  • Create issues and pull requests
  • Tell other people about this library
  • Contribute new protocols

Check here for some guidelines.

Contact

Email: [email protected] Please only email me if it is more appropriate than creating an Issue / PR. I will not respond to requests for adding support for particular boards, unless of course you are the creator of the board and would like to cooperate on the project. I will also ignore any emails asking me to tell you how to implement your ideas. However, if you have a private inquiry that you would only apply to you and you would prefer it to be via email, by all means.

Contributors

Check here

Copyright

Copyright 2009-2012 Ken Shirriff Copyright (c) 2016 Rafi Khan

seeed_arduino_irsendrev's People

Contributors

analysir avatar arminjo avatar bengtmartensson avatar bessl avatar chaeplin avatar csbluechip avatar electricrcaircraftguy avatar eshicks4 avatar informatic avatar ivankravets avatar jan-r avatar jiacheng-lu avatar joshuajnoble avatar lauszus avatar levsa avatar lumbric avatar lynnl4 avatar madmalkav avatar marcmerlin avatar mcudude avatar paolop74 avatar paulstoffregen avatar philipphenkel avatar ram-0000 avatar safaorhan avatar shirriff avatar sstefanov avatar toddtreece avatar uvotguy avatar vk2tds avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

seeed_arduino_irsendrev's Issues

HELP!

I can't seem to send any data from my Grove- Infa Red Emitter.
Pls. help

Decoding Air Cooler Mistubishi and trying to reproduce it with IR-Led

Hi all,

Here is my project, Reading On/Off IR code coming from my mistubishing remote.
I used the sketch 'IRrecvDump'

include <IRremote.h>

define MAX_CAPTURE 425

define RAWBUF 250 // Length of raw duration buffer

int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results;

void setup()
{
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
}

// Dumps out the decode_results structure.
// Call this after IRrecv::decode()
// void * to work around compiler issue
//void dump(void *v) {
// decode_results *results = (decode_results *)v
void dump(decode_results *results) {
int count = results->rawlen;
if (results->decode_type == UNKNOWN)
{
Serial.print("Unknown encoding: ");
}
else if (results->decode_type == NEC)
{
Serial.print("Decoded NEC: ");
}
else if (results->decode_type == SONY) {
Serial.print("Decoded SONY: ");
}
else if (results->decode_type == RC5) {
Serial.print("Decoded RC5: ");
}
else if (results->decode_type == RC6) {
Serial.print("Decoded RC6: ");
}
else if (results->decode_type == PANASONIC) {
Serial.print("Decoded PANASONIC - Address: ");
Serial.print(results->panasonicAddress,HEX);
Serial.print(" Value: ");
}
else if (results->decode_type == JVC)
{
Serial.print("Decoded JVC: ");
}
Serial.print(results->value, HEX);
Serial.print(" (");
Serial.print(results->bits, DEC);
Serial.println(" bits)");
Serial.print("Raw (");
Serial.print(count, DEC);
Serial.print("): ");

for (int i = 0; i < count; i++) {
if ((i % 2) == 1) {
Serial.print(results->rawbuf[i]_USECPERTICK, DEC);
}
else {
Serial.print(-(int)results->rawbuf[i]_USECPERTICK, DEC);
}
Serial.print(" ");
}
Serial.println("");
}

void loop() {
if (irrecv.decode(&results)) {
Serial.println(results.value, HEX);
dump(&results);
irrecv.resume(); // Receive the next value
}
}

Actually i received the signal and the code are displayed but always with 'Unknown encoding'

here is one output

E1CC9186
Unknown encoding: E1CC9186 (32 bits)
Raw (100): 12064 3400 -1700 450 -1250 500 -1200 450 -400 450 -450 400 -450 500 -1200 500 -350 450 -400 500 -1200 450 -1300 500 -350 500 -1200 500 -350 450 -400 450 -1250 550 -1200 450 -400 450 -1250 450 -1250 450 -450 400 -450 400 -1300 450 -400 450 -400 450 -1250 450 -400 550 -350 400 -450 500 -350 500 -350 500 -350 500 -350 500 -400 500 -350 500 -350 500 -350 500 -400 450 -400 450 -400 500 -350 500 -350 500 -350 500 -350 500 -400 450 -400 500 -350 500 -350 500 -350 500

Some forum advise to increase the raw, it is what is did but still the 'Unknown encoding'

Can you help ? or Advise ?
Regards

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.