色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

CW32模塊使用 SHT20溫濕度傳感器

CW32生態社區 ? 來源:CW32生態社區 ? 作者:CW32生態社區 ? 2024-12-05 12:14 ? 次閱讀

由瑞士Sensirion推出的 SHT20數字溫濕度傳感器,基于領先世界的CMOSens ? 數字傳感技術,具有極高的可靠性和卓越的長期穩定性。全量程標定,兩線數字接口,可與單片機直接相連,大大縮短研發時間、簡化外圍電路并降低費用。此外,體積微小、響應迅速、低能耗、可浸沒、抗干擾能力強、溫濕一體,兼有露點測量,性價比高,使該產品能夠適于多種場合的應用。

一、模塊來源

模塊實物展示:

wKgZO2dRKKyAIO6_AAAfhHrgIiQ054.jpg


資料下載鏈接:
https://pan.baidu.com/s/1HrQkwECvGgQSHvt_RNdLdA

二 、規格參數

工作電壓:2.1~3.6V

工作電流:0.1~1000uA

溫度精度:±0.3℃

溫度范圍:-40~125℃

濕度范圍:0~100 %RH

濕度精度:±3%RH

輸出方式: IIC

管腳數量:4 Pin

以上信息見廠家資料文件

三、移植過程

我們的目標是將例程移植至CW32F030C8T6開發板上【能夠測量環境溫濕度】。首先要獲取資料,查看數據手冊應如何實現讀取數據,再移植至我們的工程。

3.1查看資料

開始傳輸后,隨后先傳輸首字節包括I2C設備地址(7bit)和一個SDA方向位(R:1, W:0)。

wKgZPGdRKKyAKSFzAACC6HuC4lo524.jpg

一個時鐘發送一個位,在第8個下降沿之后,通過拉低SDA引腳(ACK位 為0),只是傳感器數據接收正常。在發出測量命令之后(‘1110’‘0011’代表溫度測量,‘1110’‘0101’代表相對濕度測量 ,這種為主機模式),MCU必須等待測量完成。

wKgZO2dRKKyAKZiaAAB_fLtHH34993.jpg

主機模式:

測量過程中,SCL線被封鎖(由傳感器控制),在測量時,SHT2x將SCL拉低強制主機進入等待狀態。當釋放SCL線,表示傳感器內部工作接收,可以繼續進行數據傳送

wKgZPGdRKK2AUVsoAAA_wrbcH2c867.jpg

灰色的部分是傳感器控制的,當傳感器給MCU返回數據時,每返回一個字節,MCU要返回一個ACK信號,當接收完畢之后,返回一個NACK并接著傳輸停止時序(P)。

注:校驗和可以不需要,不需要則就在數據接收完之后返回NACK

非主機模式:

測量過程中,SCL線是開發狀態,可進行其他通信,可以在總線上處理其他I2C總線通信任務。

當MCU要對傳感器狀態進行查詢時,先發起一個開始信號,在發送從機地址和SDA方向位(寫),此時從機匹配地址成功,則發送ACK信號,并開始測量。如果傳感器完成了測量過程,并且發送ASK信號,那么MCU就可以讀取相關數據。如果測量沒有完成,傳感器發送NACK信號,此時MCU必須重新發送啟動傳輸時序,直至測量完成,MCU讀取數據。

注意:測量的數據,溫度和濕度均為兩個字節。而且無論哪一種傳輸模式,測量的最大分辨率最大是14bit,數據的第二個字節SDA上最后兩位是用來標記相關狀態信息。其中bit1表示測量類型(0是溫度,1是濕度)

wKgZO2dRKK2Aai9wAABNpkqliYw573.jpg

灰色的區域是傳感器控制的,如果不需要校驗和,那么在接收完兩個字節的數據之后就MCU直接發出NACK信號再接著發出停止時序(P),則結束通信。

通常測量的最長時間取決于測量類型和分辨率.

wKgZPGdRKK2AZ08xAAAeEAbaEhQ623.jpg

