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

   

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



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

الكود الاخير بيزود الDUTY بمقدار واحد فقط وهذا طبعا ليس هو المراد وايضا لا يظهر كلمة STOP
تم التعديل على الكود
http://up.top4top.net/downloadf-top4...d5af1-rar.html

الجزء غير واضح ارجو تحديده بالضبط لكي استطيع شرحه لكم

اعلانات

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


تم التعديل على الكود
http://up.top4top.net/downloadf-top4...d5af1-rar.html

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

كنت عايز تشرحلى الطريقة التى تعرض بها كلمة auto operation , manual operation وأيضا الجزء الخاص بتشغيل PWM مع درجات الحرارة المختلفة انت غيرته عن الاول فارجو شرحه ايضا

ايضا لو عندك فكرة عن سبب ان الترانزيسورين المستخدمين بيعكسوا الاشارة لماذا وما حلهما

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

Logic
:: عضو فضي ::
تاريخ التسجيل: Mar 2014
المشاركات: 682
نشاط [ Logic ]
قوة السمعة:
قديم 28-04-2015, 11:17 PM المشاركة 67   
افتراضي الترانزيستوران لا يعكسان الإشارة


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

وبمناسبة الحديث على هذه التوصيلة أنصحك بإضافة مقاومة حماية بين قاعدة PNP ومجمع NPN وهي الملونة بالأحمر في الصورة التالية:


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


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

وبمناسبة الحديث على هذه التوصيلة أنصحك بإضافة مقاومة حماية بين قاعدة PNP ومجمع NPN وهي الملونة بالأحمر في الصورة التالية:
اخى الكريم انا لا اشكك فى كلامك وفى نفس الوقت انا أعرض ما ألاحظه فى التنفيذ العملى وهذه الدائرة انت الذى سبق وارشدتنى إليها
http://cdn.top4top.net/i_fc4f0193571.png
فى هذا الموضوع http://www.qariya.info/vb/showthread...=162121&page=2

لكن فى اختلاف فى قيم بعض المقاومات وتوصيلها


Logic
:: عضو فضي ::
تاريخ التسجيل: Mar 2014
المشاركات: 682
نشاط [ Logic ]
قوة السمعة:
قديم 29-04-2015, 12:50 AM المشاركة 69   
افتراضي


اخى الكريم انا لا اشكك فى كلامك وفى نفس الوقت انا أعرض ما ألاحظه فى التنفيذ العملى وهذه الدائرة انت الذى سبق وارشدتنى إليها
http://cdn.top4top.net/i_fc4f0193571.png
فى هذا الموضوع http://www.qariya.info/vb/showthread...=162121&page=2

لكن فى اختلاف فى قيم بعض المقاومات وتوصيلها
أخي بالنسبة لقيمة R6 لم أركز عيها كثيرا ، وأعتقد أن 22 أوم كافية .
لكن أهم فرق هو إضافة المقاومة 1 كيلو الملونة بالاحمر في الصورة السابقة:
http://cdn.top4top.net/i_67a56c9a141.png
أظن أنك في تجربتك على أرض الواقع لمشروعك لم تلحظ على الترنزيستورين اي تأثير سيئ هذا ربما لطبيعة الحمل عل BC558 وطبيعة الاشارة على قاعدة BC558.
لكن لضمان حماية في مختلف الظروف من الضروري إضافة تلك المقاومة وفي النهاية هو تعديل بسيط عمليا.

الآن بالعودة الى مشكل الاشارة فلو كان المطلوب عكس عمل دائرة الترنزيستورين يمكنك تجربة هذه الإضافة:


لكن هناك ملاحظة : يجب إضافة تعليمة في الكود تجعل الخرج PWM =1 منطقي حتى يكون المحرك متوقفا في حالة الراحة


التعديل الأخير تم بواسطة : Logic بتاريخ 29-04-2015 الساعة 12:55 AM

البندقدارى
:: مهندس متواجد ::
تاريخ التسجيل: May 2009
المشاركات: 60
نشاط [ البندقدارى ]
قوة السمعة:
قديم 01-05-2015, 05:43 AM المشاركة 70   
افتراضي


يا بشمهندس حسن فين الشرح


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


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


الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,673
نشاط [ حسن هادي محمود ]
قوة السمعة:
قديم 02-05-2015, 01:08 PM المشاركة 72   
افتراضي


