精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何利用樹莓派讀取溫度傳感器MCP9808的數據呢?

得捷電子DigiKey ? 來源:得捷電子DigiKey ? 2023-12-28 09:24 ? 次閱讀

問:使用Raspberry Pi 從 MCP9808讀取溫度數據

MCP9808是一款溫度傳感器,采用I2C通信標準來傳輸連續輪詢溫度。它支持報警功能和待機模式,以便在需要時節省電力。在本說明文檔中,我們將執行幾個python命令來獲取傳感器的溫度。

MCP9808上的I2C

Microchip將0x18用作此板上的主地址,借助芯片上的3個引腳來更改I2C地址沖突時的地址。當調用傳感器中的任何寄存器時,該板應寫入或獲得雙字節響應(MSB優先,LSB最后)。我使用的是Adafruit的分線板[1528-1032-ND],其中已經包含一些正偏電阻

需注意的寄存器:

0x010000000X00011111這里的X是配置中的備用位,默認為0,此為連續輪詢模式。溫度寄存器會不斷更新,但存在功耗問題。將此位設為1將停止輪詢并節省功耗。

0x05AAASMMMMLLLLLLLL該寄存器包含12位浮點溫度,其中“A”為報警信息,“S”為符號位,“M”和“L”分別代表MSB和LSB。最終輸出將顯示為MMMMLLLL.LLLL。

請注意,在本說明中,我沒有設置符號位和報警位,但如果你希望測量零下溫度,則需要進行設置。

在Raspberry PI上的實現:

a39961e4-a4b0-11ee-8b88-92fbcf53809c.png

使用Raspberry Pi與I2C接口相連的好處在于Python終端的交互性。我使用的是在Raspbian發行版上啟用了I2C的Raspberry Pi 4。確保你的GPIO支持3V3、GND、SDA并且SCL支持MCP9808上的正確引腳。在Raspbian中打開終端并執行以下三個命令:

python
from smbus import SMBus
bus = SMBus(1)

該命令將創建一個待連接的總線對象,該對象將反過來收集我們請求的I2C數據。接下來,向芯片詢問它的溫度數據:

temp_binary =format(bus.read_word_data(0x18, 0x05),‘016b’)

該bus.read_byte_data(Address, Register)將從傳感器檢索數據,我們使用封閉的format()函數將信息讀取為二進制數,這樣是為了使提取這兩個字節變得簡單。Python通常喜歡使用int或float,但這會造成妨礙,因為會由多個字節返回值。我們將按照[0:8][8:16]順序將其編制索引,而MSB位于數組的后半部分。

a3be9ad6-a4b0-11ee-8b88-92fbcf53809c.png

計算輸出:

我們可以利用以下函數來正確地獲取輸出值

defword_To_LSB_MSB(word):
return word[0:8], word[12 :16] // note that word indices [8,9,10,11] are notused in this example.

請查看下圖,了解我們所需的輸出。

a3dbd8b2-a4b0-11ee-8b88-92fbcf53809c.png

最后,將這二者結合在一起,再加上一些浮點運算即可。

LSB, MSB =word_To_LSB_MSB(temp_binary)
float(int(MSB + LSB,2)) / 16

a3f5ed42-a4b0-11ee-8b88-92fbcf53809c.png

除以16可將結果轉為MMMMLLLL.LLLL,并獲得十進制精度。注意,返回的結果應以攝氏為單位。在上圖所示的情況下,我們從二進制浮動數00010111.0101計算出的溫度是23.3125攝氏度。

完成后進入省電模式:

如果你希望在完成操作后關閉器件,只需將待機位設置為省電模式:

bus.write_byte_data(0x18,0x01,0b00000001)

由于只需更改MCP9809配置寄存器中的MSB,所以我們寫入一個字節,不過我們將字符縮短了,因此不會更改寄存器中的LSB。

要使MCP9808恢復到完全工作功能狀態,必須使傳感器獲得動力循環或使用寄存器的零刷新模式。

Microchip的規格書在此傳感器的應用中仍然非常有用,如果你要使用MCP9808,請務必定期查詢。注意,本文未涉及此傳感器的一些重要功能,例如中斷、負溫度的符號位和待機工作。

使用的項:

Raspberry Pi:1690-RASPBERRYPI4B/4GB-ND

母頭到公頭的面包板線:1568-1511-ND

用于MCP9808的Adafruit分線板:1528-1032-ND






審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 溫度傳感器
    +關注

    關注

    48

    文章

    2913

    瀏覽量

    155889
  • python
    +關注

    關注

    56

    文章

    4782

    瀏覽量

    84456
  • 樹莓派
    +關注

    關注

    116

    文章

    1699

    瀏覽量

    105526
  • MSB
    MSB
    +關注

    關注

    0

    文章

    13

    瀏覽量

    8250
  • MCP
    MCP
    +關注

    關注

    0

    文章

    253

    瀏覽量

    13880

原文標題:攻略來了:用樹莓派讀取溫度傳感器MCP9808的數據

