設(shè)置參考電壓
通常arduino默認(rèn)的工作電壓是5V冒萄,當(dāng)用戶沒(méi)有設(shè)置參考電壓時(shí)臊岸,arduino會(huì)使用默認(rèn)的工作電壓作為參考電壓,而多數(shù)的arduion控制器的工作電壓都是5V尊流。
當(dāng)測(cè)量的電壓較小或者對(duì)測(cè)量精度要求較高時(shí)帅戒,可以通過(guò)降低參考電壓來(lái)使測(cè)量的結(jié)果更為精準(zhǔn)。arduino提供內(nèi)部參考電壓崖技,但內(nèi)部的參考電壓并不準(zhǔn)確蜘澜,如果使用的話反而會(huì)使精度降低。在實(shí)際應(yīng)用中响疚,一般通過(guò)輸入高精度的外部參考電壓來(lái)提高檢測(cè)精度。
在Arduino控制器上有一個(gè)ARER引腳瞪醋,可以從該引腳給Arduino輸入外部參考電壓忿晕,同時(shí)需要使用analogReference()函數(shù)來(lái)設(shè)置arduino使用外部參考電壓。
analogReference(type);
type參數(shù)參考下表:
外部輸入電壓必須大于0银受,小于當(dāng)前的工作電壓(一般是5V)践盼,否則可能損壞arduino控制器。
其中讀取的模擬輸入口的電壓宾巍,其函數(shù)返回方法:
(這里確實(shí)有些抽象咕幻,不太理解,因?yàn)闆](méi)有具體的實(shí)例來(lái)觀察到底是怎么測(cè)量計(jì)算的顶霞。)
外部中斷
程序運(yùn)行過(guò)程中時(shí)常需要監(jiān)控一些事件的發(fā)生肄程,如對(duì)某一傳感器的檢測(cè)結(jié)果做出反應(yīng),使用輪詢的方式進(jìn)行檢測(cè)時(shí)效率較低选浑,等待時(shí)間較長(zhǎng)蓝厌,而使用中斷的方式進(jìn)行檢測(cè)則可以達(dá)到實(shí)時(shí)檢測(cè)的效果。
外部中斷是由外部設(shè)備發(fā)起請(qǐng)求的中斷古徒,要想使用外部中斷拓提,就需要了解中斷引腳的位置,根據(jù)外部設(shè)備選擇中斷模式隧膘,以及編寫(xiě)一個(gè)中斷被觸發(fā)后需執(zhí)行的中斷函數(shù)代态。
①在不同型號(hào)的arduino控制器上,中斷的引腳位置也不相同疹吃。
②為了設(shè)置中斷模式蹦疑,還需要了解設(shè)備出發(fā)外部中斷的輸入信號(hào)類型。中斷模式也是中斷觸發(fā)的方式萨驶。
在UNO板子上不支持高電平觸發(fā)必尼。
③中斷函數(shù)
除了設(shè)置中斷 模式外,還需要編寫(xiě)一個(gè)響應(yīng)中斷的處理程序——中斷函數(shù),當(dāng)中斷被觸發(fā)后判莉,便可以讓Arduino運(yùn)行中斷函數(shù)豆挽。
這些準(zhǔn)備工作完成后,還需要在setup()中使用attachInterrupt()函數(shù)對(duì)中斷引腳進(jìn)行初始化配置券盅,以開(kāi)啟arduino的外部中斷功能帮哈。
attachInterrupt(interrupt,function,mode)
interrupt,中斷編號(hào),注意并不是引腳編號(hào)锰镀。
function,中斷函數(shù)名娘侍,當(dāng)中斷函數(shù)被觸發(fā)后即會(huì)運(yùn)行此函數(shù)名詞代表的中斷函數(shù)。
mode,中斷模式泳炉。
例如:attachInterrupt(0,hello,FALLING);
如果不需要用外部中斷了憾筏,則可以使用中斷分離函數(shù)detachInterrupt()來(lái)關(guān)閉中斷功能。
detachInterrupt(interrupt)
禁用外部中斷花鹅。