《硬件趣學Python編程》 5、LED與跑馬燈_第1頁
《硬件趣學Python編程》 5、LED與跑馬燈_第2頁
《硬件趣學Python編程》 5、LED與跑馬燈_第3頁
《硬件趣學Python編程》 5、LED與跑馬燈_第4頁
《硬件趣學Python編程》 5、LED與跑馬燈_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

+硬件趣學Python編程

一閃一閃亮晶晶從LED閃爍到跑馬燈牛艾科技目錄ContentsSuccessWords2第一部分認識循環(huán)結構第二部分什么是LED第三部分Skids的LED與控制接口第四部分程序的順序結構與LED閃爍第五部分程序的循環(huán)結構與跑馬燈目錄ContentsSuccessWords3第一部分認識循環(huán)結構4認識循環(huán)結構根據循環(huán)執(zhí)行次數的確定性,分為確定次數循環(huán)和非確定次數循環(huán)確定次數循環(huán)指循環(huán)體對循環(huán)次數有明確的定義,這類循環(huán)在Python中被稱為“遍歷循環(huán)”,其中,循環(huán)次數采用遍歷結構中元素個數來體現,具體采用for語句實現。非確定次數循環(huán)指程序不確定循環(huán)體可能的執(zhí)行次數,而通過條件判斷是否繼續(xù)執(zhí)行循環(huán)體,Python提供了根據判斷條件執(zhí)行程序的無限循環(huán),具體采用while語句實現。5認識循環(huán)結構Python通過保留字for實現“遍歷循環(huán)”,基本使用方法如下:for<循環(huán)變量>in<遍歷結構>:<語句塊>之所以稱為“遍歷循環(huán)”,是因為for語句的循環(huán)執(zhí)行次數是根據遍歷結構中元素個數確定的。遍歷循環(huán)可以理解為從遍歷結構中逐一提取元素,放在循環(huán)變量中,對于每個所提取的元素執(zhí)行一次語句塊。6認識循環(huán)結構遍歷結構可以是字符串、文件、組合數據類型或range()函數,常用的使用方式如下循環(huán)N次foriinrange(N):<語句塊>遍歷文件fi的每一行forlineinfi:<語句塊>遍歷字符串sforcins:<語句塊>7認識循環(huán)結構遍歷循環(huán)還有一種擴展模式,使用方法如下:

for<循環(huán)變量>in<遍歷結構>:

<語句塊1>

else:

<語句塊2>8認識循環(huán)結構Python通過保留字while實現無限循環(huán),基本使用方法如下:

while<條件>:

<語句塊>其中<條件>與if語句中的判斷條件一樣,結果為True和False9認識循環(huán)結構循環(huán)結構有兩個輔助保留字:break和continue,它們用來輔助控制循環(huán)執(zhí)行。break用來跳出最內層for或while循環(huán),脫離該循環(huán)后續(xù)執(zhí)行,例如其中,break語句跳出了最內層for循環(huán),但仍然繼續(xù)執(zhí)行外層循環(huán)。每個break語句只有能力跳出當前層次循環(huán)。兩個程序執(zhí)行后的效果分別為:>>>

>>>

PYHONPY10認識循環(huán)結構continue用來結束當前當次循環(huán),即跳出循環(huán)體中下面尚未執(zhí)行的語句,但不跳出當前循環(huán)。對于while循環(huán),繼續(xù)求解循環(huán)條件。而對于for循環(huán),程序流程接著遍歷循環(huán)列表。對比continue和break語句,如下:目錄ContentsSuccessWords11第二部分什么是LED12什么是LEDLED(LightEmittingDiode),又稱為發(fā)光二極管,是一種能夠將電能轉化為可見光的半導體器件,由一個PN結組成,具有單向導電性。LED一端是電源的負極,另一端連接電源的正極,接通后LE放光LED的體積極小并且很脆弱,不便于直接使用。通常用一個保護外殼并將它封存在內,這樣就構成了易于使用的LED燈珠。13LED的發(fā)光原理當電流通過時,N型半導體內的電子與P型半導體內的空穴在發(fā)光層劇烈地碰撞復合產生光子,以光子的形式發(fā)出能量(即大家看見的光)14LED的特點LED具有如下優(yōu)點:寬電壓安全低能耗環(huán)保長壽命15無處不在的LED目錄ContentsSuccessWords16第三部分Skids的LED與控制接口17Skids的LEDSkids集成了4個LED,在設備的頂部(屏幕上方),其顏色分別為紅、黃、藍、綠18Skids的LED控制引腳LED控制使能引腳:PIN2LED1控制引腳:PIN14(紅色)LED2控制引腳:PIN32(黃色)LED3控制引腳:PIN33(藍色)LED4控制引腳:PIN27(綠色)19LED的Python控制代碼#導入用于引腳控制的Python庫frommachineimportPin#獲取引腳led_en=Pin(2,Pin.OUT)led1=Pin(14,Pin.OUT)led2=Pin(27,Pin.OUT)led3=Pin(33,Pin.OUT)led4=Pin(32,Pin.OUT)#使能LED控制,設置后4個LED全亮led_en.value(1)#關閉LED1led1.value(1)#開啟LED1led1.value(0)目錄ContentsSuccessWords20第四部分程序的順序結構與LED閃爍21程序的順序結構程序的基本結構包括順序結構、選擇結構和循環(huán)結構三種順序結構是最基本的程序結構,代碼按照從上到下的順序,一條語句一條語句的執(zhí)行,也是程序的默認執(zhí)行方式開始語句1語句2語句3結束22順序結構的案例

