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

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

الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,688
نشاط [ حسن هادي محمود ]
قوة السمعة:136
قديم 27-09-2013, 07:38 AM المشاركة 1   
ha عدم أستقرار سفن سكمت Twitter FaceBook Google+



سلام عليكم
عندي سفن سكمنت تعمل بطريقه multiplexing تظهر الارقام بشكل طبيعي ولكن توجد مشكله في هذا كود وخصوصا في معادله حساب حراره NTC
كود:
void caculated_temperature()
{
 temp=ADC_Read(12);
 temp=temp*5000/1023;
 zz=(1/ (log( ( temp*(R1+R2)-(5*R2) )/((5000-temp)*R25))/B +3.354e-3) )-273.15; // equation fot NTC
 temp2=zz;
 if(zz>=100)temp2=99; // max value beacuse using 7seg two segment only
 if(zz<=1)temp2=0;
 show_7seg(temp2,25);
}
كود بلون الاحمر معادله حساب حراره
وفي كود
كود:
show_7seg(temp2,25);
اذا اقلل 25 الى 5 يحدث استقرار للسفن سكمنت حيث يمثل رقم زمن

كود سفن سكمنت
كود:
void show_7seg(char number,char time)
{
 for(x=0;x<time;x++)
     {
      seg_en1=disenable;     seg_en2=disenable;
      seg_en3=disenable; seg_en4=enable;
      segment=segment1[number/100];
      delay_ms(1);
      segment=0;// OFF 7 segment

      seg_en4=disenable;    seg_en3=enable;
      seg_en2=disenable;        seg_en1=disenable;
      segment=segment1[(number%100)/10];
     delay_ms(1);
      segment=0;// OFF 7 segment

       seg_en4=disenable;    seg_en3=disenable;
      seg_en2=enable;     seg_en1=disenable;
      segment=segment1[number%100%10];
      delay_ms(1);
      segment=0;// OFF 7 segment

      //**** show C in 7 seg  ***//
      seg_en1=enable;    seg_en2=disenable;
      seg_en3=disenable;     seg_en4=disenable;
       segment=segment1[10];
      delay_ms(1);
      segment=0;// OFF 7 segment


     }
}
ارجوا تحديد سبب مشكله وهل هناك بطئ في تنفيذ معادله لان مشكله الارتعاش ناتجه من هذه معادله حساب حراره
علما على برنامج بروتيس تعمل بشكل طبيعي
تردد كرستاله خارجيه=8 ميكاهيرتز
نوع البك 18f45k22
*****************


التعديل الأخير تم بواسطة : حسن هادي محمود بتاريخ 27-09-2013 الساعة 07:43 AM
اعلانات

الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,688
نشاط [ حسن هادي محمود ]
قوة السمعة:136
قديم 27-09-2013, 03:46 PM المشاركة 2   
افتراضي


سلام عليكم
عندي سفن سكمنت تعمل بطريقه multiplexing تظهر الارقام بشكل طبيعي ولكن توجد مشكله في هذا كود وخصوصا في معادله حساب حراره NTC
كود:
void caculated_temperature()
{
 temp=ADC_Read(12);
 temp=temp*5000/1023;
 zz=(1/ (log( ( temp*(R1+R2)-(5*R2) )/((5000-temp)*R25))/B +3.354e-3) )-273.15; // equation fot NTC
 temp2=zz;
 if(zz>=100)temp2=99; // max value beacuse using 7seg two segment only
 if(zz<=1)temp2=0;
 show_7seg(temp2,25);
}
كود بلون الاحمر معادله حساب حراره
وفي كود
كود:
show_7seg(temp2,25);
اذا اقلل 25 الى 5 يحدث استقرار للسفن سكمنت حيث يمثل رقم زمن

كود سفن سكمنت
كود:
void show_7seg(char number,char time)
{
 for(x=0;x<time;x++)
     {
      seg_en1=disenable;     seg_en2=disenable;
      seg_en3=disenable; seg_en4=enable;
      segment=segment1[number/100];
      delay_ms(1);
      segment=0;// OFF 7 segment

      seg_en4=disenable;    seg_en3=enable;
      seg_en2=disenable;        seg_en1=disenable;
      segment=segment1[(number%100)/10];
     delay_ms(1);
      segment=0;// OFF 7 segment

       seg_en4=disenable;    seg_en3=disenable;
      seg_en2=enable;     seg_en1=disenable;
      segment=segment1[number%100%10];
      delay_ms(1);
      segment=0;// OFF 7 segment

      //**** show C in 7 seg  ***//
      seg_en1=enable;    seg_en2=disenable;
      seg_en3=disenable;     seg_en4=disenable;
       segment=segment1[10];
      delay_ms(1);
      segment=0;// OFF 7 segment


     }
}
ارجوا تحديد سبب مشكله وهل هناك بطئ في تنفيذ معادله لان مشكله الارتعاش ناتجه من هذه معادله حساب حراره
علما على برنامج بروتيس تعمل بشكل طبيعي
تردد كرستاله خارجيه=8 ميكاهيرتز
نوع البك 18f45k22
*****************
اخواني تأكدت من مسبب مشكله هي داله لوغارتيم log
كيف عالج مشكله لانني لايمكن حذف داله log

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

