单片机交流
直播中

陈伟

7年用户 1439经验值
私信 关注
[问答]

怎样去使用基于AVR的SHT30温湿度传感器

怎样去使用基于AVR的SHT30温湿度传感器?
SHT30温湿度传感器的软硬件分别是由哪些部分构成的?

回帖(1)

巩潇然

2021-9-23 17:27:28
  SHT30使用记录(基于AVR)
  硬件篇
  硬件按照数据手册连接到单片机的IIC接口或者任意两个IO口即可,加2个4.7K左右上拉电阻,本例中如下:
  #define SDA_OUT DDRF|=0x01
  #define SDA_IN DDRF&=~0x01
  #define SDA_L PORTF&=~0x01
  #define SDA_H PORTF|=0x01
  #define SDA_READ (PINF&0x01)
  #define SCL_L PORTF&=~0x02
  #define SCL_H PORTF|=0x02
  #define SCL_READ (PINF&0x02)
  软件篇
  软件参考数据手册流程:
  a、设置芯片IIC地址 0x44
  b、读取芯片ID
  c、读取温湿度数据
  参考官方提供的源码,修改IIC部分代码如下:
  void I2c_Init(void)
  {
  SDA_OUT;
  SDA_H; // I2C-bus idle mode SDA released
  SCL_H; // I2C-bus idle mode SCL released
  }
  void I2c_StartCondition(void)
  {
  SDA_OUT;
  SDA_H;
  _delay_us(1);
  SCL_H;
  _delay_us(1);
  SDA_L;
  _delay_us(10); // hold time start condition (t_HD;STA)
  SCL_L;
  _delay_us(1);
  }
  void I2c_StopCondition(void)
  {
  SDA_OUT;
  SCL_L;
  _delay_us(1);
  SDA_L;
  _delay_us(1);
  SCL_H;
  _delay_us(10); // set-up time stop condition (t_SU;STO)
  SDA_H;
  _delay_us(10);
  }
举报

更多回帖

发帖
×
20
完善资料,
赚取积分