找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2391|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

Micropython教程之TPYBoard開發(fā)板DIY智能溫控小風(fēng)扇

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:130183 發(fā)表于 2018-12-24 13:57 | 只看該作者 |只看大圖 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
    1.實(shí)驗(yàn)?zāi)康?br />
    1.?學(xué)習(xí)在PC機(jī)系統(tǒng)中擴(kuò)展簡單I/O?接口的方法。
    2.?進(jìn)一步學(xué)習(xí)編制數(shù)據(jù)輸出程序的設(shè)計方法。??
    3.?學(xué)習(xí)DS18B20的接線方法,并利用DS18B20檢測當(dāng)前溫度。
    4.學(xué)習(xí)三極管9014的用法。
    5.通過18B20智能控制直流電機(jī)驅(qū)動小風(fēng)扇。
    2.所需元器件

    TPYBoard板子一塊
    直流電機(jī)一個
    面包板一塊
    數(shù)據(jù)線一條
    18b20溫度傳感器
    三極管9014(NPN)一個
    杜邦線若干(蘿卜學(xué)科編程教育tpyboard。com)

    3.學(xué)習(xí)DS18B20的接線方法,檢測當(dāng)前溫度




    先看一下DS18B20針腳含義,如上圖:

    TPYBoard的針腳與DS18B20的針腳對應(yīng)關(guān)系如下:

TPYBoard       DS18B20   
   ————————————————     
    # 3V3   or any Pin  => VDD      
   # any   Pin        =>   DO
   #   GND           => GND

   還是看不明白的話,直接上針腳編號
   TPYBoard       DS18B20   
   ————————————————————————————
   3.3v        =>   VDD      
   GND        =>   GND
   Y10         =>   DO         


    接線ok后,在MicroPython的源碼目錄中,進(jìn)入drivers\onewire\目錄,然后將目錄下的文件ds18x20.py和onewire.py復(fù)制到PYBFLASH磁盤的根目錄。復(fù)制文件后要安全退出磁盤,然后重新接入,不然找不到文件,即可運(yùn)行main.py文件了,打印溫度,即可用Putty看到當(dāng)前的溫度。

    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)
復(fù)制代碼




    4.三極管的原理




    在這里我們用到三極管的開關(guān)與放大功能,給基極不同電平控制直流電機(jī)電流的通斷,以達(dá)到控制電機(jī)轉(zhuǎn)動的目的,根據(jù)三極管特性我們將集電極連接TPYBoard的3.3v,發(fā)射極連接電機(jī)一極,電機(jī)另一極接TPYboard的GND,通過溫度傳感器18B20檢測溫度,當(dāng)溫度到達(dá)指定溫度時,通過TPYBoard控制三極管基極的電平,驅(qū)動直流電機(jī)轉(zhuǎn)動。

    5.源代碼




    我們按照上面的步驟做完以后,然后通電,編寫main.py文件,即可通過溫度控制風(fēng)扇的轉(zhuǎn)動,具體代碼如下:
  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)
復(fù)制代碼




分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表