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

   

abo hosen
:: مهندس متواجد ::
تاريخ التسجيل: Jan 2015
الدولة: turky
المشاركات: 115
نشاط [ abo hosen ]
قوة السمعة:
قديم 07-06-2016, 02:41 AM المشاركة 89   
افتراضي



السلام عليكم اخي الكريم
اريد منك خدمة انا قمت بعمل المشروع باستخدام lm35 وتم بحمد الله ولكن علمت ان المقاومة ntc ادق من الحساس lm35 فاريد مساعدتك في التعديل على برنامجك بحيث يكون:
البرنامج يلائم المتحكم 16f877a
والتعديل على بعض الاعدادات
بحيث يقوم بمراقبة درجة حرارة من 36 الى 37.5 فلا يتجاوزها ولا ينقصها عن هذا الحد
وادخال امكانية التعديل على هذه القيم عبر سوتش
وبالاضافة تشغيل دي سي ميتور اوتوماتيك كل ساعتين باتجاه مع امكانية التعديل على الوقت
والعرض على شاشة lcd 16*2
وارجو ارفاق الملفات مع المحاكات اذا امكن

وجزاك الله كل خير عني ودمت سالما ان شاء الله تعالى

اعلانات

abo hosen
:: مهندس متواجد ::
تاريخ التسجيل: Jan 2015
الدولة: turky
المشاركات: 115
نشاط [ abo hosen ]
قوة السمعة:
قديم 09-06-2016, 11:34 PM المشاركة 90   
افتراضي


الا يوجد رد *_*

اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )

الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,673
نشاط [ حسن هادي محمود ]
قوة السمعة:
قديم 12-06-2016, 01:27 PM المشاركة 91   
افتراضي


السلام عليكم اخي الكريم
اريد منك خدمة انا قمت بعمل المشروع باستخدام lm35 وتم بحمد الله ولكن علمت ان المقاومة ntc ادق من الحساس lm35 فاريد مساعدتك في التعديل على برنامجك بحيث يكون:
البرنامج يلائم المتحكم 16f877a
والتعديل على بعض الاعدادات
بحيث يقوم بمراقبة درجة حرارة من 36 الى 37.5 فلا يتجاوزها ولا ينقصها عن هذا الحد
وادخال امكانية التعديل على هذه القيم عبر سوتش
وبالاضافة تشغيل دي سي ميتور اوتوماتيك كل ساعتين باتجاه مع امكانية التعديل على الوقت
والعرض على شاشة lcd 16*2
وارجو ارفاق الملفات مع المحاكات اذا امكن

وجزاك الله كل خير عني ودمت سالما ان شاء الله تعالى
السلام عليكم ورحمه الله
أعتذر اخي على تاخير لكوني مشغول جدا
سحاول ترتيب الكود لكم
تحياتي


abo hosen
:: مهندس متواجد ::
تاريخ التسجيل: Jan 2015
الدولة: turky
المشاركات: 115
نشاط [ abo hosen ]
قوة السمعة:
قديم 14-06-2016, 08:26 PM المشاركة 92   
افتراضي


مشكور اخي على الرد وانا بإنتظارك ^_^
وهناك مشروع اريد مساعدتك فيه ولكن سأجعلة بمشاركة جديدة ^_*


الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,673
نشاط [ حسن هادي محمود ]
قوة السمعة:
قديم 06-07-2016, 10:04 AM المشاركة 93   
افتراضي


مشكور اخي على الرد وانا بإنتظارك ^_^
وهناك مشروع اريد مساعدتك فيه ولكن سأجعلة بمشاركة جديدة ^_*
السلام عليكم
كل عام وانتم بالف خير

حمل هذا الكود
http://www.mediafire.com/download/h5...ect+NTC_V1.rar

هنا فقط يعرض درجه حراره وضبط اقل درجه واعلى درجه حراه مع حفظ البيانات

