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

   

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



تعمل جيدل بدون ارتعاش قلييق

اما الارقام الاحض انها تتغير كل مثلا 52 54 56

يعني زوجي

الصوة يعمل جيدا
الحرارة مستقرة و الكود الى حد الان ممتاز جدا

اخي هل يكمن ربط البيك بال حاسوب لتغيير معطيات معينة

مثل معادلة NTC

هذا الكود مع الشرح علمني الكثييييير

لكم مني اجمل تحية
اخي كريم تم تعديل على كود حساب حراره
كود:
void caculated_temperature()
{

 if(kk==0)
     {
       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;
     }
 kk++;
 if(kk==250)kk=0;
 if(zz<=1)temp2=0;
 show_7seg(temp2,1);
 }
هنا سوف اقرا حراره كل 1 ثانيه
لان kk=250 وزمن عرض كلي=4 ملي ثانيه
وفكره جميله ان سفن سكمنت زمنها كلي=4 ملي ثانيه وبتالي لن تؤثر على عمل سويج اي ان مايكرو لن يكون مشغول لمده 1 ثانيه بعرض قيمه حراره وانما كل 4 ملي ثانيه يعرض حراره ولكن بعد كل 1 ثانيه يعمل لها تحديث
هذه فكره تحتاجها دائما خصوصا اذا عندك اكثر من مهمه تريد مايكرو يقوم بأنجازها
جرب كود طبعا كلما زدت قيمه kk قل الارتعاش في سفن سكمنت ولكن يزيد زمن تحديث قيمه حراره


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

الصورة الرمزية المخترع01
المخترع01
:: مهندس متميز ::
تاريخ التسجيل: Dec 2009
المشاركات: 397
نشاط [ المخترع01 ]
قوة السمعة:
قديم 27-09-2013, 07:58 PM المشاركة 82   
افتراضي


اخي برنامج الميكروس لا يقبل الكود الجديد

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

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


اخي برنامج الميكروس لا يقبل الكود الجديد
هو يخبرك ان kk غير معرفه لذا عليك بتعريف متغير kk
اكتب في بدايه برنامج char kk=0;
لاحظ كود
كود:
const char segment1[]  ={63,6,91,79,102,109,125,7,127,111,57};
char x=0,y=0,kk=0,zzz=0, tmax=25, tmin=20, k=0 , select=0 ;
float temp=0;
float zz=0;
char temp2=0;
char stop1=0,stop2=0;


الصورة الرمزية المخترع01
المخترع01
:: مهندس متميز ::
تاريخ التسجيل: Dec 2009
المشاركات: 397
نشاط [ المخترع01 ]
قوة السمعة:
قديم 27-09-2013, 11:10 PM المشاركة 84   
افتراضي


اصبحت درجة الحرارة خاطئة

