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

   

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



الله يبارك فيك اخى الكريم انا مش عارف اشكرك ازاى .. جزاك الله كل خير على مجهوداتك معى

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

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

او أنك حاول تقرأ الكود وجزء غير واضح ان شاء الله شرحله لك

اعلانات

البندقدارى
:: مهندس متواجد ::
تاريخ التسجيل: May 2009
المشاركات: 60
نشاط [ البندقدارى ]
قوة السمعة:
قديم 23-04-2015, 11:57 PM المشاركة 58   
افتراضي


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

او أنك حاول تقرأ الكود وجزء غير واضح ان شاء الله شرحله لك
انا جربت الكود الجديد وشغال تمام بس فى حالة المانيوال بيعطى النتائج التالية (8% - 20% - 32.9% - 45% - 57.9% - 70% - 82.9% - 95% ) ولا يعطى 100 % أو stop فى حالة 0%

فيما عدا ذلك شغال تمام

كنت عايز بس تشرحلى كيف تقوم بعرض كلمة auto operation ,manu operation
وعندى استفسارين
1. أيضا هذا الامر
كود:
read_temp=0;
delay_ms(50);
read_temp++;
if(read_temp>=10)
بدلا من تكرار الاختبار 10 مرات ألا يمكن استبداله مباشرة ب
كود:
delay_ms(500);
ولكن فى نهاية حلقة while

2. هذا الامر
كود:
Lcd_out( 2, 1,stop);
هل سيعرض stop على الشاشة ام لابد ان تكتب بين علامتى تنصيص (" ")


التعديل الأخير تم بواسطة : البندقدارى بتاريخ 24-04-2015 الساعة 12:02 AM
اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )

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


انا جربت الكود الجديد وشغال تمام بس فى حالة المانيوال بيعطى النتائج التالية (8% - 20% - 32.9% - 45% - 57.9% - 70% - 82.9% - 95% ) ولا يعطى 100 % أو stop فى حالة 0%

فيما عدا ذلك شغال تمام

كنت عايز بس تشرحلى كيف تقوم بعرض كلمة auto operation ,manu operation
وعندى استفسارين
1. أيضا هذا الامر
كود:
read_temp=0;
delay_ms(50);
read_temp++;
if(read_temp>=10)
بدلا من تكرار الاختبار 10 مرات ألا يمكن استبداله مباشرة ب
كود:
delay_ms(500);
ولكن فى نهاية حلقة while

2. هذا الامر
كود:
Lcd_out( 2, 1,stop);
هل سيعرض stop على الشاشة ام لابد ان تكتب بين علامتى تنصيص (" ")
السلام عليكم
هل اخي جربت ذلك عمليا ام على بروتيس لان على بروتيس مايظهر هكذا نتائج

بالنسبه
كود:
read_temp=0;
delay_ms(50);
read_temp++;
if(read_temp>=10)
هو غايه منها انه كل نصف ثانيه يقرأ حراره من حساس وبالطبع انا لاأستطيع كتابه الامر ديلي 500ms لانه سيجبر مايكرو على انتظار نصف ثانيه بينما في الكود اعلاه سيجبر مايكرو على انتظار لمده 50ms وهذا لن يعيق عمل مايكرو

===============================

اما الكود
كود:
Lcd_out( 2, 1,stop);
فأنا أساسا خزنت رساله في مصفوفه اسمها stop

لاحظ الكود
كود:
char *stop="      STOP     ";


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


السلام عليكم
تم تحديث الكود حيث في هذا التحديث تم معالجه بقاء duty بدون تغير عند تغير من حاله اتو الى منول بحيث تستطيع التحكم بنسبه بتدأءا من اخر قيمه ل duty

كما تم زياده نسبه دقه duty بشكل افضل في حاله منول

http://up.top4top.net/downloadf-top4...90521-rar.html


Logic
:: عضو فضي ::
تاريخ التسجيل: Mar 2014
المشاركات: 682
نشاط [ Logic ]
قوة السمعة:
قديم 24-04-2015, 01:56 PM المشاركة 61   
افتراضي PWM


