قسم الميكروكنترولر والروبوت ودوائر الاتصال بالحاسب الالي قسم المتحكمات الـ microcontroller و المعالجات microprocessor و التحكم الرقمي بالكمبيوتر CNC والانظمة الآلية والروبوت Robots

أدوات الموضوع

MWWM
:: مهندس جيد ::
تاريخ التسجيل: Aug 2009
المشاركات: 239
نشاط [ MWWM ]
قوة السمعة:0
قديم 13-01-2020, 02:22 PM المشاركة 1   
افتراضي مساعده في حساس dht11 Twitter FaceBook Google+



السلام عليكم ورحمه الله وبركاته

اخواني قمت بتجربة الحساس dht11 على بيك 16f628a و 16f887 باكواد موجوده بالنت ومجربة لكن تحصل نفس المشكله مع كل التجربتين في البيكين السابقين رغم ان الكودين من موقعين مختلفين وعند عمل السيميليشن على البروتس لايوجد مشكله. ارجو المساعده

المشكله هي ان الشاشه تعرض درجه الحراره والرطوبه لمده ثانيه ثم تعرض بعدها
رساله no responce from sensor لمده ثانيه ثم يستمر هذا التكرار ثانيه تعرض درجه الحراره والرطوبه وثانيه تعرض الرساله السابقه


كود:
/*
 Project: Temperature and humidity DHT11
 MCU: PIC16F628A
 Clock: 4.0MHz
 MCLR is enabled

*/

// LCD module connections
sbit LCD_RS at RB2_bit;
sbit LCD_EN at RB3_bit;
sbit LCD_D4 at RB4_bit;
sbit LCD_D5 at RB5_bit;
sbit LCD_D6 at RB6_bit;
sbit LCD_D7 at RB7_bit;
sbit LCD_RS_Direction at TRISB2_bit;
sbit LCD_EN_Direction at TRISB3_bit;
sbit LCD_D4_Direction at TRISB4_bit;
sbit LCD_D5_Direction at TRISB5_bit;
sbit LCD_D6_Direction at TRISB6_bit;
sbit LCD_D7_Direction at TRISB7_bit;

sbit Data at RA1_bit;
sbit DataDir at TRISA1_bit;
char message1[] = "Temp = 00.0 C";
char message2[] = "RH   = 00.0 %";
unsigned short TOUT = 0, CheckSum, i;
unsigned short T_Byte1, T_Byte2, RH_Byte1, RH_Byte2;

void StartSignal(){
  DataDir = 0;     // Data port is output
  Data    = 0;
  Delay_ms(20);
  Data    = 1;
  Delay_us(30);
  DataDir = 1;     // Data port is input

}

unsigned short CheckResponse(){
  TOUT = 0;
  TMR2 = 0;
  T2CON.TMR2ON = 1;      // start timer
  while(!Data && !TOUT);
  if (TOUT) return 0;
  else {
   TMR2 = 0;
   while(Data && !TOUT);
   if (TOUT) return 0;
   else {
    T2CON.TMR2ON = 0;
    return 1;
   }
  }
}

unsigned short ReadByte(){
  unsigned short num = 0, t;
  DataDir = 1;
  for (i=0; i<8; i++){
   while(!Data);
   TMR2 = 0;
   T2CON.TMR2ON = 1;
   while(Data);
   T2CON.TMR2ON = 0;
   if(TMR2 > 40) num |= 1<<(7-i);  // If time > 40us, Data is 1
  }
  return num;
}

void interrupt(){
  if(PIR1.TMR2IF){
   TOUT = 1;
   T2CON.TMR2ON = 0; // stop timer
   PIR1.TMR2IF  = 0; // Clear TMR0 interrupt flag
  }
}

