Arduino-Libs VS Arduino-IRremote

Compare Arduino-Libs vs Arduino-IRremote and see what are their differences.

Arduino-Libs

Arduino Libs & Examples: ADS1147, ADS7846, DAC8760, DS1307, RV8523, MCP2515, WS2812, S65-Display, MI0283QT-2/-9/-11, HX8347D, ILI9341, SSD1331 (by watterott)

Arduino-IRremote

Infrared remote library for Arduino: send and receive infrared signals with multiple protocols (by Arduino-IRremote)
Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
Arduino-Libs Arduino-IRremote
2 33
167 4,272
1.2% 1.0%
3.7 7.9
5 months ago 9 days ago
C++ C++
GNU General Public License v3.0 or later GNU General Public License v3.0 or later
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

Arduino-Libs

Posts with mentions or reviews of Arduino-Libs. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-03-11.
  • Path forward from Arduino to embedded C/C++
    5 projects | /r/embedded | 11 Mar 2022
    There are some design decisions Arduino made that maybe restrict in one aspect, but there's nothing wrong with dropping down to a lower level or jumping sideways to a slightly customized version that does just the right thing. e.g. If digitalWrite() isn't fast enough, somebody wrote a digitalWriteFast() that works with some AVRs. Otherwise, you can probably just hunt down the source yourself, make your own copy of it, and change it to be the way you need. That's a great way to learn, too
  • Follow-up to speeding up your code with registers: don't forget masking!
    1 project | /r/arduino | 14 Apr 2021

Arduino-IRremote

