• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Не работают библиотеки на основе IRrecv.h

Народ, с пол года, а то и почти год не занимался программированием. Последний проект делал в январе прошлого года и использовал приемник ИК для работы с ТВ пультами.
Сейчас решил поработать с ESP32. Взял плату DOIT ESP32 DEVKIT V1. Все прекрасно. Состыковал со всеми датчиками, по I2C подключил Attiny85 (портов не хватает). И вот решил подключить приемник ИК. Беру старые библиотеки, а они не работают. Я думал может в коде что. Беру пустой код и всего лишь делаю #include <IRrecv.h>. В среде Arduino IDE задаю проверку кода и выдает ошибки:
C:\Users\dimon\Documents\Arduino\libraries\IRremoteESP8266-2.8.4\src\IRrecv.cpp: In function 'void gpio_intr()':
C:\Users\dimon\Documents\Arduino\libraries\IRremoteESP8266-2.8.4\src\IRrecv.cpp:246:3: error: 'timerAlarmEnable' was not declared in this scope; did you mean 'timerAlarm'?
246 | timerAlarmEnable(timer);
| ^~~~~~~~~~~~~~~~
| timerAlarm
C:\Users\dimon\Documents\Arduino\libraries\IRremoteESP8266-2.8.4\src\IRrecv.cpp: In member function 'void IRrecv::enableIRIn(bool)':
C:\Users\dimon\Documents\Arduino\libraries\IRremoteESP8266-2.8.4\src\IRrecv.cpp:362:21: error: too many arguments to function 'hw_timer_t* timerBegin(uint32_t)'
362 | timer = timerBegin(_timer_num, 80, true);
| ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
In file included from C:\Users\dimon\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.1.1\cores\esp32/esp32-hal.h:98,
from C:\Users\dimon\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.1.1\cores\esp32/Arduino.h:36,
from C:\Users\dimon\Documents\Arduino\libraries\IRremoteESP8266-2.8.4\src\IRrecv.h:10,
from C:\Users\dimon\Documents\Arduino\libraries\IRremoteESP8266-2.8.4\src\IRrecv.cpp:6:
C:\Users\dimon\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.1.1\cores\esp32/esp32-hal-timer.h:35:13: note: declared here
35 | hw_timer_t *timerBegin(uint32_t frequency);
| ^~~~~~~~~~
C:\Users\dimon\Documents\Arduino\libraries\IRremoteESP8266-2.8.4\src\IRrecv.cpp:371:3: error: 'timerAlarmWrite' was not declared in this scope; did you mean 'timerWrite'?
371 | timerAlarmWrite(timer, MS_TO_USEC(params.timeout), ONCE);
| ^~~~~~~~~~~~~~~
| timerWrite
C:\Users\dimon\Documents\Arduino\libraries\IRremoteESP8266-2.8.4\src\IRrecv.cpp:375:23: error: too many arguments to function 'void timerAttachInterrupt(hw_timer_t*, void (*)())'
375 | timerAttachInterrupt(timer, &read_timeout, false);
| ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:\Users\dimon\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.1.1\cores\esp32/esp32-hal-timer.h:50:6: note: declared here
50 | void timerAttachInterrupt(hw_timer_t *timer, void (*userFunc)(void));
| ^~~~~~~~~~~~~~~~~~~~
C:\Users\dimon\Documents\Arduino\libraries\IRremoteESP8266-2.8.4\src\IRrecv.cpp: In member function 'void IRrecv::disableIRIn()':
C:\Users\dimon\Documents\Arduino\libraries\IRremoteESP8266-2.8.4\src\IRrecv.cpp:401:3: error: 'timerAlarmDisable' was not declared in this scope
401 | timerAlarmDisable(timer);
| ^~~~~~~~~~~~~~~~~
C:\Users\dimon\Documents\Arduino\libraries\IRremoteESP8266-2.8.4\src\IRrecv.cpp: In member function 'void IRrecv::resume()':
C:\Users\dimon\Documents\Arduino\libraries\IRremoteESP8266-2.8.4\src\IRrecv.cpp:428:3: error: 'timerAlarmDisable' was not declared in this scope
428 | timerAlarmDisable(timer);
| ^~~~~~~~~~~~~~~~~
Multiple libraries were found for "WiFi.h"
Used: C:\Users\dimon\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.1.1\libraries\WiFi
Not used: C:\Users\dimon\Documents\Arduino\libraries\WiFi
Not used: C:\Program Files (x86)\Arduino\libraries\WiFi
exit status 1
Error compiling for board DOIT ESP32 DEVKIT V1.
Где-то вычитал на буржуйских сайтах, мол комментируй эти места и все ОК. Будет. Закомментировал, все скомпелилось, но ИК не работает.
Пытался более новые версии качать, такая же фигня. И не могу найти ни одну библиотеку для ИК приемника, которая бы работала.
 
Сверху Снизу