WRHLAMDA
:: عضو فضي ::
تاريخ التسجيل: Feb 2005
المشاركات: 635
نشاط [ WRHLAMDA ]
قوة السمعة:114
قديم 29-09-2013, 08:47 AM المشاركة 3   
افتراضي


السلام عليكم

ان تسغيل هذا النوع من الشاشات بطريقة الملتبلكس يحتاج الى معدل زمني مناسب لعملية التشغيل والاطفاء لكي تعمل الشاشة بدون تقطيع

وافضل طريقة طبعا باستخدام المقاطعات ... حيث ان ذلك يجعل عمل الشاشة لا يتأثر بالعمليات الاخرى التي ينفذها المعالج والزمن الذي تستغرقة

فعليك عمل التالى

عمل مقاطعة باستخدام تايمر تحدث كل 10 مليثانية مثلا

في كل عملية مقاطعة تقوم باطفاء المرتبة السابقة من الرقم وتشغيل المرتبة التالية منه

هكذا تضمن عمل مستقر للشاشة


الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,688
نشاط [ حسن هادي محمود ]
قوة السمعة:136
قديم 29-09-2013, 03:08 PM المشاركة 4   
افتراضي


السلام عليكم

ان تسغيل هذا النوع من الشاشات بطريقة الملتبلكس يحتاج الى معدل زمني مناسب لعملية التشغيل والاطفاء لكي تعمل الشاشة بدون تقطيع

وافضل طريقة طبعا باستخدام المقاطعات ... حيث ان ذلك يجعل عمل الشاشة لا يتأثر بالعمليات الاخرى التي ينفذها المعالج والزمن الذي تستغرقة

فعليك عمل التالى

عمل مقاطعة باستخدام تايمر تحدث كل 10 مليثانية مثلا

في كل عملية مقاطعة تقوم باطفاء المرتبة السابقة من الرقم وتشغيل المرتبة التالية منه

هكذا تضمن عمل مستقر للشاشة
الف شكر الك اخي كريم
عندي مشكله وهي كيف اوفق بين حفاظ على تشغيل سفن سكمنت وتشغيل سماعه
يعني اقصد لما حراره مثلا تصل الى95 او اكبر استدعي داله صوت انظر كود
كود:
if(temp2 >= 95 && stop2 is 0 )tone1(2);
وهذه جزء من داله صوت
كود:
 if(speak is 2)
           {
            Sound_Play(1500,500);
            if(temp2<95 )
             {
              stop2=1;
              return;
             }
           }
هنا اذا كانت حراره اكبر من 95 راح يستمر صوت ولايتوقف الا اذا نزلت عن 95
هنا سفن سكمنت ماراح تشتغل بشكل صحيح ماذا افعل اخي لكي احافظ على سفن سكمنت


التعديل الأخير تم بواسطة : حسن هادي محمود بتاريخ 29-09-2013 الساعة 03:30 PM

WRHLAMDA
:: عضو فضي ::
تاريخ التسجيل: Feb 2005
المشاركات: 635
نشاط [ WRHLAMDA ]
قوة السمعة:114
قديم 29-09-2013, 09:28 PM المشاركة 5   
افتراضي


الف شكر الك اخي كريم
عندي مشكله وهي كيف اوفق بين حفاظ على تشغيل سفن سكمنت وتشغيل سماعه
يعني اقصد لما حراره مثلا تصل الى95 او اكبر استدعي داله صوت انظر كود
كود:
if(temp2 >= 95 && stop2 is 0 )tone1(2);
وهذه جزء من داله صوت
كود:
 if(speak is 2)
           {
            Sound_Play(1500,500);
            if(temp2<95 )
             {
              stop2=1;
              return;
             }
           }
هنا اذا كانت حراره اكبر من 95 راح يستمر صوت ولايتوقف الا اذا نزلت عن 95
هنا سفن سكمنت ماراح تشتغل بشكل صحيح ماذا افعل اخي لكي احافظ على سفن سكمنت