Posts with mentions or reviews of Arduino-IRremote. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-06-20.
  • Connect to wand?
    1 project | /r/MagiQuest | 10 Sep 2023
    However, there are plenty of libraries at this point which can handle the signal to varying degrees (some cant handle cast type but many dont care about that feature, including the game itself). I believe the most up to date currently is: https://github.com/Arduino-IRremote/Arduino-IRremote
  • ffffffff error in serial monitor
    1 project | /r/arduino | 8 Jul 2023
    RTFM. https://github.com/Arduino-IRremote/Arduino-IRremote : "...you must use the statement #include instead of #include in your main program..."
  • IRremote SendAndReceive
    1 project | /r/arduino | 6 Jul 2023
    /* * SendAndReceive.cpp * * Demonstrates sending IR codes and receiving it simultaneously * * This file is part of Arduino-IRremote https://github.com/Arduino-IRremote/Arduino-IRremote. * ************************************************************************************ * MIT License * * Copyright (c) 2021-2023 Armin Joachimsmeyer * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is furnished * to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * ************************************************************************************ */ #include // select only NEC and the universal decoder for pulse distance protocols #define DECODE_NEC // Includes Apple and Onkyo #define DECODE_DISTANCE_WIDTH // In case NEC is not received correctly. Universal decoder for pulse distance width protocols #define DECODE_SAMSUNG //#define EXCLUDE_UNIVERSAL_PROTOCOLS // Saves up to 1000 bytes program memory. //#define EXCLUDE_EXOTIC_PROTOCOLS // saves around 650 bytes program memory if all other protocols are active //#define NO_LED_FEEDBACK_CODE // saves 92 bytes program memory //#define RECORD_GAP_MICROS 12000 // Default is 5000. Activate it for some LG air conditioner protocols //#define SEND_PWM_BY_TIMER // Disable carrier PWM generation in software and use (restricted) hardware PWM. //#define USE_NO_SEND_PWM // Use no carrier PWM, just simulate an active low receiver signal. Overrides SEND_PWM_BY_TIMER definition //#define DEBUG // Activate this for lots of lovely debug output from the decoders. #include "PinDefinitionsAndMore.h" // Define macros for input and output pin etc. #include #define DELAY_AFTER_SEND 2000 #define DELAY_AFTER_LOOP 5000 void setup() { Serial.begin(9600); #if defined(__AVR_ATmega32U4__) || defined(SERIAL_PORT_USBVIRTUAL) || defined(SERIAL_USB) /*stm32duino*/|| defined(USBCON) /*STM32_stm32*/|| defined(SERIALUSB_PID) || defined(ARDUINO_attiny3217) delay(4000); // To be able to connect Serial monitor after reset or power up and before first print out. Do not wait for an attached Serial Monitor! #endif // Just to know which program is running on my Arduino Serial.println(F("START " __FILE__ " from " __DATE__ "\r\nUsing library version " VERSION_IRREMOTE)); // Start the receiver and if not 3. parameter specified, take LED_BUILTIN pin from the internal boards definition as default feedback LED IrReceiver.begin(IR_RECEIVE_PIN, ENABLE_LED_FEEDBACK); Serial.print(F("Ready to receive IR signals of protocols: ")); printActiveIRProtocols(&Serial); Serial.println(F("at pin " STR(IR_RECEIVE_PIN))); IrSender.begin(); // Start with IR_SEND_PIN as send pin and enable feedback LED at default feedback LED pin Serial.println(F("Send IR signals at pin " STR(IR_SEND_PIN))); #if FLASHEND >= 0x3FFF // For 16k flash or more, like ATtiny1604 // For esp32 we use PWM generation by ledcWrite() for each pin. # if !defined(SEND_PWM_BY_TIMER) && !defined(USE_NO_SEND_PWM) && !defined(ESP32) /* * Print internal software PWM generation info */ IrSender.enableIROut(38); // Call it with 38 kHz to initialize the values printed below Serial.print(F("Send signal mark duration is ")); Serial.print(IrSender.periodOnTimeMicros); Serial.print(F(" us, pulse correction is ")); Serial.print(IrSender.getPulseCorrectionNanos()); Serial.print(F(" ns, total period is ")); Serial.print(IrSender.periodTimeMicros); Serial.println(F(" us")); # endif // infos for receive Serial.print(RECORD_GAP_MICROS); Serial.println(F(" us is the (minimum) gap, after which the start of a new IR packet is assumed")); Serial.print(MARK_EXCESS_MICROS); Serial.println(F(" us are subtracted from all marks and added to all spaces for decoding")); #endif } uint16_t sAddress = 0xB24D; uint16_t sCommand = 0x3FD; uint8_t sRepeats = 1; /* * Send NEC IR protocol */ void send_ir_data() { Serial.print(F("Sending: 0x")); Serial.print(sAddress, HEX); Serial.print(sCommand, HEX); Serial.println(sRepeats, HEX); Serial.flush(); // To avoid disturbing the software PWM generation by serial output interrupts // clip repeats at 4 if (sRepeats > 4) { sRepeats = 4; } // Results for the first loop to: Protocol=NEC Address=0x102 Command=0x34 Raw-Data=0xCB340102 (32 bits) IrSender.sendSamsung48(sAddress, sCommand, sRepeats); } void receive_ir_data() { if (IrReceiver.decode()) { Serial.print(F("Decoded protocol: ")); Serial.print(getProtocolString(IrReceiver.decodedIRData.protocol)); Serial.print(F(", decoded raw data: ")); #if (__INT_WIDTH__ < 32) Serial.print(IrReceiver.decodedIRData.decodedRawData, HEX); #else PrintULL::print(&Serial, IrReceiver.decodedIRData.decodedRawData, HEX); #endif Serial.print(F(", decoded address: ")); Serial.print(IrReceiver.decodedIRData.address, HEX); Serial.print(F(", decoded command: ")); Serial.println(IrReceiver.decodedIRData.command, HEX); IrReceiver.resume(); } } void loop() { /* * Print loop values */ Serial.println(); Serial.print(F("address=0x")); Serial.print(sAddress, HEX); Serial.print(F(" command=0x")); Serial.print(sCommand, HEX); Serial.print(F(" repeats=")); Serial.println(sRepeats); Serial.flush(); send_ir_data(); IrReceiver.restartAfterSend(); // Is a NOP if sending does not require a timer. // wait for the receiver state machine to detect the end of a protocol delay((RECORD_GAP_MICROS / 1000) + 5); receive_ir_data(); delay(2000); // Loop delay }
  • pls need help with school project
    1 project | /r/arduino | 26 Jun 2023
    Maybe your use of decode() is not correct, it seems to have changed in newer versions. https://github.com/Arduino-IRremote/Arduino-IRremote
  • How do i build a homemade Infrared Sender?
    2 projects | /r/diyelectronics | 20 Jun 2023
    Use this library
  • IR receiver returns the same code for every button input
    2 projects | /r/arduino | 23 Mar 2023
    if (IrReceiver.decodedIRData.flags & IRDATA_FLAGS_WAS_OVERFLOW) { Serial.println(F("Overflow detected")); Serial.println(F("Try to increase the \"RAW_BUFFER_LENGTH\" value of " STR(RAW_BUFFER_LENGTH) " in " __FILE__)); // see also https://github.com/Arduino-IRremote/Arduino-IRremote#compile-options--macros-for-this-library } else { Serial.println(divider); Serial.print("protocol: "); Serial.print(getProtocolString(IrReceiver.decodedIRData.protocol)); Serial.print(" (0x"); Serial.print(IrReceiver.decodedIRData.protocol, HEX); Serial.println(")"); if (IrReceiver.decodedIRData.protocol != 0) { // Unknown protocol (typically due to a misread) is ignored. Serial.print("address: "); Serial.println(IrReceiver.decodedIRData.address, HEX); Serial.print("command: "); Serial.println(IrReceiver.decodedIRData.command, HEX); Serial.print("data: "); Serial.println(IrReceiver.decodedIRData.decodedRawData, HEX);
  • IRremote only returns ffffffff value
    1 project | /r/arduino | 22 Mar 2023
    GitHub - Arduino-IRremote/Arduino-IRremote: Infrared remote library for Arduino: send and receive infrared signals with multiple protocols
  • MQTT &amp; IR Receiver
    2 projects | /r/esp32 | 3 Feb 2023
    I have tried https://github.com/Arduino-IRremote/Arduino-IRremote and https://github.com/crankyoldgit/IRremoteESP8266, both cause the same error.
  • IRemote Library
    1 project | /r/arduino | 30 Nov 2022
    This is the library: https://github.com/Arduino-IRremote/Arduino-IRremote
  • Question about the possibility of automating a humidifier
    1 project | /r/arduino | 26 Nov 2022
    Easy! I've done something similar with a fan & light combo, basically if you use a library such as IRremote and an IR receiver, you can record all the it signals that the remote puts out, IRremote might even be able to automatically decode the signal into a code, but if not then you can record a raw sequence; then using an IR transmitter, you can resend those codes.

What are some alternatives?

When comparing Arduino-Libs and Arduino-IRremote you can also consider the following projects:

TaskScheduler - Cooperative multitasking for Arduino, ESPx, STM32, nRF and other microcontrollers

IRremoteESP8266 - Infrared remote library for ESP8266/ESP32: send and receive infrared signals with multiple protocols. Based on: https://github.com/shirriff/Arduino-IRremote/

ArduinoXInput - XInput library for USB capable Arduino boards

Adafruit_IO_Arduino - Arduino library to access Adafruit IO from WiFi, cellular, and ethernet modules.

Adafruit_Sensor - Common sensor library

FastLED - The FastLED library for colored LED animation on Arduino. Please direct questions/requests for help to the FastLED Reddit community: http://fastled.io/r We'd like to use github "issues" just for tracking library bugs / enhancements.

MD_MAX72XX - LED Matrix Library

AGirs - A Girs infrared server for the Arduino

CoopCommand - CoopCommand aims to increase automation in small scale egg-laying chicken flocks for the hobby farmer. Final product aims to have ease of installation and use for non-technical users.

ESP32_FFT_VU - A spectrum analyzer VU meter for the ESP32 and a FastLED matrix

EBYTE - Libraries to program and use UART-based EBYTE wireless data transceivers

ExtremeRacers-Speedometer - In-game speedometer brought to the real world