天天看點

單片機學習筆記(Arduino Uno r3)

單片機學習筆記(Arduino  Uno r3)

Aduino是什麼?

分為硬體和軟體兩個部分,硬體和軟體共同組成了Arduino,使用時須将Arduino硬體和軟體配合使用

  1. 硬體:Arduino系列各種型号的開發闆
  2. 軟體:Arduino IDE

Arduino與單片機的關系?

Arduino開發闆上有控制晶片,這些晶片為單片機。例:在Arduino Uno r3上一共有兩個晶片,開發闆主要晶片Atmega328,和另一個管理序列槽通信的晶片Atmega 16u2,這兩個晶片各自均為單片機。

單片機的作用?

單片機通過引腳從外部接收信号,經過對接收信号的分析,然後通過引腳向外做出不同反應。

單片機的意義?

假如以傳感器為輸入裝置,将傳感器和單片機連接配接,單片機就可以通過傳感器感覺周圍環境,進而根據環境變化,改變單片機上連接配接的輸出裝置的狀态。這樣就實作了自動控制的效果。

單片機的相關概念

電平

電壓的狀态,分高電平(高電壓)和低電平(低電壓)兩種。

I/O端口

I/O是簡寫,全稱是Intput/Output,即輸入輸出,将裝置連上單片機I/O端口,可以讓裝置從I/O端口傳送信号給單片機,也可以讓單片機從I/O端口輸出信号給裝置。I/O端口既可以用作輸入,也可以用作輸出。

數字信号

在單片機中,數字信号隻有兩種,0和1,可以用高電平和低電平表示。

模拟信号

一個可以在某個範圍内取值的數,相對于數字信号隻有0和1,模拟信号可以是例如0~1023之間的數、0~255之間的數等等,範圍視情況不同可以任意規定。相比數字信号僅有兩種狀态,模拟信号更多的狀态更适合傳達溫度變化、亮度變化等連續變化的情況。

A/D轉換

A/D是簡寫,全稱是 Analog/Digital,即模拟/數字。A/D轉換是将模拟信号轉換成數字信号,規則可以視情況任意設定。例如模拟信号是從0~1023之間的一個數,假如設定規則是當模拟信号>511時轉換為數字信号1,否則轉換為數字信号0,那麼此時就是一個模數信号的轉換。作用是将模拟信号的許多種狀态分為兩種狀态,友善單片機選擇以高電平還是低電平作出反應,也友善單片機中以二進制進行運算代表是和非兩種狀态。

PWM

PWM全稱Pulse Width Modulation,即脈沖寬度調制,目的是輸出模拟信号。例:相對于低電平,高電平為脈沖。通過調節高電平所占的時間的比例(即調節脈沖寬度),進而使輸出的平均電流大小發生變化,達到輸出模拟信号的目的。

占空比

在一個周期内,高電平持續的總時間所占的比例。

序列槽通信

一種通信方式,與并口通信相對應,例:假如有4個信号要傳輸,序列槽通信是把四個信号通過一條通道一個一個傳輸,而并口通信則是把四個信号通過四條通道同時傳輸。

中斷

假設單片機在執行程式A,當單片機接收到某一信号時,暫停執行程式A轉而執行程式B,當執行完B後再回到之前暫停的地方繼續執行程式A。在這個例子中,B為中斷程式,接收到的信号為中斷請求,執行程式B為中斷響應。

晶振

一片以特定角度切下的石英晶體,加直流電壓時晶體以固定頻率振動,使輸出的電流也以晶振的振動頻率變化。

計時器

單片機上連接配接有晶振時,通過晶振的振動頻率計時,方式是累加振動和振動之間相隔的時間。

如何使用Arduino?

如何下載下傳程式 		如何編寫程式		如何連接配接Arduino和I/O裝置      
如何下載下傳程式

以Arduino Uno r3 開發闆為例,步驟如下

1、從Arduino官網ArduinoHome –  Download – Windows Installer頁面下載下傳Windows版本的Arduino IDE安裝包并安裝

2、将開發闆的USB接口用資料線和電腦的USB接口連接配接

3、在電腦上的 裝置管理器 – 端口裡找到Arduino裝置,然後從Arduino IDE安裝目錄下的Driver檔案夾安裝驅動,安裝成功後可以看到Arduino的COM口序号

4、打開電腦上的Arduino IDE,在工具 – 端口裡選擇正确的COM口序号,就可以在這個軟體頁面下編譯程式下載下傳程式了

如何編寫程式

Arduino程式分為三部分,預處理指令,setup函數和loop函數。執行流程是先執行預處理指令,然後執行一次setup,然後循環執行loop。

Arduino将單片機許多基本功能都寫成了函數,這些函數的函數定義由Aduino IDE在編譯程式時自動從庫中讀取,當需要某項功能時,隻需要在setup或loop直接調用對應的函數即可。基本函數大概可分為讀取I/O端口輸入的資料,對資料進行運算,判斷資料類型,從I/O端口輸出資料,計時,序列槽通信,對位進行操作八個類型。

Arduino還有很多第三方庫,包含了寫好的函數,每個函數有各自的功能,可供調用。常用的庫有标準連結庫,通信庫,傳感器庫,音效和聲波庫,電機和脈寬調制庫,計時器庫,實用工具庫等

如何連接配接Arduino和外部裝置

以Arduino Uno r3為例,開發闆上常用的端口有數字I/O端口,模拟輸入端口,模拟輸出端口,電源端口。

通常情況下,判斷一個裝置怎麼接上開發闆,需要了解的資訊有:哪根是接電源正極的線,哪根是接電源負極線,哪根線輸入還是輸出,假如輸入,是輸入數字量還是模拟量;假如輸出,是輸出數字量還是模拟量。

Tips:

  • 數字I/O口前加~符号的,表示該I/O作為模拟輸出端口
  • 當單片機數字I/O口輸出高電平時,可以作為正極
  • Arduino電壓供應端口有不同大小的電壓供應,注意外接裝置的工作電壓大小

其它:

  • Arduino Uno r3開發闆上排列着LED,分别标有TX和 RX,T為transmit縮寫,R為receive縮寫,分别表示序列槽通信狀态。當有資料通過序列槽通信輸入單片機時,RX亮;當單片機通過序列槽通信輸出資料時,TX亮。
  • Arduino Uno r3開發闆上有兩個晶片,Atmega 328是主要晶片,Atmega 16 u2的作用是把USB通信轉換成序列槽通信。Arduino上和電腦上連接配接的都是USB接口,USB全稱Universal Serial Bus,是通用串行總線,和串行口(序列槽)不同,是以當使用序列槽通信時,需要一個轉換子產品,此處的Atmega 16 u2就代替了這個轉換子產品。
  • 因為電腦實際和單片機是用USB接口連接配接的,是以把單片機連上電腦安裝驅動後看到的COM口序列号不是真實序列槽連接配接,隻是虛拟序列槽。