كما ذكرت لك ... استخدام المقاطعات يتجاوز كل هذه الامور .... ام انك لا تعرف كيف تعمل المقاطعات ؟؟؟


الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,688
نشاط [ حسن هادي محمود ]
قوة السمعة:136
قديم 30-09-2013, 01:53 AM المشاركة 6   
افتراضي


كما ذكرت لك ... استخدام المقاطعات يتجاوز كل هذه الامور .... ام انك لا تعرف كيف تعمل المقاطعات ؟؟؟
نعم اخي انا اعرف كيفيه تشغيل مقاطعه تايمر0 وجعلت كل 5 ثواني تشتغل خانه واحده فقط ولكن واجهتني مشكله لا اعرف السبب وهي اذا وضعت زمن تأخيري مقداره 1 ثانيه يؤثر على عمل سفن سكمنت ولكن من المفروض انها لاتوثر حسب مااعتقد عموما ان سأرفق لك مشروع وانت شاهد بنفسك واذا كان هناك خطأ ما أخبرني به
جازاك الله خير


الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,688
نشاط [ حسن هادي محمود ]
قوة السمعة:136
قديم 30-09-2013, 03:50 PM المشاركة 7   
افتراضي


نعم اخي انا اعرف كيفيه تشغيل مقاطعه تايمر0 وجعلت كل 5 ثواني تشتغل خانه واحده فقط ولكن واجهتني مشكله لا اعرف السبب وهي اذا وضعت زمن تأخيري مقداره 1 ثانيه يؤثر على عمل سفن سكمنت ولكن من المفروض انها لاتوثر حسب مااعتقد عموما ان سأرفق لك مشروع وانت شاهد بنفسك واذا كان هناك خطأ ما أخبرني به
جازاك الله خير
اخي كريم
حمدلله أستقرت الشاشه بعد ان وضعت الاوامر تشغيل سفن سكمنت ضمن داله الانتربت
ولكن واجهتني مشكله انظر صوره التاليه علما كانت سابقا يعمل مشروع بوجود ارتعاش قليل بشاشه الان ظهرت هذه الرساله
http://img02.arabsh.com/uploads/imag...404d62f300.png
تلاحظ بصوره بلون الازرق اذا لغيت أستدعاء داله
كود:
caculated_temperature();
عندها لاتوجد رساله خطأ
مع علم اذا وضعت اي داله مكان caculated_temperature(); لغرض أستدعائها لاتظهر اي رساله خطأ
في داله
كود:
caculated_temperature();
اذا لغيت معادله ZZ
http://img02.arabsh.com/uploads/imag...404d62f204.png
اين مشكله ؟؟ في معادله علما بدون لستخدام الانتربت يعمل مشروع بشكل طبيعي عدا وجود الارتعاش بسيط في سفن سكمنت

الان تحسن سفن سكمنت ولكن يرفض وجود داله حساب حراره ضمن داله صوت علما وجوده ضروري لكي يتوقف صوت تلقائيا ولكن تستمر سفن سكمنت بعرض حراره
هذا هو مشروع بشكل كامل
http://arabsh.com/files/0c37404c63fa...t-ntc-rar.html
في مشروع اعلاه يظهر رساله خطأ كما وضحتها بصوره الاولى
اذا لغيت استدعاء داله حساب حراره في داله صوت tone1 يعمل مشروع بشكل طبيعي ولايؤثر اي زمن مهما كانت قيمته على سفن سكمنت ولكن اذا اشتغلت سماعه الانذار درجه حراره لاتتغير ولا يتوقف صوت الا بالضغط على سويج setting
انا اريد اعرف لماذا ظهرت هذه رساله وسببها معادله كما وضحتها في صوره رقم 2


Tico
:: عضو ذهبي ::
تاريخ التسجيل: May 2012
المشاركات: 1,426
نشاط [ Tico ]
قوة السمعة:115
قديم 30-09-2013, 04:37 PM المشاركة 8   
افتراضي


هذا هو المشروع بشكل كامل
http://arabsh.com/files/0c37404c63fa/project-ntc-rar.html
أخي حسن هادي بعيدا عن البرمجة..
لدي ملاحظة بسيطة:
في دائرتك 4 ليدات موصولة مباشرة مع مخارج المتحكم.
في بروتوس لا مشكل ..
لكن في التنفيذ العملي من الضروري إضافة مقاومة حماية مع كل ليد ..
270 او 330 أوم

إضافة رد

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

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

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


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

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