什么是 Arduino?
Arduino 是一個(gè)開源硬件平臺,具有內(nèi)置的編程支持。不需要額外的硬件或軟件(例如 Hex 刻錄機(jī))將您的程序(即 hex 文件)傳輸?shù)?Arduin0。為基本操作連接了所有必要的外圍設(shè)備。它基于簡單的 AVR 微控制器。
Arduino 是當(dāng)今一個(gè)不斷發(fā)展的行業(yè),其背后的主要原因是絕大多數(shù)庫。用戶不必再次發(fā)明輪子。長而傳統(tǒng)的代碼現(xiàn)在已經(jīng)減少到幾行。它易于使用并提高生產(chǎn)力。Arduino 可用于制作各種采用模擬和數(shù)字輸入的項(xiàng)目,并且可以輕松地與不同的硬件(如開關(guān)、編碼器、傳感器、電機(jī)、繼電器等)連接。
Arduino 板 PCB 設(shè)計(jì)和原理圖可在互聯(lián)網(wǎng)社區(qū)和博客上免費(fèi)獲得,也可以從各自的賣家處購買,其集成開發(fā)環(huán)境可免費(fèi)下載,此 IDE 的不同版本可用于使其與不同的操作系統(tǒng)(操作系統(tǒng))兼容,如 Mac、Windows 等。
為什么選擇 Arduino?
1) Arduino 有內(nèi)置的編程器來燒錄十六進(jìn)制文件,對于大多數(shù)初學(xué)者來說,單獨(dú)購買微控制器和刻錄機(jī)是非常煩人的,有時(shí)很煩人,當(dāng)糟糕的硬件有一點(diǎn)隱藏的斷線時(shí),你會浪費(fèi)大量寶貴的時(shí)間。
2) 它是開源的,因此整個(gè)世界開發(fā)人員不斷致力于升級和修復(fù)其錯(cuò)誤,因此它的支持在全球范圍內(nèi)隨時(shí)可用。
3) 數(shù)量最多的庫是免費(fèi)提供的,因此人們不需要編寫大量基本代碼來運(yùn)行。
4) Arduino 支持許多不同的擴(kuò)展板,這些擴(kuò)展板可以通過公對母接頭連接到基本的 Arduino 板。它減少了傳統(tǒng)布線,并且出錯(cuò)的機(jī)會更少。它還節(jié)省空間和功耗。
上述所有功能通常不適用于單個(gè)獨(dú)立微控制器。這就是 Arduino 受到業(yè)余愛好者和專業(yè)人士喜愛的原因。
Arduino 的類型:
Arduino 有很多板子,從基本的 Arduino UNO 開始,到 Arduino mega、ArduinoFio、Lily Pad等。
- Arduino UNO
- Arduino Mega
- Arduino Duemilanove
- Arduino FIo
- Lily Pad Arduino
- Aurdino Extreme V2
和許多其他板。
Arduino UNO 的功能
Arduino UNO 的顯著特點(diǎn)是:
- 微控制器 (MCU) ATmega328
- 工作電壓 (DC) 5V
- 輸入電源電壓 (外部) 6-20VDC (MAX)
- 推薦輸入電源電壓 (DC) 7-12V
- 數(shù)字輸入/輸出 (I/O) 引腳數(shù)量 14
- PWM(脈寬調(diào)制)輸出 6(引腳 3、5、6、9、10 和 11)
- 輸入引腳(模擬) 6 (A0-A5)
- 直流電流(最大值) 40 mA (每個(gè) I/O 引腳)
- 3.3V 引腳的直流電流 50 mA
- 閃存 32 KB (ATmega328) ( 0.5 KB 由引導(dǎo)加載程序使用)
- 時(shí)鐘速度(陶瓷諧振器) 16 MHz
- SRAM(內(nèi)存)2 KB (ATmega328 MCU)
- EEPROM(內(nèi)存)1 KB (ATmega328 MCU)
Arduino 編程 – 分步
Aurdino 編程(第一個(gè)程序))
讓我們從 Arduino UNO 開始,它很簡單,它基于 Atmega 328 微控制器
現(xiàn)在從 Arduino First 基本程序開始。
從 www.arduino.cc 下載 Arduino IDE,安裝它,然后雙擊軟件圖標(biāo)運(yùn)行。
基礎(chǔ) Arduino 編程函數(shù)語句:
Arduino 編碼有兩個(gè)主要塊。其中一個(gè)稱為 void setup,另一個(gè)是 void loop。在 void setup 中,我們定義哪個(gè) pin 應(yīng)該是 input 和 output。它用于初始化變量并開始使用庫。
代碼的第二個(gè)塊是 void loop。它包含放在括號內(nèi)的所有代碼和邏輯(它將無休止地重復(fù))。
現(xiàn)在讓我們編寫一段LED閃爍代碼:
代碼解釋:
這段代碼將定義引腳13為內(nèi)部LED,并設(shè)置它為輸出模式,然后通過循環(huán)不斷地將其設(shè)置為高電平(點(diǎn)亮LED)和低電平(熄滅LED),并在每次狀態(tài)改變之間加入1秒(1000毫秒)的延遲。
此代碼在setup()函數(shù)中初始化了引腳配置,在loop()函數(shù)中實(shí)現(xiàn)了LED的閃爍邏輯。loop()函數(shù)會不斷重復(fù)執(zhí)行,因此LED將會持續(xù)地以1秒間隔進(jìn)行亮滅交替。如果您想更改閃爍速度,只需調(diào)整delay()函數(shù)中的參數(shù)值即可。
內(nèi)部 LED = 13;
這里 13 是引腳號,LED 是該引腳的新名稱,現(xiàn)在我們可以訪問具有兩個(gè)名稱的同一引腳。
PinMode(x,y) 函數(shù):
我們想編寫代碼來使 LED 閃爍。PinMode (X, Y) 函數(shù):此函數(shù)接受 2 個(gè)參數(shù)
1) 密碼名稱或號碼 (X)
2) 定義為輸出或輸入 (y)
示例:pinMode(led,OUPUT)
上述語句將 Led 定義為 output。
digitalWrite(x,y) 函數(shù):
此函數(shù)將 Digital 1 或 0 寫入此函數(shù)參數(shù)中定義的引腳。此函數(shù)還接受 2 個(gè)參數(shù)
- 引腳編號或名稱
- 是寫 “Low” 還是 “High”
例:
數(shù)字寫入(LED,HIGH)
上述語句將在名為 LED 的引腳上寫入 +5 伏特。
延遲功能:
這是 Arduino IDE 的內(nèi)置功能。它只有一個(gè)參數(shù),即它給出以毫秒為單位的延遲。
例:
延遲 (1000);
那么這個(gè)函數(shù)會給我們 1000 毫秒的延遲。
上傳代碼
現(xiàn)在單擊按鈕(如下圖所示)將程序加載到 Arduino 板。大功告成!