在計算MCU通信時間時,測量溫度選擇最長測量時間是85ms,而測量相對濕度選擇最長的時間是29ms。

傳感器內部設置的默認分辨率為相對濕度12位和溫度14位。SDA的輸出數據被轉換成兩個字節的數據包,高字節MSB在前(左對齊)。每個字節后面都跟隨一個應答位。兩個狀態位,即 LSB的后兩位在進行物理計算前須置0。計算濕度:其中SRH表示我們讀取到的濕度原始數據。

wKgZO2dRKK6AO55YAAAE5Js2Rwo979.jpg

計算溫度:其中ST表示我們讀取到的溫度原始數據。

wKgZPGdRKK6AGH71AAAGJuiVaI4140.jpg

3.2引腳選擇

wKgZO2dRKK-ANulgAAEy_rc0LtI178.jpg

模塊接線圖

3.3移植至工程

移植步驟中的導入.c和.h文件與【CW32模塊使用】DHT11溫濕度傳感器相同,只是將.c和.h文件更改為bsp_sht20.c與bsp_sht20.h。這里不再過多講述,移植完成后面修改相關代碼。

在文件bsp_sht20.c中,編寫如下代碼。

/*
 * Change Logs:
 * Date           Author       Notes
 * 2024-06-20     LCKFB-LP    first version
 */
#include "bsp_sht20.h"
#include "board.h"
#include "stdio.h"

void SHT20_GPIO_INIT(void)
{
    GPIO_InitTypeDef GPIO_InitStruct; // GPIO初始化結構體

    RCC_SHT20_ENABLE();        // 使能GPIO時鐘

    GPIO_InitStruct.Pins = GPIO_SDA|GPIO_SCL;   // GPIO引腳
    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD; // 開漏輸出
    GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;    // 輸出速度高
    GPIO_Init(PORT_SHT20, &GPIO_InitStruct);   // 初始化
}

/******************************************************************
 * 函 數 名 稱:IIC_Start
 * 函 數 說 明:IIC起始信號
 * 函 數 形 參:無
 * 函 數 返 回:無
 * 作       者:LC
 * 備       注:無
******************************************************************/
void IIC_Start(void)
{
        SDA_OUT();

        SCL(0);
        SDA(1);
        SCL(1);

        delay_us(5);

        SDA(0);
        delay_us(5);
        SCL(0);
        delay_us(5);


}

/******************************************************************
 * 函 數 名 稱:IIC_Stop
 * 函 數 說 明:IIC停止信號
 * 函 數 形 參:無
 * 函 數 返 回:無
 * 作       者:LC
 * 備       注:無
******************************************************************/
void IIC_Stop(void)
{
        SDA_OUT();

        SCL(0);
        SDA(0);

        SCL(1);
        delay_us(5);
        SDA(1);
        delay_us(5);

}

/******************************************************************
 * 函 數 名 稱:IIC_Send_Ack
 * 函 數 說 明:主機發送應答
 * 函 數 形 參:0應答  1非應答
 * 函 數 返 回:無
 * 作       者:LC
 * 備       注:無
******************************************************************/
void IIC_Send_Ack(uint8_t ack)
{
        SDA_OUT();
        SCL(0);
        SDA(0);
        delay_us(5);
        if(!ack) SDA(0);
        else         SDA(1);
        SCL(1);
        delay_us(5);
        SCL(0);
        SDA(1);
}

