Lỗi tkd2 was not declared in this scope năm 2024

新版的 Arduino IDE 在使用 IR Library 時會編譯錯誤,如下圖:

導致錯誤的原因是因為在 IRremoteTools.cpp 裡面沒有宣告 'TKD2' 變數。

歸根究底的原因是新版的 IDE 會讀取內建的紅外線函式庫,而這個內建的紅外線函式庫是專為 Adafruit 公司產品訂製的,如果你沒有該公司的產品可能就無法使用它的函式庫。

那麼該如何解決這個問題呢?

解決辦法有很多種,其中一種是去修改 RobotIRremote.cpp,但這個方法對於不熟悉 C 語言的人來說似乎是有點困難,有可能會愈弄愈糟。

另一種辦法是用其他可用的紅外線函式庫取代內建的 RobotIRremote Library,此舉應該是最簡單又安全的作法了。

下載 IR Library //github.com/coopermaa/Arduino-IRremote/archive/master.zip

下載後解壓縮,將資料夾名稱更改為「IRremote」,然後複製到 [Arduino]\libraries 路徑下,再重新啟動 Arduino IDE 即可。

你也可以把 Robot_Control、Robot_Motor 和 RobotIRremote 這幾個資料夾移除掉,這樣並不會影響紅外線函式庫的運作。

檢查新的紅外線函式庫是否正常運作

我們可以開啟內建的範例程式:

1. 點擊下拉功能表 File > Examples > IRremote > IRrecvDemo

2. 點擊工具列的 Upload 按鈕。

成功編譯,如下圖:

Hey. I ran into a problem. The program does not allow me to compile my project. An error: 'D2' was not declared in this scope.

include

include

include

include

include

include

include

include

include

include

include

include

include

include

include

include

include

include

include

include

include

include

include

define USE_DISPLAY /*

Chủ Đề