الله يبارك فيك اخى الكريم .. واشكرك على ملاحظتك هذه الدائرة انا كنت اخذتها منك فى مشاركة سابقة لكن فى مشكلة ان الترانزيستورين يعكسوا الاشارة بمعنى ان الموتور كلما تزيد ال duty cycle بتقل السرعة فهل المفروض يبقو الاتنين نوع واحد pnp أو npn
السلام عليكم
أخي توصيلة NPN+PNP في الدائرة مجربة عمليا عدة مرات وهي غير عاكسة .
لاحظ الإشارة pwm_out (الإشارة الصفراء) هي ذاتها الإشارة بعد الترانزيستورين (الإشارة الزرقاء).
يعني الزمن t_on الخارج من البيك متطابق من حيث الاشارة (signe) مع مثيله بعد خرج دائرة الترانزيستورين
نفس الشي بالنسبة للزمن t_off .
الاختلاف فقط في التكبير.
مثال:

بروتوس+ملف هيكس :
http://up.top4top.net/downloadf-top4...ea202-rar.html


التعديل الأخير تم بواسطة : Logic بتاريخ 24-04-2015 الساعة 06:00 PM السبب: تعديل روابط

البندقدارى
:: مهندس متواجد ::
تاريخ التسجيل: May 2009
المشاركات: 60
نشاط [ البندقدارى ]
قوة السمعة:
قديم 24-04-2015, 06:09 PM المشاركة 62   
افتراضي


السلام عليكم
أخي توصيلة NPN+PNP في الدائرة مجربة عمليا عدة مرات وهي غير عاكسة .
لاحظ الإشارة pwm_out (الإشارة الصفراء) هي ذاتها الإشارة بعد الترانزيستورين (الإشارة الزرقاء).
يعني الزمن t_on الخارج من البيك متطابق من حيث الاشارة (signe) مع مثيله بعد خرج دائرة الترانزيستورين
نفس الشي بالنسبة للزمن t_off .
الاختلاف فقط في التكبير.
مثال:

بروتوس+ملف هيكس :
http://up.top4top.net/downloadf-top4...ea202-rar.html
طيب بم تفسر ان الموتور بيدور عكس المطلوب يعنى المفروض لما درجة الحرارة تكون قليلة يدور بسرعة خفيفة ولما تزيد يزيد سرعته لكن اللى بيحصل معى العكس


البندقدارى
:: مهندس متواجد ::
تاريخ التسجيل: May 2009
المشاركات: 60
نشاط [ البندقدارى ]
قوة السمعة:
قديم 24-04-2015, 06:19 PM المشاركة 63   
افتراضي


السلام عليكم
هل اخي جربت ذلك عمليا ام على بروتيس لان على بروتيس مايظهر هكذا نتائج
المحاكاة على بروتيس بتكون بطيئة جدا وثقيلة فبجرب عمليا على طول
بالنسبه
كود:
read_temp=0;
delay_ms(50);
read_temp++;
if(read_temp>=10)
هو غايه منها انه كل نصف ثانيه يقرأ حراره من حساس وبالطبع انا لاأستطيع كتابه الامر ديلي 500ms لانه سيجبر مايكرو على انتظار نصف ثانيه بينما في الكود اعلاه سيجبر مايكرو على انتظار لمده 50ms وهذا لن يعيق عمل مايكرو

===============================
ما هو انا باقول ممكن نكتب الامر ديلي 500ms فى نهاية حلقة while بحيث ان الميكروكونترولر ينفذ البرنامج وفى النهاية ينتظر نصف ثانية ويعيد قراءة الحرارة

اما الكود
كود:
Lcd_out( 2, 1,stop);
فأنا أساسا خزنت رساله في مصفوفه اسمها stop

لاحظ الكود
كود:
char *stop="      STOP     ";
أخى الغالى أليس من الافضل تقليل المتغيرات الى اقل درجة لتوفير مساحة فى الذاكرة وخصوصا ان البرنامج اصبح طويل جدا

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


البندقدارى
:: مهندس متواجد ::
تاريخ التسجيل: May 2009
المشاركات: 60
نشاط [ البندقدارى ]
قوة السمعة:
قديم 24-04-2015, 11:12 PM المشاركة 64   
افتراضي


ياريت يا باشمهندس ترجع تانى للكود V3 لان الكود الاخير لا يعطى نتائج مظبوطة وتضيف عليه فقط اظهار AUTO OR MANUAL MODE

الكود الاخير بيزود الDUTY بمقدار واحد فقط وهذا طبعا ليس هو المراد وايضا لا يظهر كلمة STOP



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