arduino庫函式 IO口

2021-09-29 01:14:53 字數 3071 閱讀 9304

pinmode(pin, mode)

void pinmode(uint8_t, uint8_t);

在使用輸入或輸出功能前,你需要先通過pinmode() 函式配置引腳的模式為輸入模式或輸出模式。

digitalwrite(pin, value)

void digitalwrite(uint8_t, uint8_t);

digitalread(pin)

int digitalread(uint8_t);

analogread(pin)

int analogread(uint8_t);

模擬輸入引腳是帶有adc(analog-to-digital converter,模數轉換器)功能的引腳。

它可以將外部輸入的模擬訊號轉換為晶元運算時可以識別的數碼訊號,從而實現讀入模擬值的功能。

模擬輸入功能需要使用analogread() 函式。

arduino uno模擬輸入功能有10位精度,即可以將0~5v的電壓訊號轉換為0~1023的整數形式表示。

analogwrite(pin,value)

void analogwrite(uint8_t, int);

使用analogwrite() 函式實現pwm輸出功能。

在arduino uno中,提供pwm功能的引腳為3、5、6、9、10、11。

在analogwrite() 和analogread() 函式內部,已經完成了引腳的初始化,因此不用在setup() 函式中進行初始化操作。

analogreference()

void analogreference(uint8_t mode);

analogreference(type)

注:改變參考值的時候,剛開始的讀數可能不準確。

不要用低於0v或高於5v的電壓加在aref引腳。如果使用加在aref的外部電壓作為參考那一定要在呼叫analogread()之前設定analogreference為external,否則可能毀壞晶元。

也可以使用乙個5千歐的電阻連線外部參考電壓到aref引腳,這樣可以方便地在內外參考電壓間轉換,不過請注意電阻將改變原先你想要的參考值,因為在aref引腳內部有個32千歐的內建電阻。這樣兩個電阻就可以分壓了,例如:加的是2.5v,那麼在aref引腳的電壓就是:2.5 * 32 / (32 + 5) = ~2.2v 。

tone()

void tone(uint8_t _pin, unsigned int frequency, unsigned long duration = 0);

tone() 主要用於arduino連線蜂鳴器或揚聲器發聲。可以讓指定引腳產生乙個占空比為50%的指定頻率的方波。

tone(pin, frequency) tone(pin, frequency, duration)
notone(pin)

void notone(uint8_t _pin);

停止指定引腳上的方波輸出。

pulsein()

unsigned long pulsein(uint8_t pin, uint8_t state, unsigned long timeout = 1000000l);

檢測指定引腳上的脈衝訊號寬度。

例如當要檢測高電平脈衝時,pulsein() 會等待指定引腳輸入的電平變高,當變高後開始記時,直到輸入電平變低,停止計時。

pulseln() 函式會返回這個脈衝訊號持續的時間,即這個脈衝的寬度。

函式還可以設定超時時間。如果超過設定時間,仍未檢測到脈衝,則會退出pulsein()函式並返回0。

當沒有設定超時時間時,pulsein() 會預設1秒鐘的超時時間。

返回值返回脈衝寬度,單位微秒,資料型別為無符號長整型。如果在指定時間內沒有檢測到脈衝,則返回0。

attachinterrupt(pin, isr, mode)
對中斷引腳進行初始化配置,以開啟arduino的外部中斷功能

型號 編號

int.0

int.1

int.2

int.3

int.4

int.5

uno\ethernet23

mega256023

2120

1918

leonardo32

01due所有io口均可

detachinterrupt(pin)
中斷分離函式,關閉中斷功能。

外部中斷控制暫存器-eicra

isc11

isc10

isc01

isc00

int0:(isc11&isc10) int1:(isc01&isc00)

00:低電平觸發

01:邏輯變化觸發

10:下降沿觸發

11:上公升沿觸發

外部中斷遮蔽暫存器-eimsk

int1

int0

0:中斷關閉

1:中斷使能

外部中斷標誌位暫存器-eifr

intf1

intf0

當中斷觸發標誌位置高,執行isr或向標誌位寫』1』時標誌位重置

#define exint_low				0b00//低電平觸發

#define exint_change 0b01//邏輯變化觸發

#define exint_fall 0b10//下降沿觸發

#define exint_rise 0b11//上公升沿觸發

void setinterrupt()//外部中斷

// exint0(p2)

isr(int0_vect)

// exint1(p3)

isr(int1_vect)

arduino庫函式WiFiEsp的使用(一)

本人esp8266菜鳥一枚,想將arduino硬體接入網路,開始學習esp8266。一開始我在網上看到了被廣泛使用的esp8266wfif庫函式,對於esp8266開發十分有幫助。我之前買了一塊nodemcu,使用這個庫函式進行開發,過程十分方便。我當時就想這個庫函式能不能用到arduino nuo...

基礎IO操作(庫函式)

常用的檔案操作 fopen 檔名,開啟方式 開啟乙個檔案 開啟方式 r 開啟唯讀檔案,檔案必須存在 r 開啟可讀寫的檔案,檔案必須存在 w 開啟只寫檔案,若檔案不存在則建立檔案,檔案存在則清空原檔案內容 w 開啟可讀可寫檔案,若檔案不存在則建立檔案,檔案存在則清空原檔案內容 a 以附加的方式開啟只寫...

常用標準I O庫函式總結

1 fopen fopen 函式主要用於對檔案和終端的輸入輸出。但是如果要對裝置的行為進行更為明確的行為控制,那最好使用底層系統呼叫,因為這樣可以避免庫函式帶來的一些非預期的潛在 函式原型 include file fopen const char filename,const char mode ...