اخي و الارتعاش لم ينحل مثل التجربة بالكود show_7seg(temp2 200

طيب اخ انا ابحث عن و جازك الله خير فقد افدتنيس جداااا

و انا في قمة السعادة و التجربة اعطتي لي الكثير في عالم الميكرو

اخي عندي مشكل بسيط

لم استطع ادراج نقطة في السافن سيجمون

الذي استعمل فيه هو من نوع خاص و بهي نقطة من الاعلا




اخي انا استعمل هذا السيجمون




التعديل الأخير تم بواسطة : المخترع01 بتاريخ 27-09-2013 الساعة 11:24 PM

الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,673
نشاط [ حسن هادي محمود ]
قوة السمعة:
قديم 28-09-2013, 05:46 AM المشاركة 85   
افتراضي


اخي كريم تم تعديل على كود حساب حراره
كود:
void caculated_temperature()
{

 if(kk==0)
     {
       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;
     }
 kk++;
 if(kk==250)kk=0;
 if(zz<=1)temp2=0;
 show_7seg(temp2,1);
 }
هنا سوف اقرا حراره كل 1 ثانيه
لان kk=250 وزمن عرض كلي=4 ملي ثانيه
وفكره جميله ان سفن سكمنت زمنها كلي=4 ملي ثانيه وبتالي لن تؤثر على عمل سويج اي ان مايكرو لن يكون مشغول لمده 1 ثانيه بعرض قيمه حراره وانما كل 4 ملي ثانيه يعرض حراره ولكن بعد كل 1 ثانيه يعمل لها تحديث
هذه فكره تحتاجها دائما خصوصا اذا عندك اكثر من مهمه تريد مايكرو يقوم بأنجازها
جرب كود طبعا كلما زدت قيمه kk قل الارتعاش في سفن سكمنت ولكن يزيد زمن تحديث قيمه حراره
عفوا اخي يوجد خطأ بالكود ارجو تصحيح
لاني كتبت 5 فقط مفروض تكتب 5000 لاني اتعامل مع ملي فولت
كود:
void caculated_temperature()
{
 if(kk==0)
  {
   temp=ADC_Read(4);
   temp=temp*5000/1023;
   zz=(1/ (log( ( temp*(R1+R2)-(5000*R2) )/((5000-temp)*R25))/B +3.354e-3) )-273.15; // equation fot NTC
   temp2=zz;
   }
 kk++;
 if(kk==250)kk=0;
 if(zz<=1)temp2=0;
 show_7seg(temp2,1);
}


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


اصبحت درجة الحرارة خاطئة

اخي و الارتعاش لم ينحل مثل التجربة بالكود show_7seg(temp2 200

طيب اخ انا ابحث عن و جازك الله خير فقد افدتنيس جداااا

و انا في قمة السعادة و التجربة اعطتي لي الكثير في عالم الميكرو

اخي عندي مشكل بسيط

لم استطع ادراج نقطة في السافن سيجمون

الذي استعمل فيه هو من نوع خاص و بهي نقطة من الاعلا




اخي انا استعمل هذا السيجمون


لاسف سفن سكمنت عندي تختلف
لكن اذا كان لديك مخططها ارفق الي
او أنصحك بالتالي
ابحث اي بن يقوم بتشغيله لان هذه نقطه اكيد لها طرفين الاكيد الاول مشترك مع سفن سكمنت وطرف ثاني ليشغل نقطه
وبعدها انت عندك نقطتين في كود
الاول مصفوفه خاصه بسفن سكمنت
كود:
const char segment1[]  ={63,6,91,79,102,109,125,7,127,111,57};
رقم 57 يعرض رقم c وهو كيف تم أستنتاج رقم لاحظ صوره خاصه كمن كاثود
http://www.genotronex.com/2013/01/7segment.html
ترتيب رقم كتاليg-f-e-d-c-b-a
لاظهار حرف C
انت اكتب شكله على سفن سكمت راح تلاحظ لكي اظهر رقم لابد تشغيل a-d-e-f فقط وباقي off
اي اكتب كود
0-1-1-1-0-0-1
وهذا رقم ثنائي =57 بالنظام عشري

اوضحلك مثال اخر رقم 2 مكتوب بالمصفوفه 91
اكتب شكل رقم 2 على سفن سكمنت ثم نكتب خانه تشتغل بــ 1 وخانه ماتشتغل بــ 0
0-1-0-1-1-0-1-1 وهو يكافئ رقم 91
ايضا اخي رتب سفن سكمنت الي عندك نفس هذا ترتيب واحصل على كود جديد بعد ذلك استبدل 57 برقم جديد

اما نقطه ثانيه بالكود
هي لاظهار حرف C
كود:
  //**** show C in 7 seg  ***//
      seg_en1=disenable;    seg_en2=disenable;
      seg_en3=disenable;     seg_en4=enable;
      segment=segment1[10];
      delay_ms(1);
      segment=0;// OFF 7 segment


التعديل الأخير تم بواسطة : حسن هادي محمود بتاريخ 28-09-2013 الساعة 06:32 AM

الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,673
نشاط [ حسن هادي محمود ]
قوة السمعة:
قديم 28-09-2013, 09:45 AM المشاركة 87   
افتراضي


قبل خوض في ربط البك مع حاسبه
1- حمل برنامج vspe مع شرح
من هذا رابط
http://www.qariya.com/vb/showthread.php?t=132712&page=2
************************************************** *******
2- حمل شرح الاتصال التسلسلي الغير متزامن
من هذا الرابط
http://www.qariya.com/vb/showthread.php?t=132712&page=3
************************************************** ****
3- بعد ذلك اقرأ هذا مشروع تطبيقي فيه اذا ارسلت كلمه ali يضئ ليد في portb.f0 واذا ارسلت حرف b يضيء ليد وينطفئ 10 مرات بزمن 250 ملي ثانيه
كود
كود:
char i[3],x;
void main()
{
Uart1_Init(9600);
trisb=0;
portb=0x00;
delay_ms(100);//لاعطاء وقت لاستقرار الدائره
while(1)
   {
   if (Uart1_Data_Ready())
          { UART1_Read_Text(i,"ok",10);

            if(i[0]=='a'&& i[1]=='l'&& i[2]=='i'){portb.f0=1;} // ali
            if(i[0]=='b') //b
                    { for(x=0;x<10;x++)
                            {
                             portb.f0=1;
                             delay_ms(250);
                              portb.f0=0;
                             delay_ms(250);
                            }
                    }
           }
   }
}
رسمه دائره
http://upload.qariya.info/images/qar...b54aaed36e.png
************************************************** ****
4- بعد ذلك لكي نربط البك مع الحاسبه لابد من تغير ربط سفن سكمنت لاني ربطتها على بورت b وفي هذا بورت يوجد RX , TX وهما يخصان نظام uart اي اتصال التسلسلي الغير متزامن
************************************************** ****
5- اما اذا ردت بقاء سفن سكمنت فيمكن ذلك ولكن يجب أستخدام ايسي جديد مسؤول عن تشغيل سفن سكمنت اي استخدم ايسي
http://img02.arabsh.com/uploads/imag...404e65f00c.png
في هذا ايسي راح استخدم 4 اسلاك بدلا من 7 اسلاك


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

الصورة الرمزية المخترع01
المخترع01
:: مهندس متميز ::
تاريخ التسجيل: Dec 2009
المشاركات: 397
نشاط [ المخترع01 ]
قوة السمعة:
قديم 28-09-2013, 12:15 PM المشاركة 88   
افتراضي


الدرس صعب بعض الشيء و انا جديد في عالم البرمجة و الكودات

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


طيب اخي هادي من العراق انا اخوك هادي ايضا من تونس

دروسكم ممتاز جدااا انا في المتابعة و شرحكم وافيي

تم الربط و اشتغل



هل يكمن دمج كود للتحكم في بورة او تعديل و انا ساتعلم منه

لاني كتبت كود و eroor

لم ينجح


التعديل الأخير تم بواسطة : المخترع01 بتاريخ 28-09-2013 الساعة 12:56 PM


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