Проблема:
Если в скетче (для Arduino UNO) используется библиотека IRremote: include "IRremote.h" то скетч перестает компилироваться, при наличии в тексте скетча функций tone() и/или noTone().
Причина:
По умолчанию используется один и тот же аппаратный таймер TIMER2.
Вариант решения:
Перенастроить библиотеку IRremote на использование таймера TIMER1. Для этого необходимо выполнить следующие действия: 1. Закрыть программу Arduino IDE (если она открыта). 2. Найти и открыть в текстовом редакторе файл boarddefs.h (полное имя файла по умолчанию C:\Program Files (x86)\Arduino\libraries\IRremote\boarddefs.h); 3. Найти строковый блок: #else // Arduino Duemilanove, Diecimila, LilyPad, Mini, Fio, Nano, etc // ATmega48, ATmega88, ATmega168, ATmega328 //#define IR_USE_TIMER1 // tx = pin 9 #define IR_USE_TIMER2 // tx = pin 3 #endif 4. Изменить его следующим образом: #else // Arduino Duemilanove, Diecimila, LilyPad, Mini, Fio, Nano, etc // ATmega48, ATmega88, ATmega168, ATmega328 #define IR_USE_TIMER1 // tx = pin 9 //#define IR_USE_TIMER2 // tx = pin 3 #endif 5. Сохранить файл.
Дата: 01.06.2022