You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Protocols can be switched off and on by definining macros before the line `#incude <IRremote.h>` like [here](https://github.com/Arduino-IRremote/Arduino-IRremote/blob/master/examples/SimpleReceiver/SimpleReceiver.ino#L14):
23
23
24
24
```
@@ -34,6 +34,7 @@ This is a quite old but maybe useful wiki for this library.
34
34
This must be done also for all versions > 3.0.1 if `USE_NO_SEND_PWM` is defined.<br/>
35
35
Starting with this version, **the generation of PWM is done by software**, thus saving the hardware timer and **enabling abitrary output pins**.<br/>
36
36
Therefore you must change all `IrSender.begin(true);` by `IrSender.begin(IR_SEND_PIN, ENABLE_LED_FEEDBACK);`.
37
+
If you use a core that does not use the `-flto` flag for compile, you can activate the line `#define SUPPRESS_ERROR_MESSAGE_FOR_BEGIN` in IRRemote.h, if you get false error messages regarding begin() during compilation.
37
38
38
39
# Converting your 2.x program to the 3.x version
39
40
- Now there is an **IRreceiver** and **IRsender** object like the well known Arduino **Serial** object.
@@ -84,6 +85,7 @@ If you do not know which protocol your IR transmitter uses, you have several cho
84
85
since one IR diode requires only 1.5 volt.
85
86
- The line \#include "ATtinySerialOut.h" in PinDefinitionsAndMore.h (requires the library to be installed) saves 370 bytes program space and 38 bytes RAM for **Digispark boards** as well as enables serial output at 8MHz.
86
87
- The default software generated PWM has **problems on ATtinies running with 8 MHz**. The PWM frequency is around 30 instead of 38 kHz and RC6 is not reliable. You can switch to timer PWM generation by `#define SEND_PWM_BY_TIMER`.
88
+
- Minimal CPU frequency for receiving is 4 MHz, sive the 50 us timer ISR takes around 12 us on a 16 MHz ATmega.
87
89
88
90
# Examples
89
91
In order to fit the examples to the 8K flash of ATtiny85 and ATtiny88, the [Arduino library ATtinySerialOut](https://github.com/ArminJo/ATtinySerialOut) is required for this CPU's.
sentence=Send and receive infrared signals with multiple protocols
6
-
paragraph=Currently included protocols: Denon, JVC, LG, NEC, Panasonic / Kaseikyo, RC5, RC6, Samsung, Sharp, Sony, (Pronto), BoseWave, Lego, Whynter, MagiQuest.<br/><br/><b>New: </b><a href="https://github.com/Arduino-IRremote/Arduino-IRremote#converting-your-2x-program-to-the-3x-version">Upgrade instructions</a><br/>Generation of PWM is done by software by default, thus saving the hardware timer and enabling abitrary output pins. STM32 support added. Major refactoring of CPU dependent and feedback LED code.<br/>
6
+
paragraph=Currently included protocols: Denon / Sharp, JVC, LG, NEC / Apple, Panasonic / Kaseikyo, RC5, RC6, Samsung, Sony, (Pronto), BoseWave, Lego, Whynter, MagiQuest.<br/><br/><b>New: </b><a href="https://github.com/Arduino-IRremote/Arduino-IRremote#converting-your-program-to-the-31-version">Upgrade instructions</a><br/>Generation of PWM is now done by software by default, thus saving the hardware timer and enabling abitrary output pins. Fixed LG send bug. STM32 and ATtiny88 support added. Removed decode_results results. Renamed most irparams_struct values. The macros FEEDBACK_LED, SYSCLOCK, SENDPIN_ON and SENDPIN_OFF are not longer used / evaluated. Major refactoring of CPU dependent and feedback LED code.<br/>
* 15 pushs, 1 in, 1 eor before start of code = 2 us @16MHz + * 7.2 us computation time (6us idle time) + * pop + reti = 2.25 us @16MHz => 10.3 to 11.5 us @16MHz
1235
1235
* With portInputRegister and mask and Feedback LED code commented
1236
1236
* 9 pushs, 1 in, 1 eor before start of code = 1.25 us @16MHz + * 2.25 us computation time + * pop + reti = 1.5 us @16MHz => 5 us @16MHz
0 commit comments