كود:
#define off              0
#define on               1
#define pressed          0
#define R1                1.2  // 3.3 k ohm
#define R2                0.1  // 1 k ohm
#define To               298.15// 25+273
#define B                3250
#define R25              1.967  // 2.2 k ohm


// Lcd pinout settings
sbit LCD0_RS at RB4_bit;
sbit LCD0_EN at RB5_bit;
sbit LCD0_D7 at RB3_bit;
sbit LCD0_D6 at RB2_bit;
sbit LCD0_D5 at RB1_bit;
sbit LCD0_D4 at RB0_bit;

// Pin direction
sbit LCD0_RS_Direction at TRISB4_bit;
sbit LCD0_EN_Direction at TRISB5_bit;
sbit LCD0_D7_Direction at TRISB3_bit;
sbit LCD0_D6_Direction at TRISB2_bit;
sbit LCD0_D5_Direction at TRISB1_bit;
sbit LCD0_D4_Direction at TRISB0_bit;

sbit sw_ok at RC0_bit;
sbit sw_ok_dir at TRISC0_bit;
sbit sw_inc at RC1_bit;
sbit sw_inc_dir at TRISC1_bit;
sbit sw_dec at RC2_bit;
sbit sw_dec_dir at TRISC2_bit;

sbit led_load at RC4_bit;
sbit led_load_dir at TRISC4_bit;
sbit led_alarm at RC3_bit;
sbit led_alarm_dir at TRISC3_bit;
sbit led_Tmin at RD1_bit;
sbit led_Tmin_dir at TRISD1_bit;
sbit led_Tmax at RD0_bit;
sbit led_Tmax_dir at TRISD0_bit;
/////////////////////////    veriable      //////////////////////////////////
char x=0,sound=0,zzz=0, k=0 , select=0 ;
unsigned int tmax=25, tmin=20;
float temp=0;
float temp2=0 ;
char stop1=0,stop2=0 , alarm=0;
char temp_value[15];

//////////////////////////////////////////////////////////////////////////////
void init();                       //   function  //
//void show_7seg(unsigned int number,char time);
void caculated_temperature();
void load();
void setting();
void tone1(char speak);
/////////////////////////////////////////////////////////////////////////////
 void lcd_clear()
 {
  Lcd0_Command(_LCD_CLEAR);
 }
void init()
{
 ADCON1=0x8E;
 Lcd0_Init();
 Lcd0_Command(_LCD_CURSOR_OFF);
 lcd_clear();
 
 Lcd0_GotoYX(0,0);
 Lcd0_CstrOut("loading....");
 
 sw_ok_dir=1;
 sw_inc_dir=1;
 sw_dec_dir=1;
 TRISA0_bit=1;
 led_alarm=0;
 led_load=0;
 led_Tmin=0;
 led_Tmax=0;
 
 led_alarm_dir=0;
 led_load_dir=0;
 led_Tmin_dir=0;
 led_Tmax_dir=0;
 

 adc_Init();
 Sound_Init(&portc,5);
 if(eeprom_read(0)>38)
     {
      delay_ms(50);
      eeprom_write(0,36);
      eeprom_write(1,0);
       tmin=360;//mean 36.0
       delay_ms(50);
     }
if(eeprom_read(2)>38)
     {
      delay_ms(50);
      eeprom_write(2,36);
      eeprom_write(3,0);
      tmax=360;//mean 36.0
      delay_ms(50);
     }
 delay_ms(1000);
 lcd_clear();
 tmin=eeprom_read(0);
 tmin *=10+eeprom_read(1);
 tmax=eeprom_read(3);
 tmax *=10 +eeprom_read(4);
 Lcd0_GotoYX(0,0); Lcd0_CstrOut("temp= ");
}

