CCS C İLE DHT11 ISI NEM KULLANIMI LÜTFEN YARDIM EDİN

Başlatan point_blank, 21 Ekim 2012, 14:54:12

point_blank

Merhaba arkadaşlar elimde bir tane DHT11 ısı nem sensörü var fakat bunun ccs c ile ilgili olan kodu bulamadım yardım edermisiniz. Ayrıca nasıl kullanacam bu konudada bilgi verirseniz sevinirim şimdiden teşekkürler.

M_B

Merhaba;
altaki kodu nette buldum.

#define dht11 PIN_C3

void dht_init()

{

   delay_ms(1);

   OUTPUT_HIGH(dht11);

}

void read_dht()

{

   byte GlobalErr=0;

   byte dht_in;

   byte i;

   byte dht_check_sum;

   dht_init();

   OUTPUT_LOW(dht11);

   delay_ms(18);

   OUTPUT_HIGH(dht11);

   delay_us(40);

   delay_us(40);//

   dht_in=input(dht11);

   if(dht_in)

   {

      GlobalErr=1;

      return;

   }

   delay_us(80);

   dht_in=input(dht11);

   if(!dht_in) 

   {

      GlobalErr=2;

      return;

   }

   delay_us(80);

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

   {

      dht_dat[i] = leer_dht_dat();

   }

   OUTPUT_HIGH(dht11);

 }

byte leer_dht_dat()

{

   byte i = 0;

   byte result=0;

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

   {

      while(input(dht11)==0);

      delay_us(30);

      if (input(dht11)==1)

      {

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

      }

      while (input(dht11)==1);

   }

   return result;

}


Kaynak:http://www.zeteknoloji.com/DHT11
İmkanın sınırlarını görmek için imkansızı denemek lazım.                                                             Fatih Sultan Mehmet

point_blank

#2
tesekkürler kod için bunu nasıl kullanacam nemi nasıl tanıtacam ve sıcaklığı kodda read ile okuturum ama nem için veya sıcaklık için nasıl oalcak

bu kodda nem oranını nasıl yazdıracam acıklma yapılmamış kodda PIN_C3 bgaladım read_dht(); ile okudum

fakat ekrana bu nemi veya sıcaklığı nasıl yazdıracam burda hangisi nemin ve sıcaklığın degişkeni

#define dht11 PIN_C3

void dht_init()

{

   delay_ms(1);

   OUTPUT_HIGH(dht11);

}

void read_dht()

{

   byte GlobalErr=0;

   byte dht_in;

   byte i;

   byte dht_check_sum;

   dht_init();

   OUTPUT_LOW(dht11);

   delay_ms(18);

   OUTPUT_HIGH(dht11);

   delay_us(40);

   delay_us(40);//

   dht_in=input(dht11);

   if(dht_in)

   {

      GlobalErr=1;

      return;

   }

   delay_us(80);

   dht_in=input(dht11);

   if(!dht_in)

   {

      GlobalErr=2;

      return;

   }

   delay_us(80);

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

   {

      dht_dat = leer_dht_dat();

   }

   OUTPUT_HIGH(dht11);

}

byte leer_dht_dat()

{

   byte i = 0;

   byte result=0;

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

   {

      while(input(dht11)==0);

      delay_us(30);

      if (input(dht11)==1)

      {

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

      }

      while (input(dht11)==1);

   }

   return result;

}

necati

[email]entegreterbiyecisi@yahoo.com[/email]

point_blank

arkadaşlar netten o kadar arastırdım bulamadım lütfen yardım edermisiniz

M_B

Altaki kısmı programın  basında tanımla.

char message1[] = "Temp = 00.0 C";
char message2[] = "RH   = 00.0 %";
unsigned short  CheckSum, i;
unsigned short T_Byte1, T_Byte2, RH_Byte1, RH_Byte2;



     RH_Byte1 = read_dht();
     RH_Byte2 = read_dht();
     T_Byte1 = read_dht();
     T_Byte2 = read_dht();
     CheckSum = read_dht();

 if (CheckSum == ((RH_Byte1 + RH_Byte2 + T_Byte1 + T_Byte2) & 0xFF))
     {

      message1[7]  =  T_Byte1/10 + 48;
      message1[8]  =  T_Byte1%10 + 48;
      message1[10] = T_Byte2/10 + 48;
      message2[7]  =  RH_Byte1/10 + 48;
      message2[8]  =  RH_Byte1%10 + 48;
      message2[10] = RH_Byte2/10 + 48;
      message1[11] = 223;     // Degree symbol

 }
 // Bu kısmı lcd fonksiyonu ekleyerek ekranda gozukmesini sağlayın.
// message1 dizisinde sıcaklık. 
// message2 dizisinde ise nem değerleri mevcut. 

      else{
     
        // Buraya Lcd fonksiyonu ekle sensor 
       // lcd yazı olarak. Hatalı işlem tekrar deneyin yaz veya sensorden bilgi alınamadı gibi..
       }

İmkanın sınırlarını görmek için imkansızı denemek lazım.                                                             Fatih Sultan Mehmet

Erdem

Burada DHT11'in yapısı anlatılmış. Buna göre DHT11 tek kablo üzerinden iki yönlü seri iletişim yapabiliyormuş.

http://myo.karatekin.edu.tr/mkt2012/calistay-cd/ekler/bildiriler/16.pdf

Burada da SHT11 kullanılarak sıcaklık ve nem ölçümü anlatılmış.

http://www.bilesim.com.tr/yazdir.php?t=3&id=4805&sn=0