文章出處:【微信號:得捷電子DigiKey,微信公眾號:得捷電子DigiKey】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    樹莓通過java語言通過DHT11讀取環境溫濕度

    基于java云平臺,在樹莓+dth11傳感器下,遠程讀取溫濕度數據
    的頭像 發表于 05-16 15:16 ?5334次閱讀
    <b class='flag-5'>樹莓</b><b class='flag-5'>派</b>通過java語言通過DHT11<b class='flag-5'>讀取</b>環境溫濕度

    如何將溫度傳感器DS18B20與樹莓連接

    在本教程中,我們將學習將溫度傳感器DS18B20與樹莓連接。
    的頭像 發表于 11-08 16:44 ?8918次閱讀
    如何將<b class='flag-5'>溫度</b><b class='flag-5'>傳感器</b>DS18B20與<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>連接

    使用樹莓Pico的RP2040微控制內置溫度傳感器

    樹莓 Pico 的 RP2040 微控制內置了溫度傳感器,它可以通過第四個模擬數字轉換通道
    的頭像 發表于 09-11 10:14 ?1874次閱讀

    樹莓3通過串口連接溫度傳感器求助!!!

    實驗:將溫度傳感器VCCGND RXD TXD連接到樹莓派上面的VCCGND TXD RXD, 通過Python編寫的程序無法讀取溫度,
    發表于 10-03 22:07

    樹莓 怎么讀取串口數據

    各路大神們,請問一下,樹莓怎么讀取傳感器的端口數據啊,用的是Python語言
    發表于 03-29 14:51

    如何開發MCP9808溫度傳感器代碼?

    你好,我試過幾種方法來開發一個MCP9808溫度傳感器的代碼,我有一個PIC 18 Pics的工作代碼,所以我認為這對aPIC32來說沒什么大不了的,但它確實如此。在我發送0x05讀取
    發表于 08-07 13:20

    MCP9808溫度數據顯示在終端所需的轉換例程

    你好!我目前與MCP9808通訊并讀取溫度。我把溫度數據放入一個8位的名為Temperature的變量中。我想把溫度數據(8位值)顯示給終端
    發表于 03-12 13:59

    在Uno、Mega、ESP8266和ESP32上運行各種溫度傳感器,哪個溫度傳感器給出真實(實際)值?

    )、BME280 (3x)、TSYS01 (1x)、MCP9808 (1x),數據記錄在 ThingsSpeak。傳感器安裝在室外,彼此靠近并防止日曬雨淋。附近沒有熱源或其他來源。傳感器
    發表于 05-25 09:14

    MCP9808最大精度的數字溫度傳感器

    Microchip Technology Inc.’s MCP9808 digital temperature sensor converts temperatures between -20°C
    發表于 09-28 15:59 ?13次下載
    <b class='flag-5'>MCP9808</b>最大精度的數字<b class='flag-5'>溫度</b><b class='flag-5'>傳感器</b>

    樹莓土壤濕度傳感器

    本文詳細的介紹了樹莓采集土壤濕度傳感器數據,其次介紹了傳感器的選擇和連接以及PYTHON采集土壤傳感器
    發表于 01-22 09:49 ?2.5w次閱讀
    <b class='flag-5'>樹莓</b><b class='flag-5'>派</b>土壤濕度<b class='flag-5'>傳感器</b>

    樹莓傳感器教程資料下載

    樹莓傳感器
    發表于 05-07 15:20 ?32次下載

    Microchip溫度傳感器系列產品

    Microchip是業界能提供最豐富溫度傳感器產品的供應商之一。本視頻就Microchip各類溫度傳感器,著重介紹了 1)邏輯輸出系列—MCP
    的頭像 發表于 06-07 13:46 ?5036次閱讀
    Microchip<b class='flag-5'>溫度</b><b class='flag-5'>傳感器</b>系列產品

    基于MCP9808帶有±0.5°C 最高精度數字溫度傳感器

    Microchip Technology Inc. 的 MCP9808 數字溫度傳感器 可將-20°C和+100°C之間的溫度轉換為±0.25°C/±0.5°C (典型值 / 最大
    發表于 06-28 09:23 ?24次下載
    基于<b class='flag-5'>MCP9808</b>帶有±0.5°C 最高精度數字<b class='flag-5'>溫度</b><b class='flag-5'>傳感器</b>

    高精度數字溫度傳感器的工作原理說明

    著名開源硬件商DFRobot新推出使用廣泛的Fermion:MCP9808高精度數字溫度傳感器。它可檢測-40°C和+125°C之間的溫度,提供±0.25°C/±0.5°C(典型值 /
    的頭像 發表于 03-17 16:10 ?4020次閱讀
    高精度數字<b class='flag-5'>溫度</b><b class='flag-5'>傳感器</b>的工作原理說明

    樹莓 Pico內置溫度傳感器的應用

    樹莓 Pico 的 RP2040 微控制內置了溫度傳感器,它可以通過第四個模擬數字轉換通道
    發表于 09-11 10:14 ?755次閱讀