///////////////////////////////////////////////////////////////////////////////
void main()
{
  init();

  while(1)
    {
     if(sw_ok == pressed)
         {
            delay_ms(50);
           while(sw_ok == pressed);
           delay_ms(50);
           setting();

         }
    caculated_temperature();
    //load();
    //if(sound==1){led_alarm=1;tone1(1);}
    //else if(sound==2)tone1(2);

    }
}
////////////////////////////////////////////////////////////////////////////////
void load()
{
 if(temp2>=EEPROM_Read(3))// run
    {
     led_load=on;
     led_alarm=off;
     k=1;
    }
 if(temp2>=(EEPROM_Read(3)-5)&& k == 0) // alarm
    {
     led_load=off;
     led_alarm=on;
    }
  if(temp2<=eeprom_read(0) && k == 1) { k=0;led_load=off;}
  if(temp2 == 75 && stop1 == 0) {led_load=0;sound =1;}
  else if(temp2<75 || temp2>=77)
        { 
          stop1=0;
          sound=0;
         led_load=1;
        }
  if(temp2 >= 95 && stop2 == 0 ) ;
  else if(temp2<95)
     {
      stop2=0;
      sound=0;
     }
}
///////////////////////////////////////////////////////////////////////////////
void setting()
{
 int display=0;
 char flag_tmin=0 , flag_tmax=0;
 tmin *=10+eeprom_read(1);
 tmax=eeprom_read(3);
 tmax *=10 +eeprom_read(4);
 display=tmin;
 select=1;
 flag_tmin=1;
 while(1)
  {
   if( sw_ok == pressed)
       {
        delay_ms(10);
        while(sw_ok == pressed);
        delay_ms(10);

        select++;
        lcd_clear();
        if(select == 1)flag_tmin=1;
        if(select == 2)
          {
           display=tmax;
           flag_tmax=1;
          }
        
        if(select == 3)
             {
              select=0;
              Delay_ms(100);
              EEPROM_Write(0,tmin/10);
              EEPROM_Write(1,tmin%10);
              EEPROM_Write(2,tmax/10);
              EEPROM_Write(3,tmax%10);
              lcd_clear();
              Lcd0_GotoYX(0,0); Lcd0_CstrOut("data is save");

              Delay_ms(1000);
              lcd_clear();
              led_Tmin=off;
              led_Tmax=off;
              return;
             }
       }
   if( select ==1 && flag_tmin==1) // setting Tmin
      {
       flag_tmin=0;
        lcd_clear();
        Lcd0_GotoYX(0,0); Lcd0_CstrOut("Tmin :");
         led_Tmin=on;
         led_Tmax=off;
      }
   else if( select == 2 && flag_tmax==1) // setting Tmax
      {
       flag_tmax=0;
       lcd_clear();
        Lcd0_GotoYX(0,0); Lcd0_CstrOut("Tmax :");
        led_Tmin=off;
         led_Tmax=on;
        temp2=tmax;
      }
   if(sw_inc == pressed)
         {
           display++;
           if(display >375) display=375;
           Delay_ms(250);
         }
    else if(sw_dec == pressed)
          {
           display--;
           if(display <360) display=360;
           Delay_ms(250);
          }
          
    if(select==1)tmin=display;
    else if(select==2)tmax=display;
    Lcd0_GotoYX(0,6);

    Lcd0_WriteChar(display/100%10 +48);
    Lcd0_WriteChar((display/10)%10 +48);
    Lcd0_WriteChar('.');
    Lcd0_WriteChar(display%10 +48);

  }
}
///////////////////////////////////////////////////////////////////////////////

void caculated_temperature()
{
 temp=ADC_Read(0);
 temp=temp*5000/1023;
 temp2=(1/ (log( ( temp*(R1+R2)-(5000*R2) )/((5000-temp)*R25))/B +3.354e-3) )-273.15; // equation fot NTC

 FloatToStr(temp2,temp_value);
 //temp_value[6]=0;
 Lcd0_GotoYX(0,0); Lcd0_CstrOut("temp =");
 
 Lcd0_RstrNout(temp_value,5);
 
}

