Zoeken

Veilig betalen


<< Vorige - Volgende >>


Temperatuur en luchtvochtigheid sensor module simpel


Temperatuur en luchtvochtigheid sensor module simpel


Artikelcode: ARD158



Temperatuur en luchtvochtigheid sensor module simpel. Geschikt voor gebruik met Arduino of andere microcontrollers.  

Example code:

#define dht_dpin A0

byte bGlobalErr;

byte dht_dat[5];

 

void setup(){

InitDHT();

Serial.begin(9600);

delay(300);

Serial.println("Humidity and temperaturenn");

delay(700);

}

 

void loop(){

  ReadDHT();

  switch (bGlobalErr){

     case 0:

 Serial.print("Current humdity = ");

 Serial.print(dht_dat[0], DEC);

 Serial.print(".");

 Serial.print(dht_dat[1], DEC);

 Serial.print("%  ");

 Serial.print("temperature = ");

 Serial.print(dht_dat[2], DEC);

 Serial.print(".");

 Serial.print(dht_dat[3], DEC);

 Serial.println("C  ");

        break;

     case 1:

        Serial.println("Error 1: DHT start condition 1 not met.");

        break;

     case 2:

        Serial.println("Error 2: DHT start condition 2 not met.");

        break;

     case 3:

        Serial.println("Error 3: DHT checksum error.");

        break;

     default:

        Serial.println("Error: Unrecognized code encountered.");

        break;

      }

  delay(800);

}

 

void InitDHT(){

   pinMode(dht_dpin,OUTPUT);

        digitalWrite(dht_dpin,HIGH);

}

 

void ReadDHT(){

bGlobalErr=0;

byte dht_in;

byte i;

digitalWrite(dht_dpin,LOW);

delay(20);

 

digitalWrite(dht_dpin,HIGH);

delayMicroseconds(40);

pinMode(dht_dpin,INPUT);

//delayMicroseconds(40);

dht_in=digitalRead(dht_dpin);

 

if(dht_in){

   bGlobalErr=1;

   return;

   }

delayMicroseconds(80);

dht_in=digitalRead(dht_dpin);

 

if(!dht_in){

   bGlobalErr=2;

   return;

   }

delayMicroseconds(80);

for (i=0; i<5; i++)

   dht_dat[i] = read_dht_dat();

pinMode(dht_dpin,OUTPUT);

digitalWrite(dht_dpin,HIGH);

byte dht_check_sum =

       dht_dat[0]+dht_dat[1]+dht_dat[2]+dht_dat[3];

if(dht_dat[4]!= dht_check_sum)

   {bGlobalErr=3;}

};

 

byte read_dht_dat(){

  byte i = 0;

  byte result=0;

  for(i=0; i< 8; i++){

      while(digitalRead(dht_dpin)==LOW);

      delayMicroseconds(30);

      if (digitalRead(dht_dpin)==HIGH)

     result |=(1<<(7-i));

    while (digitalRead(dht_dpin)==HIGH);

    }

  return result;

}




€ 3.95




Voorraad:


Aantal   



Andere klanten kochten ook