《Arduino零基礎C語言編程》課件-ch2-2.6 基本函數(shù)_第1頁
《Arduino零基礎C語言編程》課件-ch2-2.6 基本函數(shù)_第2頁
《Arduino零基礎C語言編程》課件-ch2-2.6 基本函數(shù)_第3頁
《Arduino零基礎C語言編程》課件-ch2-2.6 基本函數(shù)_第4頁
《Arduino零基礎C語言編程》課件-ch2-2.6 基本函數(shù)_第5頁
已閱讀5頁,還剩9頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

2.6基本函數(shù)數(shù)字I/O(1)pinMode():設置引腳格式:voidpinMode(uint8_tpin,uint8_tmode)作用:配置引腳為輸出或輸出模式。參數(shù):pin引腳編號mode:INPUT,OUTPUT,或INPUT_PULLUP示例:intledPin=13;//LEDconnectedtodigitalpin13

voidsetup(){pinMode(ledPin,OUTPUT);//setsthedigitalpinasoutput}

voidloop(){digitalWrite(ledPin,HIGH);//setstheLEDondelay(1000);//waitsforaseconddigitalWrite(ledPin,LOW);//setstheLEDoffdelay(1000);//waitsforasecond}注解:模擬引腳也可以當作數(shù)字引腳使用,編號為14(對應模擬引腳0)到19(對應模擬引腳5)。Arduino零基礎C語言編程12025/2/72.6基本函數(shù)(2)digitalWrite():寫數(shù)字引腳

格式:voiddigitalWrite(uint8_tpin,uint8_tvalue)作用:寫數(shù)字引腳,對應引腳的高低電平.在寫引腳之前,需要將引腳設置為OUTPUT模式。參數(shù):pin引腳編號valueHIGH或LOW示例:intledPin=13;//LEDconnectedtodigitalpin13

voidsetup(){pinMode(ledPin,OUTPUT);//setsthedigitalpinasoutput}

voidloop(){digitalWrite(ledPin,HIGH);//點亮LEDdelay(1000);//等待1秒digitalWrite(ledPin,LOW);//關(guān)delay(1000);//waitsforasecond}Arduino零基礎C語言編程22025/2/72.6基本函數(shù)(3)digitalRead():讀數(shù)字引腳

格式:intdigitalRead(uint8_tpin) 作用:讀數(shù)字引腳,返回引腳的高低電平.在讀引腳之前,需要將引腳設置為INPUT模式。參數(shù):pin引腳編號返回值:HIGH或LOW示例:intledPin=13;//LEDconnectedtodigitalpin13intinPin=7;//pushbuttonconnectedtodigitalpin7intval=0;//variabletostorethereadvalue

voidsetup(){pinMode(ledPin,OUTPUT);//setsthedigitalpin13asoutputpinMode(inPin,INPUT);//setsthedigitalpin7asinput}

voidloop(){val=digitalRead(inPin);//readtheinputpindigitalWrite(ledPin,val);//setstheLEDtothebutton'svalue}注解:

如果引腳沒有鏈接到任何地方,那么將隨機返回HIGH或LOW.Arduino零基礎C語言編程32025/2/72.6基本函數(shù)2.模擬I/O(1)analogReference():配置參考電壓

格式:voidanalogReference(uint8_ttype)作用:配置模式引腳的參考電壓。函數(shù)analogRead在讀取模擬值之后,將根據(jù)參考電壓將模擬值轉(zhuǎn)換到[0,1023]區(qū)間。有以下類型:DEFAULT:默認5V。INTERNAL:低功耗模式。ATmega168和ATmega8對應1.1V到2.56V。EXTERNAL:擴展模式。通過AREF引腳獲取參考電壓。參數(shù):type參考類型(DEFAULT/INTERNAL/EXTERNAL)Arduino零基礎C語言編程42025/2/72.6基本函數(shù)2.模擬I/O(2)analogRead():讀模擬引腳格式:intanalogRead(uint8_tpin) 作用:讀模擬引腳,每讀一次需要花1微秒的時間。參數(shù):pin引腳編號返回值:0到1023之間的值示例:intanalogPin=3;//potentiometerwiper(middleterminal)connectedtoanalogpin3//outsideleadstogroundand+5Vintval=0;//variabletostorethevalueread

voidsetup(){Serial.begin(9600);//setupserial}

voidloop(){val=analogRead(analogPin);//readtheinputpinSerial.println(val);//debugvalue}Arduino零基礎C語言編程52025/2/72.6基本函數(shù)2.模擬I/O(3)analogWrite():寫模擬引腳格式:voidanalogWrite(uint8_tpin,intvalue)作用:寫一個模擬值(PWM)到引腳??梢杂脕砜刂芁ED的亮度,或者控制電機的轉(zhuǎn)速。在執(zhí)行該操作后,應該等待一定時間后才能對該引腳進行下一次的讀或?qū)懖僮?。PWM的頻率大約為490Hz。在一些基于ATmega168的新的Arduino控制板(如Mini和BT)中,該函數(shù)支持以下引腳:3,5,6,9,10,11。在基于ATmega8的型號中支持9,10,11引腳。參數(shù):pin引腳編號value0到255之間的值,0對應off,255對應on示例:intledPin=9;//LEDconnectedtodigitalpin9intanalogPin=3;//potentiometerconnectedtoanalogpin3intval=0;//variabletostorethereadvalue

voidsetup(){pinMode(ledPin,OUTPUT);//setsthepinasoutput}

voidloop(){val=analogRead(analogPin);//readtheinputpinanalogWrite(ledPin,val/4);//analogReadvaluesgofrom0to1023,analogWritevaluesfrom0to255}Arduino零基礎C語言編程62025/2/72.6基本函數(shù)3.高級I/O(1)shiftOut():位移輸出函數(shù)格式:voidshiftOut(uint8_tdataPin,uint8_tclockPin,uint8_tbitOrder,byteval)作用:輸入val數(shù)據(jù)后Arduino會自動把數(shù)據(jù)移動分配到8個并行輸出端。其中dataPin為連接DS的引腳號,clockPin為連接SH_CP的引腳號,bitOrder為設置數(shù)據(jù)位移順序,分別為高位先入MSBFIRST或者低位先入LSBFIRST。參數(shù):dataPin數(shù)據(jù)引腳clockPin時鐘引腳bitOrder移位順序(MSBFIRST或LSBFIRST)val數(shù)據(jù)示例://DothisforMSBFIRSTserialintdata=500;//shiftouthighbyteshiftOut(dataPin,clock,MSBFIRST,(data>>8));//shiftoutlowbyteshiftOut(dataPin,clock,MSBFIRST,data);

//OrdothisforLSBFIRSTserialdata=500;//shiftoutlowbyteshiftOut(dataPin,clock,LSBFIRST,data);//shiftouthighbyteshiftOut(dataPin,clock,LSBFIRST,(data>>8));Arduino零基礎C語言編程72025/2/72.6基本函數(shù)3.高級I/O(2)pulseIn():讀脈沖格式:unsignedlongpulseIn(uint8_tpin,uint8_tstate,unsignedlongtimeout) 作用:讀引腳的脈沖,脈沖可以是HIGH或LOW。如果是HIGH,函數(shù)將先等引腳變?yōu)楦唠娖剑缓箝_始計時,一直到變?yōu)榈碗娖綖橹?。返回脈沖持續(xù)的時間長短,單位為微秒。如果超時還沒有讀到的話,將返回0。參數(shù):pin引腳編號state脈沖狀態(tài)timeout超時時間(us)示例:下面的例子演示了統(tǒng)計高電平的繼續(xù)時間:intpin=7;unsignedlongduration;

voidsetup(){pinMode(pin,INPUT);}

voidloop(){duration=pulseIn(pin,HIGH);}Arduino零基礎C語言編程82025/2/72.6基本函數(shù)4.時間(1)millis():毫秒時間格式:unsignedlongmillis(void)作用:獲取機器運行的時間長度,單位毫秒。系統(tǒng)最長的記錄時間接近50天,如果超出時間將從0開始。注意,時間為unsignedlong類型,如果用int保存時間將得到錯誤結(jié)果。(2)delay(ms):延時(毫秒)

格式:voiddelay(unsignedlongms)作用:延時,單位毫秒(1秒有1000毫秒)。(3)delayMicroseconds(us):延時(微秒)格式:voiddelayMicroseconds(unsignedintus)作用:延時,單位為微妙(1毫秒有1000微妙)。如果延時的時間有幾千微妙,那么建議使用delay函數(shù)。目前參數(shù)最大支持16383微秒(不過以后的版本中可能會變化)。Arduino零基礎C語言編程92025/2/72.6基本函數(shù)5.數(shù)學庫(1)min():最小值(2)max():最大值(3)abs():求絕對值(4)constrain():調(diào)整到區(qū)間(5)map():等比映射

(6)pow():指數(shù)函數(shù)(7)sqrt():開平方6.三角函數(shù)sin(),cos(),tan()floatsin(floatrad)//正弦函數(shù)

floatcos(floatrad)//余弦函數(shù)

floattan(floatrad)//正切函數(shù)

Arduino零基礎C語言編程102025/2/72.6基本函數(shù)7.隨機數(shù):設置隨機種子

(1)randomSeed()格式:voidrandomSeed(unsignedintseed)作用:可以用當前時間作為隨機種子,隨機種子的設置對產(chǎn)生的隨機序列有影響。參數(shù):seed隨機種子

(2)random():生成隨機數(shù)

格式1:longrandom(longhowbig)作用:生成[0,howbig-1]范圍的隨機數(shù)。參數(shù):howbig最大值格式2::longrandom(longhowsmall,longhowbig)作用:生成[howsmall,howbig-1]范圍的隨機數(shù).參數(shù):howsmall最小值howbig最大值Arduino零基礎C語言編程112025/2/72.6基本函數(shù)8.隨機數(shù):設置隨機種子

#definelowByte(w)((w)&0xff)//取低字節(jié)

#definehighByte(w)((w)>>8)//取高字節(jié)

#definebitRead(value,bit)(((value)>>(bit))&0x01)//讀一個bit

#definebitWrite(value,bit,bitvalue)(bitvalue

?bitSet(value,bit)

:bitClear(value,bit))//寫一個bit

#definebitSet(value,bit)((value)|=(1UL<<(bit)))//設置一個bit

#definebitClear(value,bit)((value)&=~(1UL<<(bit)))/

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論