//**************************************************************************//
void tone1(char speak)
{

     //caculated_temperature();
     //led_alarm=~led_alarm;
       if(speak == 1)
       {

        Sound_Play(1500,1000);
        stop1=1;
        //sound=0;
        return;
       }
       if(speak == 2)
           {
            Sound_Play(1200, 250);
            Sound_Play(1500, 250);
            if(temp2<95 )
             {
              stop2=1;
              sound=0;
              return;
             }
           }
      if(sw_ok == 0)
          {
           delay_ms(10);
           while(sw_ok == 0);
           delay_ms(10);
           if(speak == 1)stop1=1;
           if(speak == 2)stop2=1;
           return;
          }


}


NoureddineDz
:: مهندس متواجد ::
تاريخ التسجيل: Feb 2012
المشاركات: 148
نشاط [ NoureddineDz ]
قوة السمعة:
قديم 06-07-2016, 12:23 PM المشاركة 94   
ha


السلام عليكم
كل عام وانتم بالف خير

حمل هذا الكود
http://www.mediafire.com/download/h5...ect+NTC_V1.rar

هنا فقط يعرض درجه حراره وضبط اقل درجه واعلى درجه حراه مع حفظ البيانات

كود:
#define off              0
#define on               1
#define pressed          0
#define R1                1.2  // 3.3 k ohm
#define R2                0.1  // 1 k ohm
#define To               298.15// 25+273
#define B                3250
#define R25              1.967  // 2.2 k ohm


// Lcd pinout settings
sbit LCD0_RS at RB4_bit;
sbit LCD0_EN at RB5_bit;
sbit LCD0_D7 at RB3_bit;
sbit LCD0_D6 at RB2_bit;
sbit LCD0_D5 at RB1_bit;
sbit LCD0_D4 at RB0_bit;

// Pin direction
sbit LCD0_RS_Direction at TRISB4_bit;
sbit LCD0_EN_Direction at TRISB5_bit;
sbit LCD0_D7_Direction at TRISB3_bit;
sbit LCD0_D6_Direction at TRISB2_bit;
sbit LCD0_D5_Direction at TRISB1_bit;
sbit LCD0_D4_Direction at TRISB0_bit;

sbit sw_ok at RC0_bit;
sbit sw_ok_dir at TRISC0_bit;
sbit sw_inc at RC1_bit;
sbit sw_inc_dir at TRISC1_bit;
sbit sw_dec at RC2_bit;
sbit sw_dec_dir at TRISC2_bit;

sbit led_load at RC4_bit;
sbit led_load_dir at TRISC4_bit;
sbit led_alarm at RC3_bit;
sbit led_alarm_dir at TRISC3_bit;
sbit led_Tmin at RD1_bit;
sbit led_Tmin_dir at TRISD1_bit;
sbit led_Tmax at RD0_bit;
sbit led_Tmax_dir at TRISD0_bit;
/////////////////////////    veriable      //////////////////////////////////
char x=0,sound=0,zzz=0, k=0 , select=0 ;
unsigned int tmax=25, tmin=20;
float temp=0;
float temp2=0 ;
char stop1=0,stop2=0 , alarm=0;
char temp_value[15];

//////////////////////////////////////////////////////////////////////////////
void init();                       //   function  //
//void show_7seg(unsigned int number,char time);
void caculated_temperature();
void load();
void setting();
void tone1(char speak);
/////////////////////////////////////////////////////////////////////////////
 void lcd_clear()
 {
  Lcd0_Command(_LCD_CLEAR);
 }
