版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Arduino編程控制與應(yīng)用能力模塊三掌握Arduino文本編程的應(yīng)用任務(wù)二完成LED閃爍的實(shí)現(xiàn)導(dǎo)入閃爍LED是Arduino自帶的經(jīng)典實(shí)例(Blink),同時(shí)也是生活場(chǎng)景應(yīng)用最多的效果,例如警車(chē)、消防車(chē)及救護(hù)車(chē)車(chē)頂?shù)木緹?,?shí)現(xiàn)LED一亮一滅閃爍的效果,接下來(lái)通過(guò)本次任務(wù)實(shí)現(xiàn)LED的閃爍效果。新授Newteaching1目錄一、Arduino基本程序架構(gòu)二、閃爍LED的基本函數(shù)三、變量的使用四、運(yùn)算符的使用一、Arduino基本程序架構(gòu)
從軟件設(shè)計(jì)角度,程序框架(架構(gòu))是一個(gè)可復(fù)用的軟件架構(gòu)解決方案,規(guī)定了應(yīng)用的體系結(jié)構(gòu),闡明了軟件體系結(jié)構(gòu)中各層次間及其層次內(nèi)部各組件間的毅力關(guān)系、責(zé)任分配和控制流程,表現(xiàn)為一組接口、抽象類(lèi)以及實(shí)例間協(xié)作的方法。
1如圖所示,我們可以通過(guò)菜單欄選擇“文件”→“示例”→“01.Basics”→“BareMinimum”來(lái)打開(kāi)一個(gè)最簡(jiǎn)單的Arduino程序架構(gòu)。2打開(kāi)后可以看到一個(gè)最簡(jiǎn)單的Arduino程序架構(gòu),最少包含了setup()和loop()兩個(gè)函數(shù),如圖所示。3setup()函數(shù)和loop()函數(shù)可以為空,但這兩個(gè)函數(shù)一定不能被刪除,否則會(huì)出現(xiàn)編譯錯(cuò)誤,刪除loop()函數(shù)編譯結(jié)果如圖所示。多數(shù)Arduino程序架構(gòu)除了setup()和loop()兩個(gè)必備函數(shù)外,還包含聲明部分。聲明部分用于聲明變量和接口名稱(chēng)、引入類(lèi)庫(kù)文件等。二、閃爍LED的基本函數(shù)
函數(shù)在程序里通常是指一組執(zhí)行一個(gè)功能的語(yǔ)句,被包裝在一個(gè)函數(shù)名稱(chēng)中。只需要一個(gè)函數(shù)名稱(chēng),就能調(diào)用這個(gè)函數(shù)?;竞瘮?shù)主要包括I/O控制函數(shù)、時(shí)間函數(shù)、中斷函數(shù)、數(shù)學(xué)函數(shù)、串口通信函數(shù)等。二、閃爍LED的基本函數(shù)
板載閃爍LED的實(shí)現(xiàn)需要用到數(shù)字I/O口13,需要用到I/O控制函數(shù)(I/O輸入輸出定義函數(shù)、I/O輸出電平定義函數(shù))和延時(shí)函數(shù)。
(一)pinMode()I/O輸入輸出定義函數(shù)pinMode通常放置在setup()函數(shù)內(nèi),它的作用是設(shè)置某個(gè)管腳的模式,13是待設(shè)置管腳的編號(hào),OUTPUT是指該管腳類(lèi)型為輸出(如果是INPUT則表示管腳類(lèi)型為輸入)。(二)digitalWrite()I/O輸出電平定義函數(shù)digitalWrite函數(shù)的作用是設(shè)置某個(gè)管腳的電位狀態(tài)。(三)delay()延時(shí)函數(shù)delay是一個(gè)無(wú)返回值的函數(shù),參數(shù)是延時(shí)的時(shí)間長(zhǎng)度,單位是ms(毫秒)。三、變量的使用
變量的聲明方法為數(shù)據(jù)類(lèi)型+變量名(+變量初始化值)。變量名的寫(xiě)法一般為首字母小寫(xiě)。變量的數(shù)據(jù)類(lèi)型除了整型int外,常用的還有布爾型、字符型等,如表所示。變量的作用范圍與該變量在哪聲明有關(guān),大致分為全局變量和局部變量。類(lèi)型取值范圍說(shuō)明int-32768~32767(-215~215-1)整型unsignedint0~65535(0~216-1)無(wú)符號(hào)整型booleantrue或false(1或0)布爾型char-128~128字符型,用來(lái)存放ASCⅡ字符,可以將程序種的字符轉(zhuǎn)換成對(duì)應(yīng)的數(shù)字存儲(chǔ)(如將字符A存儲(chǔ)為65)。float-3.4028235E+38~3.4028235E+38浮點(diǎn)型,相當(dāng)于數(shù)學(xué)中的實(shí)數(shù)。運(yùn)算較慢且可能有誤差,實(shí)際使用中盡量轉(zhuǎn)換為整型處理。byte0~255字節(jié)型,多被用來(lái)傳輸串行數(shù)據(jù)三、變量的使用1.全局變量
若在程序開(kāi)頭的聲明區(qū)或是在沒(méi)有大括號(hào)限制的聲明區(qū),所聲明的變量作用域?yàn)檎麄€(gè)程序。即整個(gè)程序都可以使用這個(gè)變量代表的值或范圍,不局限于某個(gè)括號(hào)范圍內(nèi)。三、變量的使用2.局部變量
若在大括號(hào)內(nèi)的聲明區(qū)所聲明的變量,其作用域?qū)⒕窒抻诖罄ㄌ?hào)內(nèi)。若在主程序與各函數(shù)中都聲明了相同名稱(chēng)的變量,當(dāng)離開(kāi)主程序或函數(shù)時(shí),該局部變量將自動(dòng)消失。四、運(yùn)算符的使用
運(yùn)算符用于執(zhí)行程序代碼運(yùn)算,會(huì)針對(duì)一個(gè)以上操作數(shù)項(xiàng)目來(lái)進(jìn)行運(yùn)算。Arduino編程語(yǔ)言中使用了多種算術(shù)運(yùn)算符、比較運(yùn)算符和常見(jiàn)的邏輯運(yùn)算符。四、運(yùn)算符的使用1.常見(jiàn)的算術(shù)運(yùn)算符符號(hào)描述示例示例返回結(jié)果=賦值符號(hào)a=2a的值為2+加法符號(hào)1+23-減法符號(hào)2-11*乘法符號(hào)2*36/除法符號(hào)6/23%取模符號(hào)7%21++自加運(yùn)算i++等效于i=i+1若i的原值為2,運(yùn)行一次后結(jié)果為3--自減運(yùn)算i--等效于i=i-1若i的原值為2,運(yùn)行一次后結(jié)果為1+=復(fù)合加運(yùn)算i+=2等效于i=i+2若i的原值為2,運(yùn)行一次后結(jié)果為4-=復(fù)合減運(yùn)算i-=2等效于i=i-2若i的原值為2,運(yùn)行一次后結(jié)果為0四、運(yùn)算符的使用2.比較運(yùn)算符符號(hào)描述示例示例返回結(jié)果==等于符號(hào)a==2若a等于2則為真,否則為假!=不等于符號(hào)a!=2若a不等于2則為真,否則為假<小于符號(hào)a<2若a小于2則為真,否則為假>大于符號(hào)a>2若a大于2則為真,否則為假<=小于等于符號(hào)a<=2若a小于或等于2則為真,否則為假>=大于等于符號(hào)a>=2若a大于或等于2則為真,否則為假四、運(yùn)算符的使用3.常見(jiàn)的邏輯運(yùn)算符符號(hào)描述示例示例返回結(jié)果||邏輯或a>2||a<3若a大于2或a小于3則為真,否則為假&&邏輯與a>2&&a<3若a大于2且a小于3則為真,否則為假!邏輯非!a>2若a小于或等于2則為真,否則為假任務(wù)實(shí)施2TaskImplementation一、任務(wù)準(zhǔn)備(一)軟件及硬件準(zhǔn)備序號(hào)軟件及硬件名稱(chēng)數(shù)量1ArduinoIDE/2聯(lián)網(wǎng)的電腦1臺(tái)/人3鍵盤(pán)1個(gè)/人4鼠標(biāo)1個(gè)/人5ArduinoUNO開(kāi)發(fā)板1塊/人6USB串口線1根/人一、任務(wù)準(zhǔn)備(二)場(chǎng)地設(shè)備準(zhǔn)備(三)安全防護(hù)準(zhǔn)備任務(wù)實(shí)施前需要做好場(chǎng)地防護(hù)準(zhǔn)備以及檢查實(shí)訓(xùn)場(chǎng)地和設(shè)備設(shè)施是否及存在安全隱患,如不正常請(qǐng)匯報(bào)老師并進(jìn)行處理方可實(shí)施任務(wù)。11.注意輸出電壓,避免開(kāi)發(fā)板被燒壞;22.注意電腦是否有空余且能正常工作的USB接口。
二、實(shí)施步驟(一)控制電路連接
連接線的方頭端接口連接ArduinoUNO控制板,另一端USB接口連接電腦。
二、實(shí)施步驟(二)控制程序編寫(xiě)與上傳
步驟1:打開(kāi)ArduinoIDE軟件,進(jìn)入界面。
二、實(shí)施步驟(二)控制程序編寫(xiě)與上傳
步驟2:在工具-端口-選擇對(duì)應(yīng)的端口。若分不清端口,先把開(kāi)發(fā)板連接上,查看端口,有COM1、COM3、COM4、COM5、COM6;斷開(kāi)開(kāi)發(fā)板連接,查看端口,有COM3、COM4、COM5、COM6;少了一個(gè)COM10端口,那么COM10就是對(duì)應(yīng)的端口。
二、實(shí)施步驟(三)LED閃爍
步驟1:新建一個(gè)文檔,//后的代號(hào)可刪除;在【代碼編寫(xiě)區(qū)域】中的“voidsetup(){”下方輸入“pinMode(13,OUTPUT);在viodloop(){”,接著在“voidloop(){”下方輸入“digitalWrite(13,HIGH);”,代碼如圖3-2-9所示。提示:代碼編寫(xiě)過(guò)程一定注意區(qū)分大小寫(xiě)。
二、實(shí)施步驟(三)LED閃爍
步驟2:在“digitalWrite(13,HIGH);”下方輸入“delay(1000);”,再換行輸入“digitalWrite(13,LOW);”,最后換行輸入“delay(1000);”,如圖3-2-10所示。
二、實(shí)施步驟(三)LED閃爍
步驟3:點(diǎn)擊上傳,如果操作順利,將出現(xiàn)“上傳成功”的提示,板載“L”燈將以1000ms的間隔進(jìn)行閃爍。
二、實(shí)施步驟(三)LED閃爍
步驟4:控制程序解析“pinMode(13,OUTPUT)”即是把13號(hào)引腳配置為輸出模式。配置成輸出模式后,你還需要使用“digitalWrite()”讓其輸出高電平或者是低電平;“delay(1000)”為程序運(yùn)行延時(shí)1000ms即1s;因此該控制程序?yàn)?3號(hào)引腳上的“L”燈點(diǎn)亮(HIGH)1s,然后熄滅(LOW)1s,以此循環(huán)達(dá)成閃爍的效果。
二、實(shí)施步驟(四)LED閃爍變量
步驟1:新建一個(gè)文檔,//后的代號(hào)可刪除;在【代碼編寫(xiě)區(qū)域】輸入“intledPin=13;”;換行再輸入“intdelaTtime=1000;”,如圖3-2-14所示。
二、實(shí)施步驟(四)LED閃爍變量
步驟2:在【代碼編寫(xiě)區(qū)域】中的“voidsetup(){”下方輸入“pinMode(ledPin,OUTPUT);”,在“viodloop(){”下方輸入“digitalWrite(ledPin,HIGH);”,隨后換行輸入“delay(delayTime);”,再換行輸入“digitalWrite(ledPin,LOW);”,最后換行輸入“delay(delayTime);”,代碼如圖3-2-15所示。
二、實(shí)施步驟(四)LED閃爍變量
步驟3:點(diǎn)擊上傳,如果操作順利,將出現(xiàn)“上傳成功”的提示,板載“L”燈將以delayTime(1000ms)的間隔進(jìn)行閃爍。
二、實(shí)施步驟(四)LED閃爍變量
步驟4:控制程序解析setup函數(shù)的內(nèi)容只執(zhí)行一遍,loop函數(shù)內(nèi)容無(wú)限次循環(huán)運(yùn)行。ledPin代替了13號(hào)管腳的“L”燈。變量“delayTime”在初始化中被賦值“1000”,所以運(yùn)行延時(shí)變量“delayTime”的值為“1000”,以此為循環(huán),形成閃爍的效果。這個(gè)案例中,變量ledPin和delayTime為全局變量。二、實(shí)施步驟(五)LED閃爍變量的變化
步驟1:在LED閃爍變量的代碼基礎(chǔ)上,在最后一行輸入“delayTime=delayTime+100;”,代碼如圖所示。
二、實(shí)施步驟(五)LED閃爍變量的變化
步驟2:點(diǎn)擊上傳,如果操作順利,將出現(xiàn)“上傳成功”的提示;板載“L”燈最初將以1000毫秒的間隔進(jìn)行閃爍,隨后每進(jìn)行一次循環(huán)延時(shí)的時(shí)間就會(huì)增加100ms。
二、實(shí)施步驟(五)LED閃爍變量的變化
步驟3:控制程序解析setup函數(shù)的內(nèi)容只執(zhí)行一遍,loop的內(nèi)容無(wú)限次循環(huán)運(yùn)行。ledpin代替了13號(hào)管腳的“L”燈。變量“delayTime”在初始化中被賦值“1000”,所以第一次運(yùn)行時(shí)“delayTime”的值為“1000”。第一次運(yùn)行到最后一句時(shí),“delayTime”被重新賦值為“自身原值+100”(即1000+100)。所以loop部分語(yǔ)句運(yùn)行第二遍時(shí),延時(shí)語(yǔ)句中的“delayTime”值為“1100”,最后一句時(shí)“del
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 長(zhǎng)沙-PEP-2024年小學(xué)六年級(jí)英語(yǔ)第5單元真題
- 醫(yī)院糖皮質(zhì)激素治療流程制度
- 冬季雨天混凝土施工方案
- 電力設(shè)備帶式輸送機(jī)維護(hù)方案
- 文物修復(fù)材料選用方案
- 電子產(chǎn)品銷(xiāo)售及客戶(hù)滿(mǎn)意度提升方案
- 2024-2025學(xué)年河南省青桐鳴大聯(lián)考高三上學(xué)期10月月考地理試題及答案
- 節(jié)假日搬家服務(wù)方案分析
- PE給水管道維護(hù)與管理方案
- 2020年養(yǎng)老院安全保障工作總結(jié)
- CPA會(huì)計(jì)知識(shí)點(diǎn)總結(jié)完美版
- 溫度二次儀表計(jì)量標(biāo)準(zhǔn)技術(shù)
- 康復(fù)醫(yī)院設(shè)置標(biāo)準(zhǔn)匯總
- CA碼生成原理及matlab程序?qū)崿F(xiàn)
- 國(guó)家開(kāi)放大學(xué)《電氣傳動(dòng)與調(diào)速系統(tǒng)》章節(jié)測(cè)試參考答案
- 旋風(fēng)除塵器設(shè)計(jì)與計(jì)算
- 《裝配基礎(chǔ)知識(shí)培訓(xùn)》
- 出口退稅的具體計(jì)算方法及出口報(bào)價(jià)技巧
- PCB鍍層與SMT焊接
- Unit 1 This is my new friend. Lesson 5 課件
- 2019年青年英才培養(yǎng)計(jì)劃項(xiàng)目申報(bào)表
評(píng)論
0/150
提交評(píng)論