/******************************************************************
 * 函 數 名 稱:IIC_Wait_Ack
 * 函 數 說 明:等待從機應答
 * 函 數 形 參:無
 * 函 數 返 回:1=無應答   0=有應答
 * 作       者:LC
 * 備       注:無
******************************************************************/
uint8_t IIC_Wait_Ack(void)
{
        char ack = 0;
        unsigned char ack_flag = 10;
        SDA_IN();
    SDA(1);
        delay_us(5);
        SCL(1);
        delay_us(5);
        while( (SDA_GET()==1) && ( ack_flag ) )
        {
                ack_flag--;
                delay_us(5);
        }

        if( ack_flag <= 0 )
        {
                IIC_Stop();
                return 1;
        }
        else
        {
                SCL(0);
                SDA_OUT();
        }
        return ack;
}
/******************************************************************
 * 函 數 名 稱:IIC_Write
 * 函 數 說 明:IIC寫一個字節
 * 函 數 形 參:dat寫入的數據
 * 函 數 返 回:無
 * 作       者:LC
 * 備       注:無
******************************************************************/
void IIC_Write(uint8_t data)
{
        int i = 0;
        SDA_OUT();
        SCL(0);//拉低時鐘開始數據傳輸

        for( i = 0; i < 8; i++ )
        {
                SDA( (data & 0x80) >> 7 );
                delay_us(2);
        data

在文件bsp_sht20.h中,編寫如下代碼。

/*
 * Change Logs:
 * Date           Author       Notes
 * 2024-06-20     LCKFB-LP    first version
 */
#ifndef __BSP_SHT20_H__
#define __BSP_SHT20_H__

#include "board.h"


//端口移植
#define RCC_SHT20_ENABLE()  __RCC_GPIOB_CLK_ENABLE()
#define PORT_SHT20          CW_GPIOB


#define GPIO_SDA            GPIO_PIN_9
#define GPIO_SCL            GPIO_PIN_8


//設置SDA輸出模式
#define SDA_OUT()   {        
                        GPIO_InitTypeDef GPIO_InitStruct;                
                        GPIO_InitStruct.Pins = GPIO_SDA;                 
                        GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD;      
                        GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;         
                        GPIO_Init(PORT_SHT20, &GPIO_InitStruct);       
                     }
//設置SDA輸入模式
#define SDA_IN()    {        
                        GPIO_InitTypeDef GPIO_InitStruct;                
                        GPIO_InitStruct.Pins = GPIO_SDA;                 
                        GPIO_InitStruct.Mode = GPIO_MODE_INPUT;         
                        GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;         
                        GPIO_Init(PORT_SHT20, &GPIO_InitStruct);       
                    }
//獲取SDA引腳的電平變化
#define SDA_GET()       GPIO_ReadPin(PORT_SHT20, GPIO_SDA)
//SDA與SCL輸出
#define SDA(x)          GPIO_WritePin(PORT_SHT20, GPIO_SDA, (x?GPIO_Pin_SET:GPIO_Pin_RESET) )
#define SCL(x)          GPIO_WritePin(PORT_SHT20, GPIO_SCL, (x?GPIO_Pin_SET:GPIO_Pin_RESET) )


void SHT20_GPIO_INIT(void);
float SHT20_Read(unsigned char regaddr);




#endif

四、移植驗證

在自己工程中的main主函數中,編寫如下。

/*
 * Change Logs:
 * Date           Author       Notes
 * 2024-06-20     LCKFB-LP    first version
 */
#include "board.h"
#include "stdio.h"
#include "bsp_uart.h"
#include "bsp_sht20.h"

#define T_ADDR     0xf3   // 溫度
#define PH_ADDR    0xf5   // 濕度

int32_t main(void)
{
    board_init();        // 開發板初始化

    uart1_init(115200);        // 串口1波特率115200

    SHT20_GPIO_INIT();
    delay_ms(1000);
    printf("SHT20 Start!!rn");

    while(1)
    {
        printf("溫度 = %.2f ℃rn",  SHT20_Read(T_ADDR) );
        printf("濕度 = %.2f %%RHrn",SHT20_Read(PH_ADDR) );

        printf("n");
        delay_ms(1000);
    }
}

上電現象:

wKgZPGdRKK-AOrSBAADUohjlzOo526.jpg

模塊移植成功案例代碼:

鏈接:https://pan.baidu.com/s/13EW713tzDGwSDVUw--ouJQ?pwd=LCKF

提取碼:LCKF

