Micropython开发板DIY智能温控小风扇
Micropython开发板DIY智能温控小风扇
bodasisiter 发表于1年前
Micropython开发板DIY智能温控小风扇
  • 发表于 1年前
  • 阅读 436
  • 收藏 12
  • 点赞 1
  • 评论 0

标题:腾讯云 新注册用户域名抢购1元起>>>   

    实验目的

   1. 学习在PC机系统中扩展简单I/O 接口的方法。

   2. 进一步学习编制数据输出程序的设计方法。  

   3. 学习DS18B20的接线方法,并利用DS18B20检测当前温度。

   4.学习三极管9014的用法。

   5.通过18B20智能控制直流电机驱动小风扇。

详细例程:http://www.micropython.net.cn/support/example/260.html

   所需元器件

   TPYBoard板子一块

   直流电机一个

   面包板一块

   数据线一条

   三极管9014(NPN)一个

   杜邦线若干

TPYBoard官方购买链接:

https://item.taobao.com/item.htm?spm=686.1000925.0.0.ASVvps&id=534727234963

   学习DS18B20的接线方法,检测当前温度

blob.png

      先看一下DS18B20针脚含义,如上图:

   TPYBoard的针脚与DS18B20的针脚对应关系如下:

   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看到当前的温度。

   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)

三极管的原理

blob.png

   在这里我们用到三极管的开关与放大功能,给基极不同电平控制直流电机电流的通断,以达到控制电机转动的目的,根据三极管特性我们将集电极连接TPYBoard的3.3v,发射极连接电机一极,电机另一极接TPYboard的GND,通过温度传感器18B20检测温度,当温度到达指定温度时,通过TPYBoard控制三极管基极的电平,驱动直流电机转动。

   源代码

blob.png

   我们按照上面的步骤做完以后,然后通电,编写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)

 

共有 人打赏支持
粉丝 9
博文 79
码字总数 76621
×
bodasisiter
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: