剛開始學習arduino,最常用的就是arduino uno開發板了。
目錄
(一)執行器和傳感器
arduino的核心是上面搭載搭載的單片機,但是僅僅有處理芯片也不能讓arduino做一些事情的,還需要基本的傳感器以及執行器。
- 傳感器:可以將物理量轉換成開發板能感應的電信號的組件
- 執行器:將開發板上電信號變化轉換成現實世界物理變化的組件
變換器、加速度計、超聲波距離傳感器等都屬於傳感器;而執行器是指LED、揚聲器、電機、顯示器等。
(二)Arduino Uno開發板
接下來將介紹一款Arduino USB系列版本的開發板,arduino Uno:
上面是官網上面的圖片,是意大利版的,實際上如果只是用學習的話,國產的也是一樣的。
以下是arduino引腳說明:
1)arduino Uno基本參數
下面是arduino Uno的基本參數:
Microcontroller | ATmega328P |
Operating Voltage | 5V |
Input Voltage (recommended) | 7-12V |
Input Voltage (limit) | 6-20V |
Digital I/O Pins | 14 (of which 6 provide PWM output) |
PWM Digital I/O Pins | 6 |
Analog Input Pins | 6 |
DC Current per I/O Pin | 20 mA |
DC Current for 3.3V Pin | 50 mA |
Flash Memory | 32 KB (ATmega328P) of which 0.5 KB used by bootloader |
SRAM | 2 KB (ATmega328P) |
EEPROM | 1 KB (ATmega328P) |
Clock Speed | 16 MHz |
LED_BUILTIN | 13 |
Length | 68.6 mm |
Width | 53.4 mm |
Weight | 25 g |
2)ATmega328P基本參數
arduino Uno搭載ATmega328P作爲核心處理器,以下是ATmega328P的基本參數:
- 高性能、低功耗的 8 位AVR 微處理器
- 先進的RISC(精簡指令集)結構
- 131 條指令 – 大多數指令執行時間爲單個時鐘週期
- 32 個8 位通用工作寄存器
- 全靜態工作
- 工作於20 MHz 時性能高達20 MIPS
- 只需兩個時鐘週期的硬件乘法器
- 非易失性程序和數據存儲器
- 32K字節的系統內可編程Flash
- 擦寫壽命: 10,000 次
- 具有獨立鎖定位的可選Boot 代碼區
- 通過片上Boot 程序實現系統內編程
- 真正的同時讀寫操作
- 1024字節的EEPROM
- 擦寫壽命: 100,000 次
- 2K字節的片內SRAM
- 可以對鎖定位進行編程以實現用戶程序的加密
- 32K字節的系統內可編程Flash
- 外設特點
- 兩個具有獨立預分頻器和比較器功能的8位定時器/計數器
- 一個具有預分頻器、比較功能和捕捉功能的16位定時器/計數器
- 具有獨立振盪器的實時計數器RTC
- 六通道PWM
- 8路10 位ADC
- 可編程的串行USART
- 可工作於主機/ 從機模式的SPI 串行接口
- 基於字節的2-wire串行接口
- 具有獨立片內振盪器的可編程看門狗定時器
- 片內模擬比較器
- 引腳電平變化可引發中斷及喚醒MCU
- 特殊的微控制器特點
- 上電覆位(POR) 以及可編程的掉電檢測(BOD)
- 經過校準的片內RC 振盪器
- 片內、片外中斷源
- 6種休眠模式:空閒模式、ADC 噪聲抑制模式、省電模式、掉電模式、待機模式和延長待機模式
- I/O 和封裝
- 23個可編程的I/O 口
- 28引腳PDIP,32引腳TQFP,28引腳QFN/MLF,與32引腳QFN/MLF封裝
- 工作電壓
- 1.8 - 5.5V
- 工作溫度範圍:
- -40℃至85℃
- 工作速度等級
- 0 - 20 MHz @ 1.8 - 5.5V
- 超低功耗
- 正常模式:
- 1 MHz, 1.8V, 25°C: 0.2 mA
- 掉電模式:
- 1.8V, 0.1 μA
- 省電模式:
- 1.8V, 0.75 μA
- 正常模式:
3)電源
Arduino Uno可以通過3種方式供電,而且能自動選擇供電方式:
- 外部直流電源通過電源插座供電
- 電池連接電源連接器的GND和VIN引腳
- USB接口直接供電
在這裏,當DC電源和USB同時連接到arduino上時,arduino會自動切換到外接電源供電模式。
4)輸入/輸出
Arduino Uno有14個數字輸入輸出引腳和6路模擬輸入,其中數字輸入輸出可以使用 pinMode()、digitalWrite() 和 digitalRead() 控制。
其中一些帶有特殊功能,這些引腳如下:
Serial:
0(RX)、1(TX),被用於接收和發送串口數據。這兩個引腳通過連接到ATmega16u2來與計算機進行串口通信。
外部中斷:
2、3,可以輸入外部中斷信號。中斷有四種觸發模式:低電平觸發、電平改變觸發、上升沿觸發、下降沿觸發。
PWM輸出:
3、5、6、9、10、11,可用於輸出8-bit PWM波。對應函數 analogWrite() 。
SPI:
10(SS)、11(MOSI)、12(MISO)、13(SCK),可用於SPI通信。可以使用官方提供的SPI庫操縱。
L-LED:
13。13號引腳連接了一個LED,當引腳輸出高電平時打開LED,當引腳輸出低電平時關閉LED。
TWI:
A4(SDA)、A5(SCL)和TWI接口,可用於TWI通信,兼容I²C通信。可以使用官方提供的Wire庫操縱。
Arduino Uno 6個模擬輸入引腳,可使用analogRead()讀取模擬值。每個模擬輸入都有10位分辨率(即1024個不同的值)。默認情況下,模擬輸入電壓範圍爲0~5V,可使用 AREF引腳和analogReference()函數設置其他參考電壓。
相關引腳如下:
AREF:
模擬輸入參考電壓輸入引腳。
Reset:
復位端口。接低電平會使Arduino復位,復位按鍵按下時,會使該端口接到低電平,從而讓Arduino復位。
5)LED指示燈
Arduino UNO帶有4個LED指示燈,作用分別如下:
ON:
電源指示燈。當Arduino通電時,ON燈會點亮。
TX:
串口發送指示燈。當使用USB連接到計算機且Arduino向計算機傳輸數據時,TX燈會點亮。
RX:
串口接收指示燈。當使用USB連接到計算機且Arduino接收到計算機傳來的數據時,RX燈會點亮。
L:
可編程控制指示燈。該LED通過特殊電路連接到Arduino的13號引腳,當13號引腳爲高電平或高阻態時,該LED 會點亮;低電平時,不會點亮。可以通過程序或者外部輸入信號,控制該LED亮滅。
6)自動復位
一些開發板在上傳程序前需要手動復位,而Arduino Uno的設計不需要如此,在Arduino Uno連接電腦後可以由程序控制其復位。在ATmega16U2上的DTR信號端,經過一個100nf 的電容,連接到ATmega328 的復位引腳。
當計算機發出DTR信號時(低電平),復位端將得到一個足夠長的脈衝信號,從而復位ATmega328。在Arduino IDE中點擊上傳程序,在上傳前即會觸發復位,從而運行引導程序,完成程序上傳。
以上的很多專有名詞對於非電子專業的學習硬件的同學可能不太清楚,我也是這樣,但是我們要先對這些名詞有一些印象,未來深入瞭解的時候,可能會有一定的幫助。
參考:
- arduino官網:https://store.arduino.cc/usa/arduino-uno-rev3
- ATmega328P官網:http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf
- 微雪電子:http://www.waveshare.net/Shop/ATmega328P-price.htm
- arduino中文社區:https://www.arduino.cn/thread-81889-1-1.html