審核編輯 黃宇

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

    關注

    2550

    文章

    51035

    瀏覽量

    753063
  • 溫濕度傳感器

    關注

    5

    文章

    579

    瀏覽量

    35706
  • CW32
    +關注

    關注

    1

    文章

    203

    瀏覽量

    626
收藏 人收藏

    評論

    相關推薦

    CW32模塊使用案例 AHT10溫濕度傳感器

    AHT10,新一代溫濕度傳感器在尺寸與智能方面建立了新的標準:它嵌入了適于回流焊的雙列扁平無引腳SMD 封裝,底面 4 x 5mm ,高度1.6mm。傳感器輸出經過標定的數字信號,標準 I 2 C
    的頭像 發表于 11-28 17:28 ?337次閱讀
    <b class='flag-5'>CW32</b><b class='flag-5'>模塊</b>使用案例 AHT10<b class='flag-5'>溫濕度</b><b class='flag-5'>傳感器</b>

    CW32模塊使用 SHT30溫濕度傳感器

    資料文件 三、移植過程 我們的目標是將例程移植至CW32F030C8T6開發板上【測量溫濕度的功能】。首先要獲取資料,查看數據手冊應如何實現讀取數據,再移植至我們的工程。 3.1查看資
    的頭像 發表于 11-14 17:39 ?201次閱讀
    <b class='flag-5'>CW32</b><b class='flag-5'>模塊</b>使用 <b class='flag-5'>SHT</b>30<b class='flag-5'>溫濕度</b><b class='flag-5'>傳感器</b>

    基于CW32模塊SHT30溫濕度傳感器設計

    我們的目標是將例程移植至CW32F030C8T6開發板上【測量溫濕度的功能】。首先要獲取資料,查看數據手冊應如何實現讀取數據,再移植至我們的工程。
    的頭像 發表于 11-12 11:14 ?283次閱讀
    基于<b class='flag-5'>CW32</b><b class='flag-5'>模塊</b>的<b class='flag-5'>SHT</b>30<b class='flag-5'>溫濕度</b><b class='flag-5'>傳感器</b>設計

    溫濕度傳感器種類及原理的優劣分析

    溫濕度傳感器是一種能夠感知并測量環境中溫度和濕度變化的設備,它們在環境監測、氣象觀測、農業、工業生產、智能家居等多個領域發揮著重要作用。下面將對溫濕度
    的頭像 發表于 10-21 15:05 ?591次閱讀

    溫濕度傳感器是什么類型的傳感器

    溫濕度傳感器是一種能夠實時監測和記錄環境中溫度和濕度變化的設備或裝置。這類傳感器廣泛應用于環境監測、氣象觀測、農業、工業生產、倉儲管理、智能家居、醫療健康等多個領域,為相關領域的研究、
    的頭像 發表于 10-21 14:53 ?429次閱讀

    【RA-Eco-RA0E1-32PIN-V1.0開發板試用】sht30溫濕度傳感器

    這一章節,繼續探究RA0E1的硬件iic外設。來驅動SHT30溫濕度傳感器,該款溫濕度傳感器具有高精度穩定性,可以精確到0.125度的分辨率
    發表于 10-14 23:40

    CW32模塊使用 DHT11溫濕度傳感器

    DHT11數字溫濕度傳感器是一款含有已校準數字信號輸出的溫濕度復合傳感器。其成本低、長期穩定、可以測量相對濕度和溫度測量,并可以只使用一根數
    的頭像 發表于 09-09 18:21 ?1331次閱讀
    <b class='flag-5'>CW32</b><b class='flag-5'>模塊</b>使用 DHT11<b class='flag-5'>溫濕度</b><b class='flag-5'>傳感器</b>

    溫濕度傳感器怎么調試

    溫濕度傳感器是一種廣泛應用于工業、農業、氣象、科研等領域的傳感器,用于測量環境的溫度和濕度。在實際應用中,溫濕度
    的頭像 發表于 08-19 15:04 ?920次閱讀

    溫濕度傳感器技術參數有哪些

    溫濕度傳感器是一種用于測量環境溫度和濕度傳感器。它們廣泛應用于氣象、農業、工業、醫療、智能家居等領域。本文將介紹溫濕度
    的頭像 發表于 08-19 15:03 ?987次閱讀

    想要準確地測量環境溫濕度溫濕度傳感器是關鍵!

    ? 溫濕度是生產生活中最重要的環境指標之一,不僅人需要在適宜的溫濕度條件下保持良好的精神狀態和敏捷的思維,食品、藥品、各種儀器設備等都對環境溫濕度有特殊的要求。基于對環境溫濕度的要求,
    的頭像 發表于 07-04 08:48 ?549次閱讀

    基于51單片機的SHT11溫濕度監測系統,LCD1602顯示,上下限按鍵設置

    設計要求 1.設計一套基于51單片機的溫濕度Proteus仿真監控系統; 2.采用高精度的SHT11溫濕度傳感器模塊; 3.LCD液晶實時顯
    發表于 03-26 17:44

    【原創】DHT11傳感器溫濕度監測系統畢設,論文、代碼、原理圖和仿真介紹

    11溫濕度傳感器元件,沒有DHT11傳感器元件。Proteus8版本經過升級更新后,元件庫已添加了DHT11傳感器元件。 因此,本設計采用Proteus8.6版本的仿真軟件進行開發。
    發表于 03-13 00:53

    溫濕度傳感器有哪些應用場景?

    溫濕度傳感器在眾多領域,特別是在實時記錄溫濕度變化的工作中最為廣泛。溫濕度傳感器可以根據所記錄的內容,對其進行科學有效的管理、分析和歸納。下
    的頭像 發表于 02-19 16:28 ?1330次閱讀
    <b class='flag-5'>溫濕度</b><b class='flag-5'>傳感器</b>有哪些應用場景?

    溫濕度傳感器工作原理 溫濕度傳感器的接線方法

    溫濕度傳感器是一種用于測量環境溫度和相對濕度的裝置。它通常用于工業、農業、氣象、室內空調等領域。本文將詳細介紹溫濕度傳感器的工作原理和接線方
    的頭像 發表于 02-14 18:00 ?9363次閱讀

    sht20校驗對讀出的溫度偏高

    SHT20是一種常用的溫濕度傳感器,其精度和穩定性得到了廣泛應用。但是,有時候在使用SHT20傳感器時,可能會遇到溫度讀數偏高的問題,這給用
    的頭像 發表于 01-04 11:01 ?1449次閱讀
    主站蜘蛛池模板: 午夜免费体验30分| 久久精品视频在线看| WWW国产精品人妻一二三区| 中文字幕精品视频在线| 妖精视频一区二区免费| 亚洲成熟人网站| 亚洲AV午夜福利精品香蕉麻豆| 翁公吮她的花蒂和奶水| 肉多荤文高h羞耻校园| 日本丝袜护士| 射漂亮黑b丝女| 忘忧草日本在线WWW日本| 天天影视网网色色欲| 桃花在线视频观看免费| 手机在线观看mv网址| 色偷偷888欧美精品久久久| 色戒床震视频片段| 呻吟翘臀后进爆白浆| 手机在线观看mv网址| 亚洲国产精品高清在线| 亚洲欧美国产综合在线| 一边摸一边桶一边脱免费| 诱人的秘书BD在线观看| 97色伦亚洲自偷| www亚洲欲色成人久久精品| 赤兔CHINESE最新男18GUY | 日本工口生肉全彩大全| 亚洲精品第五页中文字幕| 少妇两个奶头喷出奶水了怎么办| 色老汉网址导航| 午夜人妻理论片天堂影院| 性色欲情网站IWWW| 亚洲色图激情小说| 最新无码国产在线视频9299| AV72啪啪网站| 囯产精品麻豆巨作久久| 国精产品一区二区三区有限公司| 久久成人无码国产免费播放| 在线自拍亚洲视频欧美| 91传媒蜜桃香蕉在线观看| write as 跳蛋|