開發(fā)板介紹,Arduino入門教程
下面是一張Ardunio Uno R3的引腳圖,包含14個數字引腳、6個模擬輸入、電源插孔、USB連接和ICSP插頭等。
14個數字引腳:
- Serial:0、1,被用于接收和發(fā)送串口數據。
- 外部中斷:2、3,可以輸入外部中斷信號。中斷有四種觸發(fā)模式:低電平觸發(fā)、電平改變觸發(fā)、上升沿觸發(fā)、下降沿觸發(fā)。
- PWM輸出:3、5、6、9、10、11,可輸出8-bit PWM波。
- SPI:10、11、12、13,可用于SPI通信。
- L-LED:13,連接了一個LED,高電平打開LED,低電平關閉LED。
6個模擬輸入:A0到A5,可以從模擬傳感器(例如溫度和濕度)讀取信號,并轉換為數字值。
電源插孔:圖中最左上角的插孔。
USB連接:Arduino不可以同通過連接計算機上的USB線供電,獲取計算機的腳本。
ICSP引腳:ICSP是一個AVR(自動電壓調節(jié)器),通常稱為SPI(串行外設接口),作為輸出的“擴展”,把要輸出設備從屬到SPI總線的主機,通常由6個引腳。ICSP引腳旁邊的“ON”電源LED顯示燈表示是否由接通電源。
- MISO:主控器輸入,從芯片輸出。
- MOSI:主控器輸出,從芯片輸入。
- SCK:時鐘信號,用于同步數據傳輸。
- RESET:復位,用于將芯片重置為初始狀態(tài)。
- VCC和GND:電源引腳,提供芯片所需的電源和地。
電源連接器:模擬端口左邊的一組“POWER”的端口組。
- IOREF:arduino工作時的電壓,5V。
- RESET:復位,重啟arduino。
- 其余的引腳提供不同的電壓:3.3V、5V、GUN(接地0V)、Vin(9V)。
編程入門
setup和loop函數
頭文件:初始的時候,沒有顯示任何頭文件,是因為已經IDE幫忙把需要頭文件引入并隱藏了,如果需要自己引入額外的頭文件再自己添加。
setup函數:啟動后只會被運行一次,用來初始化串口、引腳、變量。
loop函數:setup后一直運行,不停循環(huán),相當于主函數。
引腳信號輸入輸出
既然涉及到信號,就要補充一些信號的知識。對于我來說,最早接觸信號是在計算機網絡物理層的編碼和調制的時候,編碼能把數據變成模擬信號;調制能把數據變成數字信號。數字信號和模擬信號,數字信號是一些離散的信號,例如0和1;模擬信號是一些連續(xù)的信號。
數字信號Arduino Uno的14個數字輸入輸出引腳,可使用 pinMode()、digitalWrite() 和 digitalRead() 控制。
pinMode(pin,value)
函數作用:設置引腳用于輸入和輸出模式。
value:OUTPUT表示輸出,INPUT表示輸入。
digitalWrite(pin,value)
函數作用:控制該引腳輸出高電平或者低電平。
value:HIGH高電平,LOW低電平。
digitalRead(pin,value)
函數作用:判斷該引腳輸入的電平和value是否一致。
value:HIGH高電平,LOW低電平。
digitalRead(pin)
函數作用:獲取該引腳的電平。
程序入門案例
/* 引腳2連接一個按鈕,作為信號輸入 引腳13號連接的是板子上的led燈,作為信號輸出 */ const int ledPin = 13; const int inputPin = 2; void setup() { //將引腳13設置為輸出模式 pinMode(ledPin, OUTPUT); //將引腳2設置為輸入模式 //引腳2與外部按鈕連接 pinMode(inputPin, INPUT); } void loop() { // 閉合按鈕,引腳2為高電平 int val = digitalRead(inputPin); if (val == HIGH) { digitalWrite(ledPin, HIGH);// 點亮led } else { digitalWrite(ledPin, LOW);// 熄滅led } }模擬信號
Arduino Uno的6個模擬輸入輸出引腳,可使用 analogReference()、analogRead()和analogWrite()控制。
analogReference(type)
函數作用:配置模擬輸入引腳的基準電壓,也就是電壓最大范圍。
type:
- DEFAULT:默認5v或者3.3v為基準電壓。
- INTERNAL:低電壓模式,使用片內基準電壓。
- INTERNAL1v1:低電壓模式,使用1v為基準電壓。
- INTERNAL2v256:低電壓模式,使用2.56v為基準電壓。
- EXTERNAL:擴展接口,施加到AREF引腳的電壓(僅限0至5V)用作基準電壓源。
analogRead(pin)
函數作用:獲取指定的模擬引腳讀取模擬量,讀取周期為100微秒,即最大速度為每秒讀取10000次,函數返回值為int型(0~1023)。
analogWrite (pin, value)
函數作用:通過PWM的模式將模擬值輸入到pin,調用analogWrite()后,相應的pin會產生一個指定占空比的穩(wěn)定方波。
value:PWM占空比,PWM輸出位數為8,其范圍在0到255對應占空比為0到100%,帶PWM功能的引腳標會有波浪線。