我的账户
中国电子DIY

科技成就未来

亲爱的游客,欢迎!

已有账号,请

如尚未注册?

Micropython教程之TPYBoard开发板DIY智能温控小风扇(萝卜学科编程教育)

[复制链接]
1213 1
小小su 发表于 2018-12-24 14:01:34 | 只看该作者 |只看大图 |阅读模式 打印 上一主题 下一主题
    1.实验目的

    1.?学习在PC机系统中扩展简单I/O?接口的方法。
    2.?进一步学习编制数据输出程序的设计方法。??
    3.?学习DS18B20的接线方法,并利用DS18B20检测当前温度。
    4.学习三极管9014的用法。
    5.通过18B20智能控制直流电机驱动小风扇。(萝卜学科编程教育tpyboard。com)

    2.所需元器件

    TPYBoard板子一块
    直流电机一个
    面包板一块
    数据线一条
    18b20温度传感器
    三极管9014(NPN)一个
    杜邦线若干(萝卜学科编程教育tpyboard。com)

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



    先看一下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看到当前的温度。(萝卜学科编程教育tpyboard。com)

    main.py源代码:

  1. #main.py
  2. import pyb
  3. from pyb import Pin
  4. from ds18x20 import DS18X20

  5. Pin("Y11",Pin.OUT_PP).low()#GND
  6. Pin("Y9",Pin.OUT_PP).high()#VCC
  7. pyb.delay(100)
  8. DQ=DS18X20(Pin('Y10'))#DQ
  9. while True:
  10.         tem = DQ.read_temp()
  11.         print(tem)
  12.         pyb.delay(1000)
复制代码


    4.三极管的原理



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

    5.源代码



    我们按照上面的步骤做完以后,然后通电,编写main.py文件,即可通过温度控制风扇的转动,具体代码如下:
  1. #main.py
  2. import pyb
  3. from pyb import Pin
  4. from ds18x20 import DS18X20

  5. Pin("Y9",Pin.OUT_PP).high()#VCC
  6. Pin("Y11",Pin.OUT_PP).low()#GND
  7. x1 = Pin('X1', Pin.OUT_PP)
  8. pyb.delay(100)
  9. DQ=DS18X20(Pin('Y10'))#DQ
  10. while 1:
  11.     tem = DQ.read_temp()
  12.     if tem > 18:
  13.         x1.value(1)
  14.     else:
  15.         x1.value(0)
复制代码


收藏
收藏0
分享
分享
支持
支持0
反对
反对0

精彩评论1

跳转到指定楼层
2#
bhzjr 发表于 2018-12-26 12:59:04 | 只看该作者
好资料值得分享   
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关注我们
中国电子DIY官方微信

客服电话:000-000-0000

客服邮箱:776513803@qq.com

周一至周五 9:00-18:00

公司地址:深圳市南山区美丽湾大厦B座

Powered by Discuz! X3.4@ 2001-2013 Comsenz Inc.