主要的问题是IRremote 使用了ATmega328中的TIMER2,导致TIMER2对应的3号与11号引脚无法使用。
修改的方法如下,针对旧版的IRremote,可以修改IRremoteBoardDefs.h文件,而针对新版的IRremote,文件名已有改动,需要修改IRTimer.hpp。本文中的版本为IRremote 3.9.0。
IRremoteBoardDefs.h或IRTimer.hpp具体的存储位置可能有两个,一个是在ARDUINO安装目录下,或者在“我的文档”的ARDUINO文件夹之下。
具体如下:
Arduino\libraries\Arduino-IRremote-master\src\private\IRremoteBoardDefs.h
或
Arduino\libraries\IRremote\src\private\IRTimer.hpp
找到之