السلام عليكم
لاظهار كلمه auto , manual عن طريق سليكتر المربوط الى RD1

كود:
sbit sw_select at RD1_bit;
sbit sw_select_Direction at TRISD1_bit;
فرضنا متغير اسمه auto_manu_select لتعبير عن اتو و منول وجعلنا auto_manu_select=0 ثم جعلنا البيك يختبر حاله سليكتر

كود:
   // display auto maunal operation
     if(auto_manu_select==0 && sw_select==1)
           {
            auto_manu_select=1;
            display_message(duty,1);// auto operation
           }
     else if(auto_manu_select==0 && sw_select==0)
           {
            auto_manu_select=2;
            i=0;// claer counter
            display_message(duty,2);// maun operation

           }
حيث تلاحظ بأنه بالبدايه 0=auto_manu_select لذا اذا كان سليكتر على وضع 5 فولت لذلك سيتحقق الشرط

كود:
 if(auto_manu_select==0 && sw_select==1)
ونجعل قيمه auto_manu_select=1 لكي يتم تنفيذ الشرط مره واحده فقط دون عمليه تكرار
بعدها نستدعي داله
كود:
display_message(duty,1);// auto operation
وكذلك الحال بالنسبه لمنول

هنا نحتاج الى ترسيت متغير auto_manu_select ولكن يمتى نرست ذلك
الجواب لما يتغير حاله سليكتر من 5 فولت الى 0 فولت او بالعكس

لذا وضعت هذا الكود
كود:
if(auto_manu_select==1 && sw_select==0)auto_manu_select=0;
     if(auto_manu_select==2 && sw_select==1)auto_manu_select=0;
لو تلاحظ الكود ستجد auto_manu_select=1 في حاله اتو وقارنته مع سليكتر حيث =0 وبتالي راح يعرف البيك بأنه نظام كان على وضع اتو من خلال auto_manu_select=1 وتم تغيره الى وضع منول عن طريق sw_select=0 لذا هنا علينا ترسيت متغير auto_manu_select اي جعله =0 لكي يتم عرض الرساله


وهكذا الحال بالنسبه لتغير نظام من منول الى اتو
===============================
داله عرض الرسائل
كود:
void display_message( char kk, char select_message )
هذه داله تاخذ متغير الاول يعبر عن duty والاخر يبين اي رساله تريد أظهار

فأذا كانت select_message!=0 هنا ممكن =1 للعرض رساله اتو و2 لعرض رساله منول راجع كود سليكتر للوضعين منول واتو
كود:
if(select_message!=0)
   {
    if(select_message==1)
      {
       for(x=0;x<16;x++)txt[x]=message_auto[x];
      }
    else if(select_message==2)
      {
       for(x=0;x<16;x++)txt[x]=message_maun[x];
      }
    txt[16]=0;
    lcd_out(2,1,txt);
    delay_ms(3000);
    temp_flag2=0;
    temp_flag1=0;
    select_message=0;
   }
عندها سيبدأ بنقل رساله مطلوبه من روم الى رام اي خزنها في txt بعدها نحتاج الى تصفير temp_flag2 و temp_flag1 وهذين مسؤلين عن وضع اتو اي أختيار duty وهما يسمحان للبيك بتنفيذ الشرط مره واحده دون تكرار

تلاحظ انه جعلنا select_message=0 بعد فتره 3 ثواني لماذا لكي يتم تنفيذ الكود التالي يعني سواء كان select_message يساوي 0 او لا نحتاج الى تنفيذ هذا الكود بشرط duty !=0

كود:
else
      {
       value_duty=kk;
       duty1 = (value_duty *100)/255;
       PWM1_Set_Duty(kk);
       if(select_message==0)
              {
               lcd_out(2,12,"     ");
               for(x=0;x<11;x++)txt[x]=message_duty[x];
               txt[11]=0;
               FloatToStr(duty1,disp);
               disp[4]=0;// reset pointer
               strcat(txt,disp );
               txt[15]=0;
               lcd_out(2,1,txt);
               lcd_chr_cp('%');
              }
      }
وهذا نفس الكود الذي انت تعرفه في الاكواد السابقه يعني ننقل رساله كلمه duty وبعدها نحول قيمه KK الى text ونلحقها ب txt وبعدها ننظهرها على شاشه



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