void init()
{
 ADCON1=0x8E;
 Lcd0_Init();
 Lcd0_Command(_LCD_CURSOR_OFF);
 lcd_clear();
 
 Lcd0_GotoYX(0,0);
 Lcd0_CstrOut("loading....");
 
 sw_ok_dir=1;
 sw_inc_dir=1;
 sw_dec_dir=1;
 TRISA0_bit=1;
 led_alarm=0;
 led_load=0;
 led_Tmin=0;
 led_Tmax=0;
 
 led_alarm_dir=0;
 led_load_dir=0;
 led_Tmin_dir=0;
 led_Tmax_dir=0;
 

 adc_Init();
 Sound_Init(&portc,5);
 if(eeprom_read(0)>38)
     {
      delay_ms(50);
      eeprom_write(0,36);
      eeprom_write(1,0);
       tmin=360;//mean 36.0
       delay_ms(50);
     }
if(eeprom_read(2)>38)
     {
      delay_ms(50);
      eeprom_write(2,36);
      eeprom_write(3,0);
      tmax=360;//mean 36.0
      delay_ms(50);
     }
 delay_ms(1000);
 lcd_clear();
 tmin=eeprom_read(0);
 tmin *=10+eeprom_read(1);
 tmax=eeprom_read(3);
 tmax *=10 +eeprom_read(4);
 Lcd0_GotoYX(0,0); Lcd0_CstrOut("temp= ");
}

///////////////////////////////////////////////////////////////////////////////
void main()
{
  init();

  while(1)
    {
     if(sw_ok == pressed)
         {
            delay_ms(50);
           while(sw_ok == pressed);
           delay_ms(50);
           setting();

         }
    caculated_temperature();
    //load();
    //if(sound==1){led_alarm=1;tone1(1);}
    //else if(sound==2)tone1(2);

    }
}
////////////////////////////////////////////////////////////////////////////////
void load()
{
 if(temp2>=EEPROM_Read(3))// run
    {
     led_load=on;
     led_alarm=off;
     k=1;
    }
 if(temp2>=(EEPROM_Read(3)-5)&& k == 0) // alarm
    {
     led_load=off;
     led_alarm=on;
    }
  if(temp2<=eeprom_read(0) && k == 1) { k=0;led_load=off;}
  if(temp2 == 75 && stop1 == 0) {led_load=0;sound =1;}
  else if(temp2<75 || temp2>=77)
        { 
          stop1=0;
          sound=0;
         led_load=1;
        }
  if(temp2 >= 95 && stop2 == 0 ) ;
  else if(temp2<95)
     {
      stop2=0;
      sound=0;
     }
}
///////////////////////////////////////////////////////////////////////////////
void setting()
{
 int display=0;
 char flag_tmin=0 , flag_tmax=0;
 tmin *=10+eeprom_read(1);
 tmax=eeprom_read(3);
 tmax *=10 +eeprom_read(4);
 display=tmin;
 select=1;
 flag_tmin=1;
 while(1)
  {
   if( sw_ok == pressed)
       {
        delay_ms(10);
        while(sw_ok == pressed);
        delay_ms(10);

        select++;
        lcd_clear();
        if(select == 1)flag_tmin=1;
        if(select == 2)
          {
           display=tmax;
           flag_tmax=1;
          }
        
        if(select == 3)
             {
              select=0;
              Delay_ms(100);
              EEPROM_Write(0,tmin/10);
              EEPROM_Write(1,tmin%10);
              EEPROM_Write(2,tmax/10);
              EEPROM_Write(3,tmax%10);
              lcd_clear();
              Lcd0_GotoYX(0,0); Lcd0_CstrOut("data is save");

              Delay_ms(1000);
              lcd_clear();
              led_Tmin=off;
              led_Tmax=off;
              return;
             }
       }
   if( select ==1 && flag_tmin==1) // setting Tmin
      {
       flag_tmin=0;
        lcd_clear();
        Lcd0_GotoYX(0,0); Lcd0_CstrOut("Tmin :");
         led_Tmin=on;
         led_Tmax=off;
      }
   else if( select == 2 && flag_tmax==1) // setting Tmax
      {
       flag_tmax=0;
       lcd_clear();
        Lcd0_GotoYX(0,0); Lcd0_CstrOut("Tmax :");
        led_Tmin=off;
         led_Tmax=on;
        temp2=tmax;
      }
   if(sw_inc == pressed)
         {
           display++;
           if(display >375) display=375;
           Delay_ms(250);
         }
    else if(sw_dec == pressed)
          {
           display--;
           if(display <360) display=360;
           Delay_ms(250);
          }
          
    if(select==1)tmin=display;
    else if(select==2)tmax=display;
    Lcd0_GotoYX(0,6);

    Lcd0_WriteChar(display/100%10 +48);
    Lcd0_WriteChar((display/10)%10 +48);
    Lcd0_WriteChar('.');
    Lcd0_WriteChar(display%10 +48);

  }
}
///////////////////////////////////////////////////////////////////////////////

