資料介紹
PCB圖如下:
?
成分
604-WP56BID LED PTH 紅色閃爍 LED 625nm,40 mcd 金布萊特 |
× 1 |
電阻 220 0603 國(guó)巨 |
× 1 |
標(biāo)頭男 | × 1 |
A000066 阿杜諾 |
× 1 |
NodeMCU-32S Lua WiFi物聯(lián)網(wǎng)開(kāi)發(fā)板 | × 1 |
描述
Diy 錯(cuò)誤指示 LED 板
如何調(diào)試您的 Arduino 項(xiàng)目
過(guò)去編寫(xiě)過(guò)代碼的任何人都可以告訴您,它通常不會(huì)像最初預(yù)期的那樣工作。事實(shí)上,在編寫(xiě)代碼時(shí),調(diào)試是創(chuàng)作過(guò)程中必不可少的一部分。但是,Arduino 調(diào)試可能會(huì)稍微復(fù)雜一些。原因之一是 Arduino 沒(méi)有提供自定義調(diào)試工具。
開(kāi)始你的電路>>
大多數(shù)程序?qū)⑹褂谜{(diào)試器來(lái)幫助程序員定位錯(cuò)誤并解決它們。然而 Arduino 沒(méi)有這樣的調(diào)試系統(tǒng)。Arduino 調(diào)試是管理 Arduino 項(xiàng)目中更具挑戰(zhàn)性的任務(wù)之一。與大多數(shù)其他 IDE 不同,Arduino IDE 上沒(méi)有官方的 Arduino 調(diào)試功能。許多用戶對(duì)沒(méi)有專用的 Arduino 調(diào)試工具感到驚訝。
在 Arduino 上,一旦您運(yùn)行程序,您將無(wú)法看到設(shè)備內(nèi)部發(fā)生了什么以及您的代碼是如何運(yùn)行的。您獲得的唯一幫助是串行監(jiān)視器上的消息或 LED 顯示屏。尤其是當(dāng)其他 IDE 通常具有利用斷點(diǎn)、步驟、調(diào)用堆棧、監(jiān)視、本地/全局變量和其他組件來(lái)仔細(xì)檢查代碼的調(diào)試工具時(shí)。
但是,調(diào)試 Arduino 代碼與在 PC 上調(diào)試代碼不同。兩者在接觸方式上非常不同。其主要原因是 Arduino 代碼通常用于控制物理輸出或接收到/來(lái)自現(xiàn)實(shí)世界的物理輸入,并且調(diào)試過(guò)程必須考慮到這些。
在實(shí)踐中,這意味著 Arduino 開(kāi)發(fā)人員經(jīng)常不得不探索替代方法和工具來(lái)調(diào)試他們的代碼。在這篇文章中,我們將分解從 Arduino 代碼調(diào)試到使用模擬器調(diào)試 Arduino 的所有內(nèi)容。這將為您提供生成有效代碼所需的所有信息。
設(shè)計(jì)
在創(chuàng)建 Arduino 項(xiàng)目時(shí),項(xiàng)目的整體設(shè)計(jì)非常重要。從您開(kāi)始為項(xiàng)目選擇組件的那一刻起,您就需要清楚地了解您的最終產(chǎn)品。
例如,如果您想設(shè)計(jì)一個(gè)在 Arduino 板上運(yùn)行并點(diǎn)亮 LED 的草圖,您需要在項(xiàng)目的設(shè)計(jì)階段提供基礎(chǔ)。您的草圖和電路的整體設(shè)計(jì)將決定您完成的項(xiàng)目的外觀。
建造
就構(gòu)建項(xiàng)目而言,這是您真正賦予電路生命的地方。“構(gòu)建過(guò)程”是 Arduino IDE 將您的 C++ 草圖編譯成機(jī)器代碼的地方,然后直接上傳到您的 Arduino 板。
Circuito.io 代碼
你從 circuito.io 得到的代碼實(shí)際上是一個(gè)沒(méi)有任何邏輯的測(cè)試代碼。此測(cè)試代碼用于檢查您的所有組件是否正確接線并正常運(yùn)行。這有助于檢查您的硬件設(shè)置是否存在故障。circuito.io 還為您選擇的所有不同組件提供代碼庫(kù)。如果您的測(cè)試代碼失敗,那么您知道您需要開(kāi)始調(diào)試過(guò)程。
第 1 步:檢查您的硬件
如上所述,如果您的 circuito.io 代碼不起作用,那么您的硬件很可能有問(wèn)題。這意味著您需要開(kāi)始硬件調(diào)試。
以下是硬件問(wèn)題的一些基本故障排除步驟:
檢查接線 - 為電路接線時(shí),您應(yīng)該做的第一件事是檢查您是否正確連接了所有東西。如果您將跳線放置在 Arduino 的錯(cuò)誤引腳中,或者面包板上的位置錯(cuò)誤,您的程序?qū)o(wú)法與組件交互。仔細(xì)檢查所有組件和電線,以確保一切都安全到位。如果您有一個(gè)復(fù)雜的電路,有時(shí)最好從頭開(kāi)始,一次測(cè)試每個(gè)組件以消除問(wèn)題。
檢查焊接 - 如果您的某些部件在設(shè)置過(guò)程中需要焊接,請(qǐng)確保正確焊接它們。焊接不良的部件是技術(shù)故障的最常見(jiàn)原因之一。如果你不能告訴,重新焊接它。
檢查電源 - 如果您的電路仍有問(wèn)題,您需要檢查電源。使用萬(wàn)用表,您可以檢查 2 件事:
第二步:代碼調(diào)試
如果您的測(cè)試代碼有效,那么是時(shí)候編寫(xiě)您自己的代碼了。在編寫(xiě)自己的 Arduino 代碼時(shí),您應(yīng)該遵循一些基本規(guī)則和最佳實(shí)踐。按照下面的說(shuō)明,如果您稍后需要調(diào)試它,您將有一個(gè)更輕松的時(shí)間:
以小塊編寫(xiě)代碼并測(cè)試它們中的每一個(gè)。
為變量和函數(shù)提供有意義的名稱
使用函數(shù)
使用常量而不是數(shù)字
寫(xiě)評(píng)論以解釋編碼選擇以供將來(lái)參考
確保您的代碼具有適當(dāng)?shù)目s進(jìn)并始終保持可讀性。您可以使用 Alt-t 自動(dòng)縮進(jìn)整個(gè)草圖。
如果您在嘗試編譯或上傳代碼到您的開(kāi)發(fā)板時(shí)遇到編譯錯(cuò)誤,請(qǐng)檢查語(yǔ)法、拼寫(xiě)錯(cuò)誤等錯(cuò)誤。使用正確的語(yǔ)法對(duì)于確保您的代碼編譯至關(guān)重要。當(dāng)編譯失敗時(shí),IDE 將在其底部顯示錯(cuò)誤。但是,Arduino IDE 生成的錯(cuò)誤消息的描述有限,因此并不總是很有幫助。
如果您了解錯(cuò)誤消息的含義,請(qǐng)嘗試修復(fù)它指示的問(wèn)題并再次編譯。這是一種方便的 Arduino 故障排除形式。
但是,如果您解決了 IDE 中列出的錯(cuò)誤并且草圖仍然無(wú)法編譯,那么最好使用 Google 搜索問(wèn)題的解決方案。
常見(jiàn)的語(yǔ)法錯(cuò)誤是:
失蹤 ; 在每一行的末尾
括號(hào)錯(cuò)位或丟失 { }
未定義的變量和函數(shù)
Arduino 擁有一個(gè)大型開(kāi)源社區(qū),其中包含大量 Arduino 故障排除指南,可幫助您識(shí)別代碼問(wèn)題。一旦你解決了問(wèn)題并且你的代碼可以工作,點(diǎn)擊運(yùn)行。
運(yùn)行代碼
如果您的代碼編譯并成功上傳到開(kāi)發(fā)板,但沒(méi)有按預(yù)期運(yùn)行,您需要開(kāi)始調(diào)試。
串行監(jiān)視器
如上所述,如果在嘗試運(yùn)行草圖時(shí)代碼失敗,則需要開(kāi)始調(diào)試代碼。首先,考慮并定義要打印的參數(shù)并使用串行監(jiān)視器在屏幕上進(jìn)行監(jiān)視(您可以在此處學(xué)習(xí)串行打印的基礎(chǔ)知識(shí))。目的是打印程序當(dāng)前狀態(tài)的概述。像這樣:
變量
輸入——傳感器讀數(shù)
指示程序流程的打印,例如在“if”語(yǔ)句中查看是否滿足條件
輸出——例如在將它們寫(xiě)入引腳之前的 PWM 值
任何您認(rèn)為重要的要打印到屏幕上的東西
手動(dòng)檢查您的代碼
評(píng)估代碼質(zhì)量和檢查錯(cuò)誤的一種好方法是手動(dòng)檢查代碼。您可以通過(guò)以下方式做到這一點(diǎn):
從頭開(kāi)始編寫(xiě)代碼并將其分解以查看您是否在此過(guò)程中犯了任何錯(cuò)誤(最常見(jiàn)的是語(yǔ)法錯(cuò)誤)。
重新審視你的設(shè)計(jì)并詢問(wèn)你的主要邏輯是什么。用文字把它寫(xiě)下來(lái),然后看看你的代碼語(yǔ)句是否回答了這個(gè)問(wèn)題。有時(shí)當(dāng)我們深入編程時(shí),我們會(huì)犯錯(cuò)誤,專注于小細(xì)節(jié)而忽略了項(xiàng)目的整體方向。在這種狀態(tài)下,很容易與最初的想法失去聯(lián)系。
查看您的代碼并添加注釋(盡可能多地)向自己解釋您正在嘗試做什么。
第三步:使用外部軟件調(diào)試工具
如果您手動(dòng)檢查代碼但仍然找不到問(wèn)題,那么是時(shí)候使用高級(jí)調(diào)試工具了。許多 IDE 都有自己的板載調(diào)試工具,而 Arduino 沒(méi)有。但是,您可以使用許多外部工具來(lái)確保您的代碼正確運(yùn)行。如果您需要高級(jí)調(diào)試和仿真選項(xiàng),可以考慮以下一些最佳工具:
視覺(jué)微
Visual micro 是一個(gè)可通過(guò) Microsoft Visual Studio 獲得的插件,用于在 Arduino 上創(chuàng)建跨平臺(tái)程序。在 Visual Micro 中創(chuàng)建的任何符合 Arduino 的代碼都將被接受。Visual Micro 非常適合協(xié)作團(tuán)隊(duì)調(diào)試 Arduino,因?yàn)樗С止蚕泶a和庫(kù)編輯。可以跨不同平臺(tái)創(chuàng)建代碼,并在整個(gè)構(gòu)建過(guò)程中與程序代碼結(jié)合。Visual Micro 還提供 GDB 調(diào)試和串行、藍(lán)牙和 Wifi 調(diào)試。
愛(ài)特梅爾工作室
Atmel Studio IDE 是一款免費(fèi)軟件,它提供有競(jìng)爭(zhēng)力的調(diào)試工具來(lái)幫助解決代碼錯(cuò)誤。通過(guò) Atmel Studio,可以開(kāi)發(fā)、編譯并上傳項(xiàng)目到相關(guān)的微處理器。與 Arduino IDE 一樣,Atmel Studio 的 IDE 使用相同的代碼,這意味著您無(wú)需學(xué)習(xí)新的編程語(yǔ)言即可使用它。Atmel 對(duì)于開(kāi)源社區(qū)非常通用,并支持 .ino 草圖和 C++ 源代碼。Atmel Studio 還使用 DebugWire 或 JTAG 提供了非常好的調(diào)試功能。
調(diào)試線
DebugWire 是 Atmel 的一種協(xié)議,用于在沒(méi)有 JTAG 的情況下調(diào)試許多 ATtiny(例如 ATtiny 13、85)和 ATmegas(例如 ATmega48/88/168/328),僅通過(guò)復(fù)位引腳。Atmel 沒(méi)有記錄 DebugWire 協(xié)議,但有些人對(duì)協(xié)議的大部分進(jìn)行了逆向工程,并且能夠構(gòu)建一些簡(jiǎn)單的調(diào)試器。通過(guò)使用 debugWIRE,可以對(duì)所有內(nèi)存進(jìn)行完全讀寫(xiě)訪問(wèn),并完全控制執(zhí)行流程。它支持單步、運(yùn)行到光標(biāo)、步出和軟件中斷指令。
第 4 步:使用 Arduino 模擬器和仿真器
可用于監(jiān)控和調(diào)試的更多工具是 Arduino 仿真器和模擬器。Arduino 模擬器讓專家和愛(ài)好者比以往任何時(shí)候都更容易對(duì)他們的想法進(jìn)行編程和測(cè)試,直到他們高效運(yùn)行。硬件模擬是一個(gè)復(fù)雜的過(guò)程,雖然在行業(yè)中有用于硬件調(diào)試的驚人工具,但這些工具對(duì)于制造商和愛(ài)好者來(lái)說(shuō)非常有限。
但是,模擬器和仿真器仍然在 Arduino 用戶的調(diào)試工具包中占有一席之地。Arduino 模擬器支持線對(duì)線調(diào)試,允許用戶查看他們的代碼并確定哪里出錯(cuò)了。以下是使用模擬器的一些優(yōu)點(diǎn):
調(diào)試
如上所述,模擬器非常適合調(diào)試 Arduino,無(wú)論是在語(yǔ)法錯(cuò)誤還是功能錯(cuò)誤方面。使模擬器適合調(diào)試的原因在于您可以編寫(xiě)代碼并創(chuàng)建電子電路來(lái)測(cè)試代碼的完整性。一些模擬器將為您提供有限的硬件庫(kù)以供您測(cè)試,而其他模擬器則允許您開(kāi)發(fā)復(fù)雜的虛擬環(huán)境。今天,您甚至可以使用模擬器以 3D 形式渲染您的項(xiàng)目。
模擬器提供的最大優(yōu)勢(shì)之一是透明度。運(yùn)行模擬時(shí),您可以準(zhǔn)確了解代碼的工作方式并確定可以改進(jìn)的方法。這使您可以運(yùn)行新代碼而不必?fù)?dān)心損壞您的電路板或設(shè)備。
與 IDE 和硬件設(shè)置相比,模擬器允許用戶糾正功能性編程錯(cuò)誤。如果沒(méi)有模擬器,您只能解決代碼中的非功能性技術(shù)錯(cuò)誤,例如語(yǔ)法錯(cuò)誤。這使得模擬器成為新用戶的理想選擇,這些用戶在獲得成品之前需要經(jīng)歷大量的試驗(yàn)和錯(cuò)誤。通過(guò)模擬器測(cè)試代碼可確保硬件保持運(yùn)行,從而節(jié)省時(shí)間和金錢(qián)。
繪圖和記錄
模擬器不僅允許您測(cè)試代碼的運(yùn)行方式,還允許您記錄和繪制生成的數(shù)據(jù)。您可以記下您的編程數(shù)據(jù)并將其繪制在 Excel 等外部程序上。在您的程序和其他設(shè)備上記錄數(shù)據(jù)有助于開(kāi)發(fā)有助于改進(jìn)編碼的見(jiàn)解。
實(shí)驗(yàn)
在實(shí)驗(yàn)方面,模擬器和仿真器也很難被擊敗。如果沒(méi)有模擬器,用戶只能根據(jù)他們的理論知識(shí)創(chuàng)建代碼,并且嘗試新代碼和新組件的機(jī)會(huì)有限(尤其是當(dāng)錯(cuò)誤導(dǎo)致硬件損壞時(shí))。使用模擬器,您可以在虛擬環(huán)境中測(cè)試代碼并嘗試新想法,而不必?fù)?dān)心最終結(jié)果。
測(cè)試新組件
同樣,模擬器為您提供了一種在您扣動(dòng)扳機(jī)并進(jìn)行購(gòu)買(mǎi)之前測(cè)試組件的方法。通過(guò)這種方式,您可以查看某個(gè)部分是否對(duì)您的項(xiàng)目有用,并練習(xí)將其集成到您的整體環(huán)境中。這樣可以確保您不會(huì)浪費(fèi)金錢(qián)購(gòu)買(mǎi)幾乎沒(méi)有用的零件。
為電子電路創(chuàng)建藍(lán)圖
在構(gòu)建電子電路時(shí),您可以使用模擬器來(lái)設(shè)計(jì)、構(gòu)建和預(yù)覽原理圖。這減少了需要手動(dòng)繪制電子電路藍(lán)圖的大量繁瑣工作,從而節(jié)省了您的時(shí)間。此外,它還確保末端電路設(shè)計(jì)得到充分優(yōu)化。
流行模擬器
1. Tinkercad 上的電子實(shí)驗(yàn)室(以前稱為circuits.io)
Circuits.io 平臺(tái)使用戶可以輕松地通過(guò)電路模擬器模擬真實(shí)世界的電子設(shè)備。該在線模擬器允許用戶拖入 Arduino 板并開(kāi)始編程。它還為用戶提供電路圖制作器、萬(wàn)用表測(cè)量工具和示波器。這個(gè) Arduino 模擬器允許您從頭開(kāi)始構(gòu)建您的設(shè)計(jì),同時(shí)使您能夠?qū)φ麄€(gè)電路的電源進(jìn)行精確測(cè)量。
2.虛擬面包板
Virtual Breadboard 已成為當(dāng)今最強(qiáng)大、最先進(jìn)的 Arduino 模擬器之一。Virtual Breadboard 在電子電路行業(yè)中得到了發(fā)展,如今可以模擬 Arduino 設(shè)備、Netduino 和 PIC 微控制器。在啟動(dòng)時(shí),用戶可以訪問(wèn)一個(gè)完整的虛擬開(kāi)發(fā)環(huán)境,他們可以在其中直接對(duì) Arduino 板進(jìn)行編程。還值得注意的是,它也可以充當(dāng) AVR 模擬器。
調(diào)試 Arduino 并不困難
當(dāng)您開(kāi)始使用 Arduino 時(shí),調(diào)試似乎是一個(gè)復(fù)雜的過(guò)程,但如果您將其分解為多個(gè)步驟,您可能能夠克服這些問(wèn)題并在此過(guò)程中學(xué)到很多東西。
正如您在本指南中看到的那樣,有多種外部工具可以幫助您,但最好的調(diào)試方法是反復(fù)試驗(yàn),在此過(guò)程中識(shí)別故障并隨時(shí)修復(fù)它們。
另一種可以幫助您減少遇到的錯(cuò)誤數(shù)量的方法是嚴(yán)格使用語(yǔ)法。這將確保在調(diào)試代碼時(shí),您不必篩選在編寫(xiě)過(guò)程中可能已消除的語(yǔ)法錯(cuò)誤。
與帶有板載調(diào)試器的 IDE 相比,調(diào)試 Arduino 可能非常不方便。如果您在將代碼放入第三方調(diào)試器之前對(duì)其進(jìn)行測(cè)試、編譯和運(yùn)行,您將能夠順利生成高質(zhì)量的代碼。同樣,如果您迷路了,這里有一個(gè)充滿活力的開(kāi)源社區(qū)可以提供幫助。
代碼
代碼
arduino_mega-code.ino
代碼 2
nodemcu-code.ino
?
?
- DIY LED消防燈
- 鴻利光顯科技 LED指示燈 HL-PST-1608S22OC數(shù)據(jù)手冊(cè)
- 鴻利光顯科技 LED指示燈 HL-PST-1608H233WB數(shù)據(jù)手冊(cè)
- DIY ARDUINO UNO板
- 大馳海爾WiFi板帶7段LED指示燈REV7
- DIY LED燈光徽章
- DIY智能模塊化LED燈板
- ADP8866控制背光照明和LED指示燈的設(shè)置資料下載
- DIY LC洞洞板PCB畫(huà)圖軟件免費(fèi)下載 63次下載
- 品管手提燈帶電量指示10W-234LED帶電量指示光伏LED控制板資料說(shuō)明 0次下載
- 如何自己DIY制作一個(gè)印制電路板 0次下載
- Diy layout Creater最新漢化版免費(fèi)下載(洞洞板板上畫(huà)PCB的專業(yè)工具) 0次下載
- 膽機(jī)DIY發(fā)燒友所犯錯(cuò)誤手記 0次下載
- FPGA開(kāi)發(fā)板DIY腳本文件 73次下載
- CANopen指示燈規(guī)范
- 一文讀懂CAN通訊錯(cuò)誤幀 2060次閱讀
- 一文讀懂CAN控制器錯(cuò)誤處理的原理 1278次閱讀
- DIY個(gè)人的Linux開(kāi)發(fā)板教程 1368次閱讀
- 溫度記錄儀LED指示燈電路原理圖 698次閱讀
- 三菱PLC指示燈的含義,如何根據(jù)指示燈判斷PLC故障 2.4w次閱讀
- DIY一個(gè)12V的電壓指示燈 6823次閱讀
- 220V AC電源LED指示燈電路圖 1.1w次閱讀
- LED溫度指示器電路圖分析 2109次閱讀
- 采用LM324制作的LED電平指示器電路設(shè)計(jì) 1.2w次閱讀
- LED指示燈發(fā)生虛亮的原因及解決方法 3w次閱讀
- LED電平指示驅(qū)動(dòng)集成電路 6944次閱讀
- LED電源指示燈電路 1.9w次閱讀
- LED指示燈應(yīng)用設(shè)計(jì)和選擇,搞懂其實(shí)并不難 1.7w次閱讀
- 簡(jiǎn)單DIY印制電路板設(shè)計(jì)制作過(guò)程 4.9w次閱讀
- led指示燈電路圖大全(八款led指示燈電路設(shè)計(jì)原理圖詳解) 25.8w次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來(lái)的未來(lái)-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開(kāi)發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報(bào)告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊(cè)
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書(shū))
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德?tīng)栔?/a>
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論
查看更多