void main() {

  unsigned short check;
  PCON.OSCF = 1;
  TRISB = 0b00000000;
  PORTB = 0;
  TRISA = 0b00010001;
  CMCON = 7;

  INTCON.GIE = 1;    //Enable global interrupt
  INTCON.PEIE = 1;   //Enable peripheral interrupt
  // Configure Timer2 module
  PIE1.TMR2IE = 1;  // Enable Timer2 interrupt
  T2CON = 0;        // Prescaler 1:1, and Timer2 is off initially
  PIR1.TMR2IF =0;   // Clear TMR INT Flag bit
  TMR2 = 0;
  Lcd_Init();
  Lcd_Cmd(_Lcd_Clear);
  Lcd_Cmd(_LCD_CURSOR_OFF);

  do {
    Delay_ms(1000);
    StartSignal();
    check = CheckResponse();
    if (!check) {
     Lcd_Cmd(_Lcd_Clear);
     Lcd_Out(1, 1, "No response");
     Lcd_Out(2, 1, "from the sensor");
    }
    else{
    
     RH_Byte1 = ReadByte();
     RH_Byte2 = ReadByte();
     T_Byte1 = ReadByte();
     T_Byte2 = ReadByte();
     CheckSum = ReadByte();
     // Check for error in Data reception
     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
      Lcd_Cmd(_Lcd_Clear);
      Lcd_Out(1, 1, message1);
      Lcd_Out(2, 1, message2);
      }
      
      else{
       Lcd_Cmd(_Lcd_Clear);
       Lcd_Out(1, 1, "Checksum Error!");
       Lcd_Out(2, 1, "Trying Again ...");
      }
    }

  }while(1);
}
الرابط المشروع بروتس والمايكروسي (استخدمت الكرستاله الداخليه 4 ميقاهيرتز)

https://mrkzgulfup.com/download241167.html





التعديل الأخير تم بواسطة : MWWM بتاريخ 13-01-2020 الساعة 06:54 PM
اعلانات

MWWM
:: مهندس جيد ::
تاريخ التسجيل: Aug 2009
المشاركات: 239
نشاط [ MWWM ]
قوة السمعة:0
قديم 13-01-2020, 02:25 PM المشاركة 2   
افتراضي


هل يمكن يكون الحساس الذي لدي هو العطلان او لايعمل بشكل صحيح


التعديل الأخير تم بواسطة : MWWM بتاريخ 13-01-2020 الساعة 02:36 PM
اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )
  

فيصل الريامي
:: مهندس ::
تاريخ التسجيل: Dec 2018
المشاركات: 36
نشاط [ فيصل الريامي ]
قوة السمعة:0
قديم 13-01-2020, 06:38 PM المشاركة 3   
افتراضي


هل انت متأكد من توصيلات الشاشه..
لان تنفيذ الدائره في الحقيقه يجب عليك توصيل القطب رقم VEE بمقاومه متغيره..


الصورة الرمزية عبدالله حجازى
عبدالله حجازى
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2011
الدولة: مصر .. محافظة دمياط
المشاركات: 1,688
نشاط [ عبدالله حجازى ]
قوة السمعة:111
قديم 13-01-2020, 11:33 PM المشاركة 4   
افتراضي


هل يمكن يكون الحساس الذي لدي هو العطلان او لايعمل بشكل صحيح
السلام عليكم ورحمه الله

أخي نوع الكابل المستخدم في ربط الحساس مع الميكرو مهم جدا يكون من نوع شيلد كابل

ايضا أقرأ داتا شيت الحساس لكي تتعرف علي اكثر طول للسلك تستطيع استخدامه

بالنسبة لطول السلك لقد استخدمت سلك بطول 150 سم وكان يعمل جيدا .. ملحوظة مهمه عند استخدام كابل طولة أكثر من 75 سم استخدم مقاومة 10 كيلو بدلا من خمس كيلو اتحدث عن مقاومة الرفع الموصلة مع موجب الحساس وطرف الداتا


MWWM
:: مهندس جيد ::
تاريخ التسجيل: Aug 2009
المشاركات: 239
نشاط [ MWWM ]
قوة السمعة:0
قديم 14-01-2020, 11:39 AM المشاركة 5   
افتراضي


المشروع على لوح الاختبار
وهذا فديو للمشكله
http://www.mediafire.com/file/ivrfte...muz/83205/file


التعديل الأخير تم بواسطة : MWWM بتاريخ 14-01-2020 الساعة 12:26 PM
إضافة رد

العلامات المرجعية

«     الموضوع السابق       الموضوع التالي    »
أدوات الموضوع

الانتقال السريع إلى


الساعة معتمدة بتوقيت جرينتش +3 الساعة الآن: 06:46 AM
موقع القرية الالكترونية غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي موقع القرية الالكترونية ولايتحمل الموقع أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)

Powered by vBulletin® Version 3.8.6, Copyright ©2000 - 2025