流水燈多是你們最常常DIY的東西,一個是由於簡單容易實現,再就是效果不錯。爲了演示MicroPython的強大功能,展示不一樣的用法,下面教你們用TPYBoard開發板DIY一個小紅綠燈板,一塊兒體驗python開發的魅力吧!python
關於TPYBoard學習
TPYBoard單片機開發板,現有TPYBoardV10一、v102兩個版本,其中v102爲v101的升級版,新增swd接口。採用python開發語言,提供了30個GPIO,輕鬆使用python開發物聯網產品。支持Python3.0及以上版本的直接運行,支持重力加速度傳感器,支持上百周邊外設配件。更多詳細信息、教程、實例可參考micropython網站http://www.micropython.net.cn 網站
1.實驗目的spa
1. 學習在PC機系統中擴展簡單I/O 接口的方法。
2. 進一步學習編制數據輸出程序的設計方法。
3. 學習模擬交通燈控制的方法。.net
2.所需元器件設計
220歐電阻一個
紅色LED數碼管一個
麪包板一塊
TPYBoard板子一塊
數據線一條
紅、綠、黃三個led燈
杜邦線若干code
3.點亮led燈教程
將三個led燈插在麪包板上,led負極插入麪包板的負極(橫向插孔),正極插入麪包板的縱向插,將222歐電阻插入麪包板的負極上(橫向插孔)和縱向插孔中,將led燈的正極分別與TPYBoard的引腳鏈接起來,由於要作紅綠燈,只需三個引腳便可,本人用的爲Y一、Y二、Y3三個引腳,將三個led燈的正極經過杜邦線鏈接到TPYboard的Y1,、Y二、Y3的引腳上,而後將電阻縱向插孔用杜邦線接到TPYboard的GND引腳,在main.py文件中將Y一、Y二、Y3引腳的電平拉高,便可看到三個燈同時亮起來。代碼爲:接口
- # main.py -- put your code here!
- import pyb
- led1 = pyb.Pin("Y1",pyb.Pin.OUT_PP)
- led2 = pyb.Pin("Y2",pyb.Pin.OUT_PP)
- led3 = pyb.Pin("Y3",pyb.Pin.OUT_PP)
- While True:
- led1.value(1)
- led2.value(1)
- led3.value(1)
4.點亮數碼管three
SM42056是0.56英寸一位共陰/紅色LED數碼管。一共十個引腳。當小數點在你的右下角時,上面一排五個引腳,從左至右依次爲g,f,地,a,b,下面一排五個引腳,從左至右依次爲 e,d,地,c,dp。咱們要想讓數碼管亮起來只須要將g,f,a,b,e,d,c,dp(在這用不到)在main.py中拉高電平,把地與TPYboard的GND引腳接起來,這樣就會顯示爲8。以下圖:
下面爲0-9數字對應針腳的高電平,即對應TPYboard的引腳拉高電平
數字高電平針腳
0 a,b,c,d,e,f
1 e,f
2 a,b,g,e,d
3 a,b,g,c,d
4 b,c,g,f
5 a,f,g,c,d
6 a,f,e,d,c,g
7 a,b,c
8 a,b,c,d,e,f,g
5.模擬紅綠燈
咱們按照上面的步驟作完之後,而後通電,修改main.py文件,便可讓燈隨着數碼管的變化而變化,具體代碼以下:
- # main.py -- put your code here!
- import pyb
- led1 = pyb.Pin("Y1",pyb.Pin.OUT_PP)
- led2 = pyb.Pin("Y2",pyb.Pin.OUT_PP)
- led3 = pyb.Pin("Y3",pyb.Pin.OUT_PP)
- x1 = pyb.Pin("X1",pyb.Pin.OUT_PP)
- x2 = pyb.Pin("X2",pyb.Pin.OUT_PP)
- x3 = pyb.Pin("X3",pyb.Pin.OUT_PP)
- x4 = pyb.Pin("X4",pyb.Pin.OUT_PP)
- x5 = pyb.Pin("X5",pyb.Pin.OUT_PP)
- x6 = pyb.Pin("X6",pyb.Pin.OUT_PP)
- x8 = pyb.Pin("X8",pyb.Pin.OUT_PP)
- def six():
- x1.value(1)
- x2.value(1)
- x3.value(1)
- x5.value(1)
- x6.value(1)
- x8.value(1)
- pyb.delay(1000)
- x1.value(0)
- x2.value(0)
- x3.value(0)
- x6.value(0)
- x5.value(0)
- x8.value(0)
- def nine():
- x1.value(1)
- x2.value(1)
- x3.value(1)
- x4.value(1)
- x5.value(1)
- x8.value(1)
- pyb.delay(1000)
- x1.value(0)
- x2.value(0)
- x3.value(0)
- x4.value(0)
- x5.value(0)
- x8.value(0)
- def eight():
- x1.value(1)
- x2.value(1)
- x3.value(1)
- x4.value(1)
- x5.value(1)
- x6.value(1)
- x8.value(1)
- pyb.delay(1000)
- x1.value(0)
- x2.value(0)
- x3.value(0)
- x4.value(0)
- x5.value(0)
- x6.value(0)
- x8.value(0)
- def zero():
- x2.value(1)
- x3.value(1)
- x4.value(1)
- x5.value(1)
- x6.value(1)
- x8.value(1)
- pyb.delay(1000)
- x2.value(0)
- x3.value(0)
- x4.value(0)
- x5.value(0)
- x6.value(0)
- x8.value(0)
- def seven():
- x3.value(1)
- x4.value(1)
- x8.value(1)
- pyb.delay(1000)
- x3.value(0)
- x4.value(0)
- x8.value(0)
- def five():
- x1.value(1)
- x2.value(1)
- x3.value(1)
- x5.value(1)
- x8.value(1)
- pyb.delay(1000)
- x1.value(0)
- x2.value(0)
- x3.value(0)
- x5.value(0)
- x8.value(0)
- def four():
- x1.value(1)
- x2.value(1)
- x4.value(1)
- x8.value(1)
- pyb.delay(1000)
- x1.value(0)
- x2.value(0)
- x4.value(0)
- x8.value(0)
- def three():
- x1.value(1)
- x3.value(1)
- x4.value(1)
- x5.value(1)
- x8.value(1)
- pyb.delay(1000)
- x1.value(0)
- x4.value(0)
- x3.value(0)
- x5.value(0)
- x8.value(0)
- def two():
- x1.value(1)
- x3.value(1)
- x4.value(1)
- x5.value(1)
- x6.value(1)
- pyb.delay(1000)
- x1.value(0)
- x3.value(0)
- x4.value(0)
- x5.value(0)
- x6.value(0)
- def one():
- x2.value(1)
- x6.value(1)
- pyb.delay(1000)
- x2.value(0)
- x6.value(0)
- while True:
- led1.value(1)
- nine()
- eight()
- seven()
- six()
- five()
- four()
- three()
- two()
- one()
- zero()
- led1.value(0)
- led2.value(1)
- nine()
- eight()
- seven()
- six()
- five()
- four()
- three()
- two()
- one()
- zero()
- led2.value(0)
- led3.value(1)
- three()
- two()
- one()
- zero()
- led3.value(0)
更多詳細信息、教程、實例可參考micropython網站http://www.micropython.net.cn