2K+ 次瀏覽
在處理包含多個函式的大型檔案時,行號通常是必要的。大多數開發人員都希望在他們的程式碼編輯軟體中顯示行號。預設情況下,Arduino IDE 中隱藏了行號。為了顯示行號,請轉到檔案 → 首選項。在開啟的對話方塊中,選中“顯示行號”複選框。行號現在將出現在草圖中。或者,您始終可以從螢幕左下角獲取游標所在的行號。這是 Arduino IDE 不太為人知的功能之一。
968 次瀏覽
RTOS 代表即時作業系統。它用於併發執行多個任務,根據需要安排它們,並使它們能夠共享資源。現在,雖然深入瞭解 RTOS 超出了本文的範圍,但我們將逐步完成一個示例,使您對 RTOS 有一個大致的瞭解。目前,您只需注意 RTOS 將幫助您在 Arduino 中執行多工處理,就像您計算機上的作業系統幫助您同時執行多個任務(例如撰寫郵件、收聽音樂等)一樣。現在,由於我們關注的是微控制器,因此我們... 閱讀更多
4K+ 次瀏覽
如另一篇文章所述,定時器基本上是計數器。當它們達到計數結束時,它們會溢位。我們可以使用此事件生成中斷。現在,在 Arduino 中生成中斷的傳統方法涉及更改許多暫存器。幸運的是,我們有庫可以簡化我們的工作。我們將使用 TimerOne 庫在 Timer1 上生成中斷。類似地,TimerThree 庫用於在 Timer3 上生成中斷(不適用於 Arduino Uno)。轉到工具 -> 管理庫,搜尋 TimerOne 和 TimerThree(可選),然後單擊安裝。接下來,在您的程式碼中匯入庫... 閱讀更多
9K+ 次瀏覽
如前所述,Arduino Uno 有 3 個定時器:Timer0、Timer1 和 Timer2。Timer0 和 Timer2 是 8 位計數器(它們從 0 計數到 255),而 Timer1 是 16 位計數器(它從 0 計數到 65535)。在內部,Timer0 用於 millis() 函式,因此建議不要更改它。您可以將 Timer1 和 Timer2 用於您的自定義需求。請注意,Arduino Uno 的時鐘頻率為 16 MHz。因此,沒有定時器的間隔短於 (1/16000000)。但是,對於大多數應用程式,您希望間隔更長(頻率更低)。換句話說,您希望... 閱讀更多
每個微控制器都具有一個或多個定時器,以幫助使用者以精確的間隔執行任務。例如,Arduino Uno 有 3 個定時器:Timer0、Timer1 和 Timer2。其他開發板可能具有相同或不同數量的定時器,您可以在該開發板/微控制器的規格書中找到。定時器是什麼?定時器本質上是計數器。讓我舉一個簡單的例子。假設您想每 5 秒觸發一次任務。現在,如果您有一個可以從 0 計數到 255 的計數器,那麼如果您以某種方式調整計數速率,使其恰好在... 閱讀更多
1K+ 次瀏覽
什麼是 PWM?PWM 指脈衝寬度調製。用非常簡單的術語來說,我們可以從 Arduino 板的某些引腳輸出方波,並且我們可以控制波處於高電平狀態的時間分數(稱為佔空比)。為什麼要使用 PWM?PWM 有多種應用。一個重要的應用是執行電機。電機的轉速可以透過 PWM 輸出來控制。PWM 也可用於一般情況下在高電平和低電平之間生成電壓。因此,如果您的高電平為 5V,低電平為 0V,... 閱讀更多
6K+ 次瀏覽
浮點數使用 4 個位元組(32 位)儲存。它們的最大值可以是 3.4028235E+38,最小值可以是 -3.4028235E+38。它們的精度約為 6-7 位小數。雙精度在某些平臺上,double 的精度高於 float。但是,在大多數 Arduino 開發板(Uno 和許多其他 ATmega 開發板)上,double 與 float 的大小相同。Arduino Due 是一個例外,其中 double 的大小為 8 個位元組(而 float 為 4 個位元組)。在使用 8 個位元組儲存 double 的開發板上,最大值可以是 1.7*10^308,最小值可以是 -1.7*10^308。在... 閱讀更多
當您定義一個整數時,預設情況下它是帶符號的。換句話說,它可以接受正值和負值。無符號整數顧名思義,只接受正值。因此,它們的範圍更大。如果您使用的是使用兩個位元組(16 位)來表示整數的開發板,那麼您將獲得的無符號整數的最大範圍是 0 到 65535(216-1)。但是,在表示有符號整數時,範圍將是 -32767 到 +32767。請注意,32767 對應於 (215 -1)。如您所見,最高有效位似乎不起作用。... 閱讀更多
5K+ 次瀏覽
宣告陣列為了宣告陣列,您需要遵循以下語法 -語法型別 陣列名稱[陣列大小];示例char buf[500]; int new_array[200];訪問陣列元素陣列元素編號從 0 開始。可以透過在陣列名稱後面指定方括號中的元素索引來訪問元素。例如 -int second_element = new_array[1];獲取陣列長度可以使用 sizeof() 函式訪問陣列的長度。例如,int buf_len = sizeof(buf);請注意,sizeof() 函式返回位元組數,而不是元素數。如果您有一個 int 陣列,並且 int 是... 閱讀更多
27K+ 次瀏覽
通常,您需要測量微控制器執行特定任務所需的時間。您可以使用 Arduino 的 millis() 函式來測量時間。此函式返回自您的開發板開始運行當前程式以來的毫秒數。因此,要計算操作花費的時間,您可以在操作之前和之後呼叫 millis(),並取這兩個值的差值。下面給出了一個示例實現 -示例void setup() { // 在此處放置您的設定程式碼,以執行一次: Serial.begin(9600); long int t1 = millis(); task_whose_time_is_to_be_measured(); long int ... 閱讀更多