為 DCC 控制器設置 ARDUINO IDE

用於 DCC 控制器的 Arduino IDE 設置
步驟 1. IDE 環境搭建。 加載 ESP 板。
當您第一次安裝 Arduino IDE 時,它只支持基於 ARM 的開發板。 我們需要添加對基於 ESP 的電路板的支持。 導航 File… 喜好


在下面的附加板管理器中輸入此行 URLS盒。 注意裡面有下劃線,沒有空格。 http://arduino.esp8266.com/stable/package_esp8266com_index.json,https://dl.espressif.com/dl/package_esp32_index.json
還要選中在編譯期間顯示詳細信息的框。 如果在編譯過程中出現問題,這會為我們提供更多信息。
請注意,上面的行添加了對 esp8266 設備和更新的 esp32 的支持。 兩個json字符串用逗號隔開。
現在選擇板 2.7.4版 來自董事會經理

安裝版本 2.7.4。 這行得通。 版本 3.0.0 及更高版本不適用於此項目。 現在,返回“工具”菜單,選擇您將使用的電路板。 對於這個項目,它將是 nodeMCU 1.0 或 WeMos D1R1

這裡我們選擇 WeMos D1R1。 (從 Nano 改變這個)
步驟 2. IDE 環境搭建。 加載 ESP8266 草圖數據上傳插件。
我們需要加載此加載項以允許我們發布(放置)HTML 頁面和其他 files 在 ESP 設備上。 這些位於項目文件夾內的數據文件夾中 https://github.com/esp8266/arduino-esp8266fs-plugin/releases
前往 URL 以上並下載 ESP8266FS-0.5.0.zip。
在 Arduino 文件夾中創建一個 Tools 文件夾。 解壓 zip 的內容 file 到這個工具文件夾。 你應該結束這個;

一個新的菜單選項將出現在工具下...

如果調用該菜單選項,IDE 會將數據文件夾的內容上傳到電路板。 好的,這就是為一般 ESP8266 使用設置的 IDE 環境,現在我們需要為這個特定項目將一些庫添加到 Arduino/Libraries 文件夾中。
步驟 3. 下載庫並手動安裝。
我們需要從Github上下載這些庫; https://github.com/me-no-dev/ESPAsyncTCP

單擊代碼,然後下載 zip。 它將轉到您的下載文件夾。 進入下載,找到 zip,打開它並將內容文件夾“ESPAsyncTCP”拖到 Arduino/libraries。
如果文件夾名稱以“-master”結尾,則重命名它以從末尾刪除“-master”。
即來自下載

打開 ESPAsyncTCP-master 的 .zip,並將 ESPAsyncTCP-master 文件夾從裡面拖到 Arduino/Libraries

筆記: Arduino/libraries 不能使用.zip 版本,需要解壓(拖拽)到需要的文件夾。 我們還需要 https://github.com/fmalpartida/New-LiquidCrystal
下載 zip 然後將其內容拖到 Arduino/libraries 並刪除 -master 結尾。
最後,我們需要以下鏈接中的 ArduinoJson-5.13.5.zip https://www.arduinolibraries.info/libraries/arduino-json
下載然後將 zip 內容拖到 Arduino/libraries
第 4 步。使用 Arduino Library Manager 安裝更多的庫。
我們還需要兩個庫,它們來自 Arduino 庫管理器,它包含一系列內置庫。 轉到工具...管理庫...


使用 Adafruit INA1.0.3 的 219 版。 這行得通。
還有

使用版本 2.1.0 的 Web來自 Markus Sattler 的套接字,這已經過測試並且可以正常工作。 我沒有測試過以後的版本。
好的,這就是 IDE 編譯該項目所需的所有庫(也稱為引用)。
步驟 5. 從 GitHub 下載 ESP_DCC_Controller 項目並在 IDE 中打開。
去GitHub下載 https://github.com/computski/ESP_DCC_controller
單擊綠色的“代碼”按鈕,然後下載 zip。 然後打開拉鍊 file 並將其內容移至 Arduino 文件夾。 重命名文件夾以刪除以文件夾名稱結尾的“-main”。 您最終應該在 Arduino 文件夾中找到一個文件夾 ESP_ DCC_ controller。 它將包含一個 .INO file, 各種 .H 和 .CPP files 和一個數據文件夾。

