Arduino Uno 是由一個(gè)非常大的開發(fā)人員社區(qū)支持的最常用的微控制器之一。成本和易用性使 Arduino 板成為制作簡(jiǎn)單DIY 電子項(xiàng)目的有吸引力的選擇。模擬器用于加速編寫和調(diào)試代碼的過程,因?yàn)槟恍枰魏斡布?,也不必進(jìn)行任何物理連接來測(cè)試您的程序。此外,模擬器簡(jiǎn)化了調(diào)試過程,尤其是在懷疑軟件錯(cuò)誤和硬件問題的情況下。在本教程中,我們將學(xué)習(xí) UnoArduSim,這是一個(gè)具有Arduino Uno和 Mega 板的模擬器,并且可以選擇最多 24 個(gè) I/O 設(shè)備。
什么是 UnoArduSim?
UnoArduSim 由加拿大安大略省皇后大學(xué)的 Simmons 教授開發(fā)。他利用該平臺(tái)為電氣與計(jì)算機(jī)工程系二年級(jí)的學(xué)生授課。開發(fā)圖形模擬器是為了讓學(xué)生無需任何額外硬件即可測(cè)試他們的機(jī)器人代碼。
UnoArduSim 是一個(gè)Arduino 模擬器,可讓您在 Arduino Uno 和 Arduino Mega 板上進(jìn)行實(shí)時(shí)代碼調(diào)試。該模擬器用于編譯和測(cè)試代碼。它 支持除“goto”指令之外的所有原生 Arduino 語言元素。此外,它不支持的一些 C/C++ 語言元素包括 Bit-saving、union 和古怪的“逗號(hào)運(yùn)算符”也不支持。
界面
這個(gè)模擬器有一個(gè)非?;?dòng)和易于理解的界面。Simulator 的界面大致分為三個(gè)部分。代碼窗格、變量窗格和實(shí)驗(yàn)室工作臺(tái)窗格。除了 3 個(gè)窗格之外,還有一個(gè)包含所有菜單選項(xiàng)的菜單欄和一個(gè)包含用于快速操作的圖標(biāo)的工具欄。下圖顯示了 UnoArduSim 的界面。
代碼窗格
從名稱本身,我們可以理解代碼窗格包含代碼或程序。代碼窗格可用于跟蹤程序運(yùn)行時(shí)的執(zhí)行情況,它還以紅色突出顯示代碼中的任何錯(cuò)誤。
雙擊代碼窗格打開編輯/視圖,您可以在其中修改代碼。它有一個(gè)有用的功能,讓您可以方便地從提供的列表中選擇要包含在代碼中的內(nèi)置函數(shù)調(diào)用(或內(nèi)置“#define”常量)。它還提供了自動(dòng)添加分號(hào)或突出顯示功能的選項(xiàng)。
變量窗格
它位于屏幕左下角的代碼窗格下方。它包含每個(gè)用戶的當(dāng)前值。該窗口還顯示執(zhí)行期間的變量值。
實(shí)驗(yàn)室工作臺(tái)窗格
實(shí)驗(yàn)室工作臺(tái)窗格顯示選定的 Arduino 板,即 Uno 或 Mega。它還具有使用配置選項(xiàng)選擇的不同外圍設(shè)備。Lab Bench Pane 上的微控制器的行為與真正的電路板完全一樣。所有 I/O 設(shè)備和微控制器,即“Uno”和“Mega”都非常準(zhǔn)確。組件的電氣模型有助于準(zhǔn)確分析程序的行為,甚至?xí)?biāo)記電氣引腳。例如:復(fù)位板時(shí),指示燈 LED 閃爍。實(shí)驗(yàn)室工作臺(tái)窗格如下圖所示:
該板還具有觀察每個(gè) I/O 引腳波形的選項(xiàng)。可以在執(zhí)行程序時(shí)完成,您必須單擊特定引腳才能看到數(shù)字波形。您最多可以選擇 4 個(gè)波形顯示在屏幕上。
菜單欄
菜單欄包含操作和控制模擬的所有選項(xiàng),它為我們提供了文件、查找、執(zhí)行、選項(xiàng)、配置、VarRefresh、Windows 和幫助等選項(xiàng)。以下是所有功能的簡(jiǎn)要介紹:
文件:
Load INO / PDE Prog - 允許用戶選擇具有選定擴(kuò)展名的程序文件。該程序立即得到一個(gè) Parse。
編輯/查看 (ctrl-E ) - 它打開編輯器窗口。
保存 - 將編輯后的代碼保存到現(xiàn)有文件中。
另存為 - 將編輯后的代碼保存到新文件中。
Next ( ‘#include ’) - 用于在代碼窗格中顯示下一個(gè)‘#include’文件
上一個(gè) - 用于在代碼窗格中顯示上一個(gè)文件
Exit - 用于退出模擬器。
執(zhí)行:
Step-Into (F4) - 用于單條指令繼續(xù)指令
Step-Over (F5) - 用于在一個(gè)完整的函數(shù)調(diào)用上通過單個(gè)指令繼續(xù)執(zhí)行指令。
Step-Out-Of (F6) - 將執(zhí)行提前到足以離開當(dāng)前函數(shù)。
Run-To (F7) - 僅運(yùn)行程序直到所需的行。
運(yùn)行 (F9) - 它執(zhí)行并運(yùn)行代碼。
Halt (F10) - 它停止代碼的執(zhí)行。
重置 - 用于將程序重置為啟動(dòng)狀態(tài)。
慢動(dòng)作 - 用于將時(shí)間減慢 10 倍。
輸入輸出設(shè)備
I/O 設(shè)備分為兩類,較小的“I/O”設(shè)備和大型“I/O”設(shè)備。隔離基于現(xiàn)實(shí)世界中設(shè)備的大小,較小的“I/O”設(shè)備包含按鈕、開關(guān)電阻、壓電揚(yáng)聲器、彩色 LED、4-LED 行、7 段 LED、引腳跳線和模擬滑塊,而大“I/O”設(shè)備有伺服電機(jī)、直流電機(jī)等,它還有其他外圍設(shè)備,如 MUX、顯示器等。所有輸入和輸出外圍設(shè)備如下圖所示:
用戶可以選擇總共 16 個(gè)較小的“I/O”設(shè)備和 8 個(gè)大“I/O”設(shè)備。
UnoArduSim 限制!!
模擬器幾乎沒有限制。最大的限制是《Servo.h》、《Wire.h》、《OneWire.h》、《SPI.h》、《EEPROM.h》等庫(kù)只能仿真。它們的功能直接內(nèi)置在模擬器中,因此不會(huì)搜索實(shí)際文件。
支持的庫(kù)很少
支持的庫(kù)是‘SoftwareSerial.h’、‘SPI.h’、‘Wire.h’、‘OneWire.h’、‘Servo.h’ 、‘Stepper.h’、‘SD.h’、‘TFT.h ’和‘EEPROM.h’。因此,其他庫(kù)將無法工作,因?yàn)樗鼈儗皇苤С值闹噶詈蜔o法識(shí)別的文件。
實(shí)時(shí)仿真
Arduino 程序指令的執(zhí)行時(shí)間不準(zhǔn)確,因?yàn)樗鼈儧]有準(zhǔn)確建模,因此對(duì)于每個(gè)循環(huán),都需要一個(gè)“延遲()”指令來運(yùn)行與實(shí)時(shí)引腳電平變化同步的程序。
除了上述限制之外,模擬器不支持通過用戶聲明的函數(shù)指針進(jìn)行函數(shù)調(diào)用。
Arduino 模擬器替代品
市場(chǎng)上有很多可供選擇的 Arduino 模擬器,其中一些最常見的模擬器是:
Tinkercad 電路
虛擬面包板和頭像硬件
沃奎
IO 模擬器
變形蟲
弗里茨
如何使用 UnoArduSim?
首先從 網(wǎng)站下載軟件 并解壓縮文件。
在文件夾中,找到 UnoArduSim.exe 文件并雙擊運(yùn)行模擬器。
第一步是選擇您的微控制器。為此,請(qǐng)單擊菜單欄中的配置,然后從出現(xiàn)的下拉菜單中打開首選項(xiàng)。將出現(xiàn)一個(gè)新的彈出窗口,在這里您可以選擇 Board、TWI Bytes,它具有自動(dòng)縮進(jìn)、自動(dòng)插入關(guān)閉等功能。選擇板并單擊加載。
現(xiàn)在,為了選擇輸入和輸出外圍設(shè)備,再次單擊菜單欄中的配置并從出現(xiàn)的下拉菜單中打開“I/O 設(shè)備” 。將出現(xiàn)一個(gè)新的彈出窗口,您可以在此處從給定菜單中選擇所有需要的外圍設(shè)備。
如果您已經(jīng)有一個(gè) ‘.ino’ 或 ‘.pde’ 格式的 Arduino 代碼,您可以通過單擊文件》加載 INO 或 PDE 直接上傳它。
要編寫代碼,請(qǐng)雙擊代碼窗格以打開編輯器?;蛘撸梢詥螕粑募?,然后單擊編輯/查看。您也可以同時(shí)按 Ctrl + E 打開編輯器。
編寫程序后,單擊編譯按鈕。
編譯完成后,選擇所需的 I/O,并根據(jù)程序中分配的管腳,通過在外設(shè)塊中提供的空間上鍵入來分配 I/O 外設(shè)上的管腳。
現(xiàn)在,單擊菜單欄中的執(zhí)行并選擇運(yùn)行選項(xiàng),它將開始執(zhí)行程序。
現(xiàn)在,要通過更改輸入來查看您的設(shè)置和代碼將如何執(zhí)行,請(qǐng)通過單擊按鈕更改輸入外圍設(shè)備的值或更改外圍符號(hào)上的值以查看您的系統(tǒng)應(yīng)該如何執(zhí)行。
結(jié)論
UnoArduSim 是一個(gè)易于使用的模擬器。該模擬器具有許多功能,您可以通過使用該軟件輕松使用這些功能。它通過突出顯示錯(cuò)誤使調(diào)試更容易。因此,即使您是微控制器世界的新手并嘗試學(xué)習(xí) Arduino 編程,或者想要調(diào)試您的代碼或知道您的代碼將如何執(zhí)行而無需投入時(shí)間和資源以快速有效的方式組裝組件,那么這軟件對(duì)您非常有用。
-
模擬器
+關(guān)注
關(guān)注
2文章
883瀏覽量
43444 -
Arduino
+關(guān)注
關(guān)注
188文章
6477瀏覽量
187958
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
英飛凌MEMTOOL軟件介紹和使用方法
介紹獨(dú)立按鍵基本的使用方法
介紹SPI的使用方法
Verilog HDL語言的文件調(diào)用問題:include使用方法介紹
![Verilog HDL語言的文件調(diào)用問題:include<b class='flag-5'>使用方法</b><b class='flag-5'>介紹</b>](https://file1.elecfans.com//web2/M00/A6/5C/wKgZomUMPSCACzL6AAANVCYjrJc820.jpg)
面包板的結(jié)構(gòu)和使用方法詳細(xì)介紹
![面包板的結(jié)構(gòu)和<b class='flag-5'>使用方法</b>詳細(xì)<b class='flag-5'>介紹</b>](https://file.elecfans.com/web1/M00/69/EE/o4YBAFvZTBCAH2gxAAIz40Ktt7A072.png)
評(píng)論