–LED閃爍功能要求:點亮LED11秒后關閉LED11秒后重啟點亮LED11秒后再次關閉LED123對應的實現代碼#導入所需的Python庫frommachineimportPinimporttime#獲取引腳led_en=Pin(2,Pin.OUT)led1=Pin(14,Pin.OUT)led2=Pin(27,Pin.OUT)led3=Pin(33,Pin.OUT)led4=Pin(32,Pin.OUT)#使能LED控制,同時將4個LED全部關閉led_en.value(1)led1.value(1)led2.value(1)led3.value(1)led4.value(1)#開啟LED1led1.value(0)#延時1秒time.sleep(1)#關閉LED1led1.value(1)#延時1秒time.sleep(1)#重新開啟LED1led1.value(0)#延時1秒time.sleep(1)#關閉LED1led1.value(1)24代碼說明time庫用來獲取時間和日期、測量時間間隔、延時時間等machine庫提供了與硬件設備相關的操作接口和類,其中Pin類定義了MCU引腳相關的配置程序的主要步驟依次為:初始化變量

設置LED狀態(tài)

開啟LED1延時后關閉LED1延時后開啟LED1延時后關閉LED1程序代碼嚴格按照順序從第一行執(zhí)行到最后一行,最后一行代碼執(zhí)行完畢后,程序結束目錄ContentsSuccessWords25第五部分程序的循環(huán)結構與跑馬燈26思考上面的程序只要求LED開啟和關閉兩次,如果要開啟和關閉LED一百次呢,代碼如何書寫?難道上面的語句要重復100遍?如果要求程序不停的開啟和關閉LED,永遠不停止,代碼該如何書寫???27程序的循環(huán)結構在分析實際問題時,我們經常遇到一些具有規(guī)律性的重復操作。當用程序來解決問題時,通過重復執(zhí)行某些代碼塊來到達目的。被重復執(zhí)行的代碼塊叫作循環(huán)體,能否繼續(xù)重復執(zhí)行取決于循環(huán)的終止條件。循環(huán)結構由循環(huán)體和循環(huán)終止條件兩部分組成。28循環(huán)結構示意圖29程序的循環(huán)結構循環(huán)程序需要注意循環(huán)變量的初值,循環(huán)條件和循環(huán)變量的增量,三者稱為循環(huán)三要素Python循環(huán)結構的分類:while循環(huán)語句for循環(huán)語句30while循環(huán)結構#循環(huán)變量count=0#循環(huán)條件whilecount<5:

#輸出0,1,2,3,4,

print(count)#循環(huán)變量的增量,對循環(huán)變量進行修改

count=count+131for循環(huán)結構#定義循環(huán)范圍words=["and","or","not"]#循環(huán)條件forwordinwords:

#輸出

and,or,not

print(word)

32用循環(huán)結構實現LED燈開啟關閉100次的操作count=0whilecount<100:

led1.value(0)time.sleep(5)led1.value(1)

time.sleep(3)

count=count+133用循環(huán)結構實現不停的LED燈開啟關閉操作#設置循環(huán)條件為True,則循環(huán)始終執(zhí)行whileTrue:led1.value(0)time.sleep(5)led1.value(1)time.sleep(3)

34LED跑馬燈的實現#開始循環(huán)whileTrue:

#將所有LED關閉forlinleds:l.value(1)

#開啟特定的LEDleds[i].value(0)

#計算下一個需要開啟的LED編號

i=(i+1)%4#延時1秒

time.sleep(1)frommachineimportPinimporttime#獲取引腳led_en=Pin(2,Pin.OUT)led1=Pin(14,Pin.OUT)led2=Pin(27,Pin.OUT)led3=Pin(33,Pin.OUT)led4=Pin(32,Pin.OUT)#定義LED數組,以便于后續(xù)操作leds=[led1,led2,led3,led4]#使能LED控

溫馨提示

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

評論

0/150

提交評論