重點參考 :
Arduino-透過IRremote函式庫(Ver3.5.3)實現紅外線模組接收及發送Jan 25-2022
更新的IRremote库实例2023-1-23 https://www.arduino.cn/thread-342990-1-1.html
[接收]
#include <IRremote.hpp>
void setup()
{
Serial.begin(115200);
IrReceiver.begin(7, ENABLE_LED_FEEDBACK); // PIN7收IR
}
void loop() {
if (IrReceiver.decode()) {
Serial.println(IrReceiver.decodedIRData.decodedRawData, HEX);
IrReceiver.printIRResultShort(&Serial); // optional use new print version
IrReceiver.resume(); // Enable receiving of the next value
}
}
原出處用PIN3收IR,但我用7。
我收到的是
B04F3000
Protocol=NEC Address=0x3000 Command=0x4F Raw-Data=0xB04F3000 32 bits LSB first
[發射]
-----------
前期失敗過程
用ESP32系列的NodeMCU-32S,其實也不確定是不是真得是NodeMCU-32S
但IDE選NodeMCU-32S可以正常燒錄,沒有報錯說選錯板子型號
紅外線接收得到,但很怪,
每次收到的不一定一樣,而且也不會一直都能收到
常常五分鐘內只能收到十幾個次,
於是懷疑是接收器的問題,頻率28KHz沒有錯,
但可能有其他不一樣的地方,
但事後證明不是接收器的問題,
只能說既然換官方的 UNO Rev3 就馬上正常解決,
也就是ESP32雖然是相容,
但有太多可能的問題需要克服,
UNO也不貴,
如果單純開發簡單功能如本篇,只是要紅外線收發,
那還是先直接從較單純的Arduino官方版本開始會比較經濟。