Raspberry pi 从DHT12传感器接收到一些错误数据 SCL引脚->覆盆子SCL引脚。SDA引脚->覆盆子SDA引脚。Vcc->5V。接地->0V #包括 #包括 #包括 内部主(空) { 国际长途电话; wiringPiSetup(); dht=接线PII2CSETUP

Raspberry pi 从DHT12传感器接收到一些错误数据 SCL引脚->覆盆子SCL引脚。SDA引脚->覆盆子SDA引脚。Vcc->5V。接地->0V #包括 #包括 #包括 内部主(空) { 国际长途电话; wiringPiSetup(); dht=接线PII2CSETUP,raspberry-pi,i2c,wiringpi,Raspberry Pi,I2c,Wiringpi,从DHT12传感器接收到一些错误数据 SCL引脚->覆盆子SCL引脚。SDA引脚->覆盆子SDA引脚。Vcc->5V。接地->0V #包括 #包括 #包括 内部主(空) { 国际长途电话; wiringPiSetup(); dht=接线PII2CSETUP(0x5c); 而(1) { int潮湿int数字=0,潮湿int比例=0,温度int位=0,温度int比例=0,检查=0; 潮湿整数=接线PII2CREADREG8(dht,0x00); 湿刻度=接线PII2CREADREG8(dht,

从DHT12传感器接收到一些错误数据
  • SCL引脚->覆盆子SCL引脚。SDA引脚->覆盆子SDA引脚。Vcc->5V。接地->0V
  • #包括
    #包括
    #包括
    内部主(空)
    {
    国际长途电话;
    wiringPiSetup();
    dht=接线PII2CSETUP(0x5c);
    而(1)
    {   
    int潮湿int数字=0,潮湿int比例=0,温度int位=0,温度int比例=0,检查=0;
    潮湿整数=接线PII2CREADREG8(dht,0x00);
    湿刻度=接线PII2CREADREG8(dht,0x01);
    temp_int_bit=wiringPiI2CReadReg8(dht,0x02);
    温度刻度=接线PII2CREADREG8(dht,0x03);
    检查=接线PII2CREADREG8(dht,0x04);
    延迟(2000年);
    printf(“\n湿位:%d\n”,湿位);
    printf(“湿度刻度:%d\n”,湿度刻度);
    printf(“温度:%d\n”,温度输入位);
    printf(“温度刻度:%d\n”,温度刻度);
    printf(“检查:%d\n”,检查);
    }
    }
    
  • 每个寄存器的结果为255

  • 这个问题可能更适合@aventurin,为什么这个问题更适合其他地方?这显然是一个编程问题。传感器和Pi之间是否有电压电平移位器?Pi的I2C引脚不能耐受5v电压。听起来像是电气问题:a)电压水平;b) 上拉电阻器。
    #include <wiringPi.h>
    #include <wiringPiI2C.h>
    #include <stdio.h>
    int main(void)
    {
        int dht;
        wiringPiSetup();
        dht=wiringPiI2CSetup(0x5c);
    
        while(1)
        {   
            int humid_int_digit=0,humid_scale=0, temp_int_bit=0, temp_scale=0, check=0;
            humid_int_digit=wiringPiI2CReadReg8(dht,0x00);
            humid_scale=wiringPiI2CReadReg8(dht,0x01);
            temp_int_bit=wiringPiI2CReadReg8(dht,0x02);
            temp_scale=wiringPiI2CReadReg8(dht,0x03);
            check=wiringPiI2CReadReg8(dht,0x04);
            delay(2000);
    
            printf("\nHumid digit: %d\n",humid_int_digit);
            printf("Humid scale: %d\n",humid_scale);
            printf("Temp: %d\n",temp_int_bit);
            printf("Temp scale: %d\n",temp_scale);
            printf("Check: %d\n",check);
        }
    }