1.實驗目的
1. 學習在PC機系統中擴展簡單I/O 接口的方法。
2. 進一步學習編制數據輸出程序的設計方法。
3. 學習DS18B20的接線方法,并利用DS18B20檢測當前溫度。
4.學習三極管9014的用法。
5.通過18B20智能控制直流電機驅動小風扇。
2.所需元器件
TPYBoard板子一塊
直流電機一個
面包板一塊
數據線一條
三極管9014(NPN)一個
杜邦線若干
3.學習DS18B20的接線方法,檢測當前溫度
1.png (138.71 KB, 下載次數: 40)
下載附件
2018-7-14 16:09 上傳
先看一下DS18B20針腳含義,如上圖:
TPYBoard的針腳與DS18B20的針腳對應關系如下:
2.png (7.85 KB, 下載次數: 41)
下載附件
2018-7-14 16:09 上傳
還是看不明白的話,直接上針腳編號
接線ok后,在MicroPython的源碼目錄中,進入drivers\onewire\目錄,然后將目錄下的文件ds18x20.py和onewire.py復制到PYBFLASH磁盤的根目錄。復制文件后要安全退出磁盤,然后重新接入,不然找不到文件,即可運行main.py文件了,打印溫度,即可用Putty看到當前的溫度。
main.py源代碼:
- #main.py
- import pyb
- from pyb import Pin
- from ds18x20 import DS18X20
- Pin("Y11",Pin.OUT_PP).low()#GND
- Pin("Y9",Pin.OUT_PP).high()#VCC
- pyb.delay(100)
- DQ=DS18X20(Pin('Y10'))#DQ
- while True:
- tem = DQ.read_temp()
- print(tem)
- pyb.delay(1000)
復制代碼
4.三極管的原理
3.png (55.37 KB, 下載次數: 52)
下載附件
2018-7-14 16:09 上傳
在這里我們用到三極管的開關與放大功能,給基極不同電平控制直流電機電流的通斷,以達到控制電機轉動的目的,根據三極管特性我們將集電極連接TPYBoard的3.3v,發射極連接電機一極,電機另一極接TPYboard的GND,通過溫度傳感器18B20檢測溫度,當溫度到達指定溫度時,通過TPYBoard控制三極管基極的電平,驅動直流電機轉動。
源代碼
4.jpg (147.77 KB, 下載次數: 38)
下載附件
2018-7-14 16:10 上傳
我們按照上面的步驟做完以后,然后通電,編寫main.py文件,即可通過溫度控制風扇的轉動,具體代碼如下:
- #main.py
- import pyb
- from pyb import Pin
- from ds18x20 import DS18X20
- Pin("Y9",Pin.OUT_PP).high()#VCC
- Pin("Y11",Pin.OUT_PP).low()#GND
- x1 = Pin('X1', Pin.OUT_PP)
- pyb.delay(100)
- DQ=DS18X20(Pin('Y10'))#DQ
- while 1:
- tem = DQ.read_temp()
- if tem > 18:
- x1.value(1)
- else:
- x1.value(0)
復制代碼
|