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