void caculated_temperature()
{
 temp=ADC_Read(0);
 temp=temp*5000/1023;
 temp2=(1/ (log( ( temp*(R1+R2)-(5000*R2) )/((5000-temp)*R25))/B +3.354e-3) )-273.15; // equation fot NTC

 FloatToStr(temp2,temp_value);
 //temp_value[6]=0;
 Lcd0_GotoYX(0,0); Lcd0_CstrOut("temp =");
 
 Lcd0_RstrNout(temp_value,5);
 
}

//**************************************************************************//
void tone1(char speak)
{

     //caculated_temperature();
     //led_alarm=~led_alarm;
       if(speak == 1)
       {

        Sound_Play(1500,1000);
        stop1=1;
        //sound=0;
        return;
       }
       if(speak == 2)
           {
            Sound_Play(1200, 250);
            Sound_Play(1500, 250);
            if(temp2<95 )
             {
              stop2=1;
              sound=0;
              return;
             }
           }
      if(sw_ok == 0)
          {
           delay_ms(10);
           while(sw_ok == 0);
           delay_ms(10);
           if(speak == 1)stop1=1;
           if(speak == 2)stop2=1;
           return;
          }


}
السلام عليكم.....
عيدك مبارك....
اخي لو تتكرم وتترجم لي نفس الكود للاردوينو رجاءا.......
وشكرا لما تقدمه سلفا........


abo hosen
:: مهندس متواجد ::
تاريخ التسجيل: Jan 2015
الدولة: turky
المشاركات: 115
نشاط [ abo hosen ]
قوة السمعة:
قديم 06-07-2016, 06:44 PM المشاركة 95   
افتراضي


مشكور اخي الكريم بس اخي انت تأكدت من العمل على المحاكااة لان البرنامج عم يخرف على البروتوس ؟؟؟؟؟؟؟؟؟؟؟ عند الضغط على الضبط كل مرة يطلع على lcd ارقام مختلفة في tmin tmax
الرجاء تتأكدلي حتى اباشر بالهارد وير الواقعي
ثانيا اخي الكريم المقاومة ntc هي 5.6 k ????


abo hosen
:: مهندس متواجد ::
تاريخ التسجيل: Jan 2015
الدولة: turky
المشاركات: 115
نشاط [ abo hosen ]
قوة السمعة:
قديم 09-07-2016, 06:53 PM المشاركة 96   
افتراضي


السلام عليكم اخي انا اريد ان اطبق المشروع هارد وير بس بدي مساعدتك ببعض الامور بعد ان بحثت باالقطع الي عندي توفر لدي نوعين من ال ntc
الاولى ذات رقمntc 5d-9
الثانية ذات رقم ntc mf725d9
والاثنتان لها داتا شيت بس ما وجدت بالداتا شيت قيمة b
ووجدت قيمة المقاومة وهي 5 اوم عند رجة حرارة 25 فا يا ريت تساعدني لجرب البرنامج الذي اعطيتني اياه هارد وير لاني ذكرت لك بالرد السابق انه المحاكاة لا تعمل وفيها معطيات وهمية وشكرا لك اخي



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