在本篇文章中,我們將詳細(xì)介紹Arduino開發(fā)板的硬件電路部分,具體來說,就是介紹Arduino Uno開發(fā)板的引腳分配圖及定義。Arduino Uno微控制器采用的是Atmel的ATmega328。 Arduino Uno開發(fā)板的引腳分配圖包含14個數(shù)字引腳、6個模擬輸入、電源插孔、USB連接和ICSP插頭。引腳的復(fù)用功能提供了更多的不同選項,例如驅(qū)動電機、LED、讀取傳感器等。在這篇文章中,我們將介紹Arduino Uno引腳的功能。
Arduino Uno引腳分配圖
Arduino Uno引腳分配 - 電源
Arduino Uno開發(fā)板可以使用三種方式供電:
● 直流電源插孔 -可以使用電源插孔為Arduino開發(fā)板供電。電源插孔通常連接到一個適配器。開發(fā)板的供電范圍可以是5-20V,但制造商建議將其保持在7-12V之間。高于12V時,穩(wěn)壓芯片可能會過熱,低于7V可能會供電不足。
● VIN引腳 - 該引腳用于使用外部電源為Arduino Uno開發(fā)板供電。電壓應(yīng)控制在上述提到的范圍內(nèi)。
● USB電纜 - 連接到計算機時,提供500mA/5V電壓。
在電源插孔的正極與VIN引腳之間鏈接有一個極性保護的二極管,額定電流為1安培。
您使用的電源決定了可用于電路的功率。例如,使用USB為電路供電時,電流最大限制在500mA??紤]到該電源也用于為MCU、外圍設(shè)備、板載穩(wěn)壓器和與其連接的組件供電。當(dāng)通過電源插座或VIN為電路供電時,可用的最大電流取決于Arduino開發(fā)板上的5V和3.3V穩(wěn)壓器。
● 5v和3v3
根據(jù)制造商的數(shù)據(jù)手冊,它們提供穩(wěn)壓的5V和3.3v,向外部組件供電。
● GND
在Arduino Uno引腳分配圖中,可以看到有5個GND引腳,它們都是互連的。
GND引腳用于閉合電路回路,并在整個電路中提供一個公共邏輯參考電平。務(wù)必確保所有的GND(Arduino、外設(shè)和組件)相互連接并且有共同點。
● RESET - 復(fù)位Arduino開發(fā)板。
● IOREF - 該引腳是輸入/輸出參考。它提供了微控制器工作的參考電壓。
Arduino Uno引腳分配 - 模擬輸入
Arduino Uno有6個模擬引腳,它們作為ADC(模數(shù)轉(zhuǎn)換器)使用。
這些引腳用作模擬輸入,但也可用作數(shù)字輸入或數(shù)字輸出。
模數(shù)轉(zhuǎn)換
ADC表示模擬到數(shù)字轉(zhuǎn)換器。 ADC是用于將模擬信號轉(zhuǎn)換為數(shù)字信號的電子電路。模擬信號的這種數(shù)字表示允許處理器(其是數(shù)字設(shè)備)測量模擬信號并在其操作中使用它。
Arduino引腳A0-A5能夠讀取模擬電壓。在Arduino上,ADC具有10位分辨率,這意味著它可以通過1,024個數(shù)字電平表示模擬電壓。 ADC將電壓轉(zhuǎn)換成微處理器可以理解的位。
一個常見的ADC例子是IP語音(VoIP)。每部智能手機都有一個麥克風(fēng),可將聲波(語音)轉(zhuǎn)換為模擬電壓。這通過設(shè)備的ADC,轉(zhuǎn)換成數(shù)字?jǐn)?shù)據(jù),通過互聯(lián)網(wǎng)傳輸?shù)浇邮斩恕?/p>
Arduino Uno引腳分配 - 數(shù)字引腳
Arduino Uno的引腳0-13用作數(shù)字輸入/輸出引腳。其中,引腳13連接到板載的LED指示燈;引腳3、5、6、9、10、11具有PWM功能。
需要注意的是:
● 每個引腳可提供/接收最高40 mA的電流。但推薦的電流是20毫安。
● 所有引腳提供的絕對最大電流為200mA。
數(shù)字電平意味著什么?
數(shù)字是一種表示1位電壓的方式:0或1。Arduino上的數(shù)字引腳是根據(jù)用戶需求設(shè)計為輸入或輸出的引腳。數(shù)字引腳可以打開或關(guān)閉。開啟時,它們處于5V的高電平狀態(tài),當(dāng)關(guān)閉時,它們處于0V的低電平狀態(tài)。
在Arduino上,當(dāng)數(shù)字引腳配置為輸出時,它們設(shè)置為0或5V。
當(dāng)數(shù)字引腳配置為輸入時,電壓由外部設(shè)備提供。該電壓可以在0-5V之間變化,并轉(zhuǎn)換成數(shù)字表示(0或1)。為了確定這一點,有2個閾值:
● 低于0.8v - 視為0。
● 高于2.0v - 視為1。
將組件連接到數(shù)字引腳時,確保邏輯電平匹配。如果電壓在閾值之間,則返回值將不確定。
什么是PWM?
通常,脈寬調(diào)制(PWM)是一種調(diào)制技術(shù),用于將消息編碼為脈沖信號。 PWM由兩個關(guān)鍵部分組成:頻率和占空比。 PWM頻率決定了完成單個周期(周期)所需的時間以及信號從高到低的波動速度。占空比決定信號在總時間段內(nèi)保持高電平的時間。占空比以百分比表示。
在Arduino中,支持PWM的引腳產(chǎn)生約500Hz的恒定頻率,而占空比根據(jù)用戶設(shè)置的參數(shù)而變化。見下圖:
PWM信號用于直流電機的速度控制,調(diào)光LED等。
通信協(xié)議
串行(TTL) - 數(shù)字引腳0和1是Arduino Uno的串行引腳。
它們由板載USB模塊使用。
什么是串行通信?
串行通信用于在Arduino板和其他串行設(shè)備(如計算機,顯示器,傳感器等)之間交換數(shù)據(jù)。每塊Arduino板至少有一個串口。串行通信發(fā)生在數(shù)字引腳0(RX)和1(TX)以及USB上。 Arduino也支持通過數(shù)字引腳與SoftwareSerial Library進(jìn)行串行通信。這允許用戶連接多個支持串行的設(shè)備,并保留主串行端口可用于USB。
軟件串行和硬件串行 - 大多數(shù)微控制器都具有用于與其他串行設(shè)備進(jìn)行通信的硬件。軟件串行端口使用引腳更改中斷系統(tǒng)進(jìn)行通信。有一個用于軟件串行通信的內(nèi)置庫。處理器使用軟件串行來模擬額外的串行端口。軟件串行唯一的缺點是它需要更多的處理,并且不能支持與硬件串行相同的高速。
SPI - SS / SCK / MISO / MOSI引腳是SPI通信的專用引腳。它們可以在Arduino Uno的數(shù)字引腳10-13和ICSP插頭上找到。
串行外設(shè)接口(Serial Peripheral Interface,SPI)是一種串行數(shù)據(jù)協(xié)議,由微控制器用來與總線中的一個或多個外部設(shè)備進(jìn)行通信,如連接。 SPI也可以用來連接2個微控制器。在SPI總線上,總是有一個設(shè)備表示為主設(shè)備,其余所有設(shè)備都表示為從設(shè)備。在大多數(shù)情況下,微控制器是主設(shè)備。 SS(從選擇)引腳確定主器件當(dāng)前正在與哪個器件通信。
啟用S??PI的器件始終具有以下引腳:
● MISO(主從輸出) - 用于向主設(shè)備發(fā)送數(shù)據(jù)的線路
● MOSI(主機輸出從機輸入) - 發(fā)送數(shù)據(jù)到外圍設(shè)備的主機線
● SCK(串行時鐘) - 由主設(shè)備生成的用于同步數(shù)據(jù)傳輸?shù)臅r鐘信號。
I2C - SCL / SDA引腳是I2C通信的專用引腳。在Arduino Uno上,它們可以在模擬引腳A4和A5上找到。
I2C通信協(xié)議通常稱為“I2C總線”。 I2C協(xié)議旨在實現(xiàn)單個電路板上組件之間的通信。使用I2C時,有2條通信線,稱為SCL和SDA。
● SCL是用于同步數(shù)據(jù)傳輸?shù)臅r鐘線。
● SDA是用于傳輸數(shù)據(jù)的通訊線。
I2C總線上的每個器件都有一個唯一的地址,最多可以在同一條總線上連接255個器件。
Aref - 模擬輸入的參考電壓。
中斷 - INT0和INT1。 Arduino Uno有兩個外部中斷引腳。
外部中斷 - 外部中斷是外部干擾出現(xiàn)時發(fā)生的系統(tǒng)中斷。干擾可能來自用戶或網(wǎng)絡(luò)中的其他硬件設(shè)備。 Arduino中這些中斷的常見用途是讀取編碼器產(chǎn)生的方波或外部事件喚醒處理器的頻率。
Arduino有兩種形式的中斷:
● 外部輸入
● 引腳狀態(tài)變化
ATmega168 / 328上有兩個外部中斷引腳,稱為INT0和INT1。 INT0和INT1分別映射到引腳2和3。相反,引腳變化中斷可以在任何引腳上激活。
Arduino Uno引腳定義 - ICSP插頭
ICSP表示在線串行編程。該名稱源自在系統(tǒng)編程(ISP)。 Arduino相關(guān)的制造商,如Atmel,開發(fā)了自己的在線串行編程插頭。這些引腳使用戶能夠編程Arduino開發(fā)板上的固件。 Arduino開發(fā)板上有6個ICSP引腳,可通過編程電纜連接到編程器設(shè)備。
了解引腳定義
Arduino Uno開發(fā)板是當(dāng)今市場上最流行的開發(fā)板之一,這就是為什么我們在本文中主要介紹這款開發(fā)板。本篇文章主要介紹了其大部分功能,但也有很多高級的選項,我們在這篇文章中沒有涉及。
要為項目選擇開發(fā)板時,需要了解的重要一點是其功能和局限性。理解開發(fā)板使用的不同通信協(xié)議也很重要。當(dāng)然,你不需要記住所有這些信息,你可以回到這篇文章并閱讀相關(guān)信息。
如果您有任何意見或疑問,歡迎您在下面進(jìn)行回復(fù),當(dāng)然,請隨時與您喜愛Arduino的朋友分享這篇文章。
聯(lián)系客服