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

   

mustafaibraheem
:: مهندس ::
تاريخ التسجيل: Jul 2014
الدولة: Baghdad
المشاركات: 8
نشاط [ mustafaibraheem ]
قوة السمعة:
قديم 28-09-2015, 01:13 AM المشاركة 1   
افتراضي كود لدائرة PWM



السلام عليكم .
الدائرة التاليه صممت من قبل الاستاذ حيدر




فى هذه المشاركه .
http://www.qariya.info/vb/showthread...=158490&page=4
وبحثت عن الكود لهذه الدائره ولم اجده .
فيا حبذا لو الاستاذ حيدر او احد الاخوه يستطيع تزويدي بالكود اكون شاكرا له
وجزيتم خيرا

اعلانات

الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 9,848
نشاط [ حيدر علاج حسن ]
قوة السمعة:
قديم 28-09-2015, 08:26 PM المشاركة 2   
افتراضي


تفضل اخي هذا كود جديد حسب المخطط
جربه واعطنا النتيجة
كود:
int x=55;
void main()
 {cmcon=07;
 trisa=15;trisb.f3=0;portb.f3=0;
  pwm1_init(5000);
  while(1)
         {if(porta==1){while(porta==1){}
                       pwm1_set_duty(x);
                       pwm1_start();
                      }
          else if(porta==2){while(porta==2){}
                      pwm1_stop();
                      }
          else if(porta==4){while(porta==4){x+=10;
                                            if(x>255)x=255;
                                            pwm1_set_duty(x);
                                            delay_ms(1000);
                                           }
                           }
          else if(porta==8){while(porta==8){x-=10;
                                            if(x<55)x=55;
                                            pwm1_set_duty(x);
                                            delay_ms(1000);
                                           }


                           }
         }

}

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

mustafaibraheem
:: مهندس ::
تاريخ التسجيل: Jul 2014
الدولة: Baghdad
المشاركات: 8
نشاط [ mustafaibraheem ]
قوة السمعة:
قديم 29-09-2015, 11:14 PM المشاركة 3   
افتراضي


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



الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 9,848
نشاط [ حيدر علاج حسن ]
قوة السمعة:
قديم 30-09-2015, 03:40 AM المشاركة 4   
افتراضي


نعم صحيح يوجد خطأ و تم تصحيحه و التجربة على البروتوس ...

كود:
int x=55;
void main()
 {cmcon=07;
 trisa=15;trisb.f3=0;portb.f3=0;
  pwm1_init(5000);
  while(1)
         {if(porta.f0==0){while(porta.f0==0){}
                       pwm1_set_duty(x);
                       pwm1_start();
                      }
          else if(porta.f1==0){while(porta.f1==0){}
                      pwm1_stop();
                      }
          else if(porta.f2==0){while(porta.f2==0){x+=10;
                                            if(x>255)x=255;
                                            pwm1_set_duty(x);
                                            delay_ms(500);
                                           }
                           }
          else if(porta.f3==0){while(porta.f3==0){x-=10;
                                            if(x<55)x=55;
                                            pwm1_set_duty(x);
                                            delay_ms(500);
                                           }


                           }
         }

}
خطوات التشغيل :
1- الضغط على مفتاح البدء
2- الضغط على مفتاح الزيادة بشكل متقطع او مستمر لزيادة السرعة
3- الضغط على مفتاح النقصان بشكل متقطع او مستمر لتقليل السرعة
4- الضفط على مفتاح التوقف لايقاف المحرك


mustafaibraheem
:: مهندس ::
تاريخ التسجيل: Jul 2014
الدولة: Baghdad
المشاركات: 8
نشاط [ mustafaibraheem ]
قوة السمعة:
قديم 02-10-2015, 01:57 AM المشاركة 5   
افتراضي


نعم صحيح يوجد خطأ و تم تصحيحه و التجربة على البروتوس ...

كود:
int x=55;
void main()
 {cmcon=07;
 trisa=15;trisb.f3=0;portb.f3=0;
  pwm1_init(5000);
  while(1)
         {if(porta.f0==0){while(porta.f0==0){}
                       pwm1_set_duty(x);
                       pwm1_start();
                      }
          else if(porta.f1==0){while(porta.f1==0){}
                      pwm1_stop();
                      }
          else if(porta.f2==0){while(porta.f2==0){x+=10;
                                            if(x>255)x=255;
                                            pwm1_set_duty(x);
                                            delay_ms(500);
                                           }
                           }
          else if(porta.f3==0){while(porta.f3==0){x-=10;
                                            if(x<55)x=55;
                                            pwm1_set_duty(x);
                                            delay_ms(500);
                                           }


                           }
         }

}
خطوات التشغيل :
1- الضغط على مفتاح البدء
2- الضغط على مفتاح الزيادة بشكل متقطع او مستمر لزيادة السرعة
3- الضغط على مفتاح النقصان بشكل متقطع او مستمر لتقليل السرعة
4- الضفط على مفتاح التوقف لايقاف المحرك

رائع سلمت يداك استاذ حيدر وجزاك الله الف خير ...



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