Arduino Uno R3(CH340G)微控制器採用ATmega328P。Arduino Uno開發板的引腳分配圖包含14個數字引腳、6個模擬輸入、電源插孔、USB連接和ICSP插頭。
參數列表:
參考Arduino官網資料
https://store.arduino.cc/usa/arduino-uno-rev3
Arduino Uno R3 (CH340G)引腳分配圖
Arduino Uno 板載指示燈
Arduino Uno引腳分配 - 電源
Arduino Uno可以使用三種方式供電:
● 直流電源插孔 -可以使用DC電源插孔為開發板供電。供電範圍可以是5-20V,但製造商建議將其保持在7-12V之間。
● VIN引腳 - 該引腳用於使用外部電源為開發板供電。
● USB電纜 - 連接到計算機時,提供500mA/5V電壓。
● 5v和3v3
提供穩壓的5V和3.3v,向外部組件供電。
● GND
在Arduino Uno引腳分配圖中,GND引腳它們都是互連的。
GND引腳用於閉合電路迴路,並在整個電路中提供一個公共邏輯參考電平。務必確保所有的GND(Arduino、外設和組件)相互連接並且有共同點。
● RES - 復位Arduino開發板。
Arduino Uno引腳分配 - 數字引腳
Arduino Uno的引腳0-13用作數字輸入/輸出引腳。其中,引腳13連接到板載的LED指示燈;引腳3、5、6、9、10、11具有PWM功能(表示符號~)。串行通信發生在數字引腳0(RX)和1(TX),在上傳程序時引腳0,1勿連接其他元器件。
注意
● 每個引腳可提供/接收最高40 mA的電流。但推薦的電流是20毫安。
● 所有引腳提供的絕對最大電流為200mA。
數字電平
數字電平:用數字0或1來表示電壓,1表示高電平,0表示低電平。Arduino上的數字引腳可以為輸入引腳也可以為輸出的引腳,由用戶編程確定。數字引腳可以打開或關閉。開啟時,它們處於5V的高電平狀態,當關閉時,它們處於0V的低電平狀態。
當數字引腳配置為輸出時,設置為0或5V。
當數字引腳配置為輸入時,電壓由外部設備提供。該電壓可以在0-5V之間變化,並轉換成數字表示(0或1),數字電平電壓閾值:
● 低於0.8v - 視為0。
● 高於2.0v - 視為1。
PWM
PWM,也就是脈衝寬度調製,用於將一段信號編碼為脈衝信號(一般是方波信號)。是在數字電路中 達到 模擬輸出效果的一種手段。即:使用數字控制產生佔空比不同的方波(一個不停在開與關之間切換的信號)來控制模擬輸出。我們要在數字電路中輸出模擬信號,就可以使用PWM技術實現。在嵌入式開發中,我們常用PWM來驅動LED的暗亮程度,電機的轉速等。
PWM由兩個關鍵部分組成:頻率和佔空比。PWM頻率決定了完成單個周期(周期)所需的時間以及信號從高到低的波動速度。佔空比決定信號在總時間段內保持高電平的時間。佔空比以百分比表示。
在Arduino中,支持PWM的引腳產生約500Hz的恆定頻率,而佔空比根據用戶設置的參數而變化。見下圖:
PWM在編程中使用analogWrite(pin, X); //pin為引腳,X取值0~255。
可參考Arduino官網資料
https://www.arduino.cc/reference/en/language/functions/analog-io/analogwrite/
Arduino Uno引腳分配 - 模擬輸入
Arduino Uno有6個模擬引腳A0-A5,它們作為ADC(模數轉換器)使用。
這些引腳用作模擬輸入,但也可用作數字輸入或數字輸出。
模數轉換
Arduino引腳A0-A5能夠讀取模擬電壓。在Arduino上,ADC具有10位解析度,這意味著它可以通過1024個數字電平表示模擬電壓。 編程中讀取和輸出的數字範圍0~1024。
Arduino Uno引腳定義 - ICSP插頭
ICSP表示在線串行編程。該名稱源自在系統編程(ISP)。Arduino相關的製造商,如Atmel,開發了自己的在線串行編程插頭。這些引腳使用戶能夠編程Arduino開發板上的固件。Arduino開發板上有6個ICSP引腳,可通過編程電纜連接到編程器設備。
串行通信
串行通信用於在Arduino板和其他串行設備(如計算機,顯示器,傳感器等)之間交換數據。Arduino UNO串行通信發生在數字引腳0(RX)和1(TX)以及USB上。Arduino也支持通過數字引腳與SoftwareSerial Library進行串行通信(軟串口)。這允許用戶連接多個支持串行的設備,並保留主串行埠可用於USB。
軟體串行和硬體串行 - 大多數微控制器都具有用於與其他串行設備進行通信的硬體。軟體串行埠使用引腳更改中斷系統進行通信。有一個用於軟體串行通信的內置庫。處理器使用軟體串行來模擬額外的串行埠。軟體串行唯一的缺點是它需要更多的處理,並且不能支持與硬體串行相同的高速。
軟串口的使用可參考Arduino官網資料
https://www.arduino.cc/en/Reference/SoftwareSerial
SPI - SS / SCK / MISO / MOSI引腳是SPI通信的專用引腳。它們可以在Arduino Uno的數字引腳10-13和ICSP插頭上找到。
串行外設接口(Serial Peripheral Interface,SPI)是一種串行數據協議,由微控制器用來與總線中的一個或多個外部設備進行通信,如連接。SPI也可以用來連接2個微控制器。在SPI總線上,總是有一個設備表示為主設備,其餘所有設備都表示為從設備。在大多數情況下,微控制器是主設備。SS(從選擇)引腳確定主器件當前正在與哪個器件通信。
SPI引腳:
● MISO(主從輸出) - 用於向主設備發送數據的線路
● MOSI(主機輸出從機輸入) - 發送數據到外圍設備的主機線
● SCK(串行時鐘) - 由主設備生成的用於同步數據傳輸的時鐘信號。
I2C - SCL / SDA引腳是I2C通信的專用引腳。在Arduino Uno R3(CH340G)上有兩對I2C接口,分別為A4(SDA)、A5(SCL)和數字引腳排最上方的兩個接口SCL、SDA。
I2C通信協議通常稱為「I2C總線」。I2C協議旨在實現單個電路板上組件之間的通信。使用I2C時,有2條通信線SCL和SDA。
● SCL是用於同步數據傳輸的時鐘線。
● SDA是用於傳輸數據的通訊線。
I2C總線上的每個器件都有一個唯一的地址,最多可以在同一條總線上連接255個器件。
參考
https://www.yiboard.com/thread-831-1-1.html
https://www.arduino.cc