雙擊.INO file 在 Arduino IDE 中打開項目。
在我們點擊編譯之前,我們需要根據您的要求進行配置……
步驟 6. 在 Global 中設置您的要求。 H
該項目可以支持 nodeMCU 或 WeMo 的 D1R1,還可以支持多種不同的電源板(電機屏蔽)選項,此外還可以支持 I2C 總線上的設備,如電流監視器、LCD 顯示器和鍵盤。 最後它還可以支持一個轉輪(旋轉編碼器)。 您可以做的最基本的構建是 WeMo 的 D1R1 和 L298 電機防護罩。
請注意,禁用選項的最簡單方法是在#define 語句中的名稱前添加一個小寫的 n。
#定義nNODEMCU_OPTION3
#定義nBOARD_ESP12_SHIELD
#定義 WEMOS_D1R1_AND_L298_SHIELD
對於前ample,上面的 NODEMCU_OPTION3 已被 n 禁用,nBOARD_ESP12_SHIELD 也一樣。 WEMOS_D1R1_AND_L298_SHIELD 是活動選項,這將導致編譯器使用下面列出的配置。
要遍歷此配置:
#elif 定義(WEMOS_D1R1_AND_L298_SHIELD)
/*Wemos D1-R1 與 L298 shield 堆疊在一起,請注意 D1-R2 是具有不同引出線的較新型號*/
/*切斷 L298 屏蔽板上的製動跳線。 這些不是必需的,我們不希望它們由 I2C 引腳驅動,因為它會破壞 DCC 信號。
該板具有 Arduino 外形,引腳如下
D0 GPIO3 接收
D1 GPIO1 發送
D2 GPIO16 心跳和滾輪按鈕(高電平有效)
D3 GPIO5 DCC 啟用(脈寬調製)
D4 GPIO4 點動 1
D5 GPIO14 DCC 信號(方向)
D6 GPIO12 DCC 信號(方向)
D7 GPIO13 DCC 啟用(脈寬調製)
D8 GPIO0 SDA,帶 12k 上拉
D9 GPIO2 SCL,帶 12k 上拉
D10 GPIO15 點動 2
以上是人類的注意事項,讓您知道哪些 ESP GPIO 將執行哪些功能。 請注意, Arduino D1-D10 到 GPIO 映射不同於節點 MCU D1-D10 到 GPIO 映射 */
#定義 USE_ANALOG_MEASUREMENT
#define ANALOG_SCALING 3.9 //並聯使用A和B時(2.36匹配萬用表RMS)
我們將在 ESP 上使用 AD,而不是外部 I2C 電流監控設備,例如 INA219 禁用
如果您確實希望使用 INA219,請使用 n USE_ ANALOG_ MEASUREMENT
#define PIN_HEARTBEAT 16 //和滾輪按鈕
#定義 DCC_PINS \
uint32 dcc_info[4] = { PERIPHS_IO_MUX_MTDI_U, FUNC_GPIO12, 12, 0 }; \
uint32 enable_info[4] = { PERIPHS_IO_MUX_MTDI_U, FUNC_GPIO5, 5 , 0 }; \
uint32 dcc_infoA[4] = { PERIPHS_IO_MUX_MTDI_U, FUNC_GPIO14, 14, 0 }; \
uint32 enable_infoA[4] = { PERIPHS_IO_MUX_MTDI_U, FUNC_GPIO13,13 , 0 };
定義哪些引腳將驅動 DCC 信號,我們有兩個同相運行的通道,因此我們可以將它們共用在一起。 A通道是dcc_info[],B通道是dcc_infoA[]。 這些被定義為宏,反斜杠是一個行繼續標記。
#define PIN_SCL 2 //12k 上拉
#define PIN_SDA 0 //12k 上拉
#定義PIN_JOG1 4
#define PIN_JOG2 15 //12k下拉
定義驅動 I2C SCL/SDA 的引腳 (GPIO),然後定義滾輪輸入 1 和 2
#define KEYPAD_ADDRESS 0x21 //pcf8574
用於可選的 4 x 4 矩陣鍵盤,使用 pcf8574 芯片掃描
//地址,en,rw,rs,d4,d5,d6,d7,背光,極性。 我們將其用作 4 位設備//我的顯示引出線是 rs、rw、e、d0-d7。 僅使用 d<4-7>。 <210> 出現是因為位 <012> 被 // 映射為 EN、RW、RS 並且我們需要根據硬件上的實際順序對它們重新排序,3 被映射 // 到背光。 <4-7> 依次出現在背包和顯示屏上。
#define BOOTUP_LCD LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); //Yw機器人背包
用於定義和配置驅動 2 LCD 顯示器(可選)的 I1602C 背包,這是可軟配置的,並且有多個背包可用,其引腳配置各不相同。
#endif
步驟 7. 編譯並上傳到開發板。
現在您已經配置了您打算使用的板組合,您可以編譯該項目。 如果您不打算使用 4×4 矩陣鍵盤和 LCD,沒問題,請保留它們的定義,因為軟件希望配置它們。 沒有它們,系統將通過 WiFi 正常工作。
在 IDE 上,勾號(驗證)實際上是“編譯”。 單擊此按鈕,當系統編譯各種庫並將它們鏈接在一起時,您將看到各種消息出現(前提是您啟用了詳細編譯)。 如果一切正常,並且如果您完全按照上述所有步驟操作,那麼您應該會看到一條成功消息。 您現在可以點擊右箭頭(上傳)按鈕,但在執行此操作之前,請檢查您是否在“工具”菜單下為開發板選擇了正確的 COM 端口。
上傳成功後(使用質量好的 USB 數據線)您還需要調用 加載 ESP8266 草圖數據菜單 工具下的選項。 這會將數據文件夾的內容放到設備上(所有 HTML 頁面)。
你完成了。 打開串行監視器,單擊重置按鈕,您應該會看到設備啟動並掃描 I2C 設備。 您現在可以通過 Wifi 連接到它,並準備好連接到它的電源板(電機屏蔽)。
文件/資源
![]() |
為 DCC 控制器設置 ARDUINO IDE [pdf] 指示 為 DCC 控制器設置 IDE,為 DCC 控制器設置 IDE,為 DCC 控制器設置,DCC 控制器 IDE 設置,DCC 控制器 |




