1.实验目的python
1.?学习在PC机系统中扩展简单I/O?接口的方法。
2.?进一步学习编制数据输出程序的设计方法。??
3.?学习DS18B20的接线方法,并利用DS18B20检测当前温度。
4.学习三极管9014的用法。
5.经过18B20智能控制直流电机驱动小风扇。(萝卜学科编程教育tpyboard。com)编程
2.所需元器件安全
TPYBoard板子一块
直流电机一个
面包板一块
数据线一条
18b20温度传感器
三极管9014(NPN)一个
杜邦线若干(萝卜学科编程教育tpyboard。com)学习
3.学习DS18B20的接线方法,检测当前温度设计
先看一下DS18B20针脚含义,如上图:code
TPYBoard的针脚与DS18B20的针脚对应关系以下:blog
TPYBoard DS18B20
————————————————
# 3V3 or any Pin => VDD
# any Pin => DO
# GND => GND接口
仍是看不明白的话,直接上针脚编号
TPYBoard DS18B20
————————————————————————————
3.3v => VDD
GND => GND
Y10 => DO 源码
接线ok后,在MicroPython的源码目录中,进入drivers\onewire\目录,而后将目录下的文件ds18x20.py和onewire.py复制到PYBFLASH磁盘的根目录。复制文件后要安全退出磁盘,而后从新接入,否则找不到文件,便可运行main.py文件了,打印温度,便可用Putty看到当前的温度。(萝卜学科编程教育tpyboard。com)class
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.三极管的原理
在这里咱们用到三极管的开关与放大功能,给基极不一样电平控制直流电机电流的通断,以达到控制电机转动的目的,根据三极管特性咱们将集电极链接TPYBoard的3.3v,发射极链接电机一极,电机另外一极接TPYboard的GND,经过温度传感器18B20检测温度,当温度到达指定温度时,经过TPYBoard控制三极管基极的电平,驱动直流电机转动。(萝卜学科编程教育tpyboard。com)
5.源代码
咱们按照上面的步骤作完之后,而后通电,编写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)