欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 513|回復: 0
打印 上一主題 下一主題
收起左側

MicroPython寫ESP32測溫代碼

[復制鏈接]
跳轉到指定樓層
樓主
用普中ESP32開發板,板載DS18B20溫度傳感器、4位數碼管,只有三根外接線,如圖:
  1. from machine import Pin
  2. import time
  3. import tm1637
  4. import onewire
  5. import ds18x20

  6. # 定義數碼管控制對象
  7. smg = tm1637.TM1637(clk=Pin(16), dio=Pin(17))

  8. # DS18B20數據線連接到GPIO15
  9. ds_pin = Pin(15)
  10. ds_sensor = ds18x20.DS18X20(onewire.OneWire(ds_pin))

  11. # 掃描DS18B20設備
  12. roms = ds_sensor.scan()
  13. print('發現DS18B20設備:', roms)

  14. def display_temperature(temp):
  15.     """顯示整數溫度,格式為 ±XXC 或 ±XC,共3位"""
  16.     temp_int = round(temp)  # 四舍五入到整數
  17.    
  18.     if -99 <= temp_int <= 999:
  19.         # 構造顯示字符串
  20.         temp_str = str(temp_int) + 'C'

  21.         if len(temp_str) < 4:  # 例如: "5C"
  22.             display_str = ' ' + temp_str

  23.         elif len(temp_str) == 4:  # 例如: "-15C"
  24.             display_str = temp_str
  25.             smg.show(display_str)
  26.     else:
  27.         smg.show(' Err')  # 錯誤信息也保持4位

  28. # 程序入口
  29. if __name__ == "__main__":
  30.     if not roms:
  31.         print("未找到DS18B20設備")
  32.         smg.show('  NO')  # 保持4位顯示
  33.     else:
  34.         while True:
  35.             try:
  36.                 # 啟動溫度轉換
  37.                 ds_sensor.convert_temp()
  38.                 # 等待轉換完成
  39.                 time.sleep_ms(750)
  40.                
  41.                 # 讀取溫度
  42.                 for rom in roms:
  43.                     temp = ds_sensor.read_temp(rom)
  44.                     print(f'原始溫度: {temp}°C')
  45.                     
  46.                     # 在數碼管上顯示溫度
  47.                     display_temperature(temp)
  48.                     
  49.             except Exception as e:
  50.                 print(f'讀取溫度失敗: {e}')
  51.                 smg.show(' Err')  # 保持4位顯示
  52.             
  53.             # 延時2秒后再次讀取
  54.             time.sleep(2)
復制代碼
Shell欄顯示如下: 原始溫度: 10.4375°C原始溫度: 10.4375°C
原始溫度: 10.4375°C
原始溫度: 10.375°C
原始溫度: 10.4375°C
原始溫度: 10.375°C

533.jpg (389.3 KB, 下載次數: 0)

533.jpg

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

無效樓層,該帖已經被刪除
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表