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

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

الصورة الرمزية 007
007
:: مهندس متواجد ::
تاريخ التسجيل: Apr 2005
الدولة: مدينة بورسعيد - مصر
المشاركات: 176
نشاط [ 007 ]
قوة السمعة:0
قديم 15-01-2016, 12:40 PM المشاركة 1   
ha مشورع تحكم في محرك تيار متردد باستخدام البيك16F877 Twitter FaceBook Google+




زملائي الاعزاء
مطلوب توليد تردد 50Hz من البيك 16F887A وذلك للتحكم بسرعة المحرك single phase motor حيث ان سرعته 25000 rpm
ارجوا المساعدة حيث استخدمت مكتبة pwm ولكن التردد الناتج هو 5000 هرتز و المطلوب هو تردد ما بين 1 الى 50 هرتز

اعلانات

الصورة الرمزية 007
007
:: مهندس متواجد ::
تاريخ التسجيل: Apr 2005
الدولة: مدينة بورسعيد - مصر
المشاركات: 176
نشاط [ 007 ]
قوة السمعة:0
قديم 15-01-2016, 03:20 PM المشاركة 2   
ha



اضافة .... تردد crystal المستخدمة 20M ...... نوع البيك 16f877a

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

الصورة الرمزية سعيد قادر
سعيد قادر
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2009
الدولة: العراق/ كوردستان
المشاركات: 2,916
نشاط [ سعيد قادر ]
قوة السمعة:152
قديم 15-01-2016, 03:54 PM المشاركة 3   
افتراضي


ده كود لتردد 50 هيرتز

كود:
void main()
{ 
    trisb=0;
    portb=0;
   while(1)
          {
           portb.B0=1;
           delay_ms(10);
           portb.b0=0;
           delay_ms(10);

          }

}


الصورة الرمزية 007
007
:: مهندس متواجد ::
تاريخ التسجيل: Apr 2005
الدولة: مدينة بورسعيد - مصر
المشاركات: 176
نشاط [ 007 ]
قوة السمعة:0
قديم 16-01-2016, 10:48 AM المشاركة 4   
ha


ده كود لتردد 50 هيرتز

كود:
void main()
{ 
    trisb=0;
    portb=0;
   while(1)
          {
           portb.B0=1;
           delay_ms(10);
           portb.b0=0;
           delay_ms(10);

          }

}

شكرا على الاهتمام
ولكن اريد استخدام مكتبة PWM بحيث
1- duty cycle = 50%
2- يكن تغيير التردد من 1 هرتز الى 50 هرتز


الصورة الرمزية عبدالله حجازى
عبدالله حجازى
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2011
الدولة: مصر .. محافظة دمياط
المشاركات: 1,688
نشاط [ عبدالله حجازى ]
قوة السمعة:111
قديم 17-01-2016, 01:44 AM المشاركة 5   
افتراضي



شكرا على الاهتمام
ولكن اريد استخدام مكتبة PWM بحيث
1- duty cycle = 50%
2- يكن تغيير التردد من 1 هرتز الى 50 هرتز

السلام عليكم ورحمه الله ..


اليك هذا الكود ..

فكرة الكود هو التحكم فى عرض الموجه من خلال 2 مفتاح واحد لذيادة التردد والاخر لتقليقل التردد ..


والتردد محدد من 1 الى 50000 ك هرتز ..



كود:
 
        int  x = 0;

        void main() {
        
        
      trisb=255;   portb=0;
      trisc=0;  portc=0;

      PWM1_Init(50000);



         while (1) 
         
    {
         


        PWM1_Set_Duty( x );


       if(portb.f0==1){  x++; };
       
       if(portb.f1==1){  x--; };

       if(x > 50001){  x=50000; };
        if(x < 0){  x=1; };
       
      PWM1_Start();
       
     }
     
    }



فى هذا الكود تم ربط قيمة المتغير x ب قيمة
كود:
  PWM1_Set_Duty( x );

والامر المتحكم فى التردد يتغير حسب قيمه x ....




تحياتى لك متابع معك


التعديل الأخير تم بواسطة : عبدالله حجازى بتاريخ 17-01-2016 الساعة 01:48 AM

الصورة الرمزية 007
007
:: مهندس متواجد ::
تاريخ التسجيل: Apr 2005
الدولة: مدينة بورسعيد - مصر
المشاركات: 176
نشاط [ 007 ]
قوة السمعة:0
قديم 17-01-2016, 03:39 PM المشاركة 6   
ha


السلام عليكم ورحمه الله ..


اليك هذا الكود ..

فكرة الكود هو التحكم فى عرض الموجه من خلال 2 مفتاح واحد لذيادة التردد والاخر لتقليقل التردد ..


والتردد محدد من 1 الى 50000 ك هرتز ..



كود:
 
        int  x = 0;

        void main() {
        
        
      trisb=255;   portb=0;
      trisc=0;  portc=0;

      PWM1_Init(50000);



         while (1) 
         
    {
         


        PWM1_Set_Duty( x );


       if(portb.f0==1){  x++; };
       
       if(portb.f1==1){  x--; };

       if(x > 50001){  x=50000; };
        if(x < 0){  x=1; };
       
      PWM1_Start();
       
     }
     
    }



فى هذا الكود تم ربط قيمة المتغير x ب قيمة
كود:
  PWM1_Set_Duty( x );

والامر المتحكم فى التردد يتغير حسب قيمه x ....




تحياتى لك متابع معك

شكرا اخي عبدالله على الاهتمام
ولكن كود
PWM1_Init(50000);
هو المتحكم في الترد والكود :-
PWM1_Set_Duty( x );
هو المتحكم بسعة النبضة duty cycle
وعليه فان تغيير قيمة المتغير x تغيير قيمة duty cycle وليس التردد


الصورة الرمزية سعيد قادر
سعيد قادر
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2009
الدولة: العراق/ كوردستان
المشاركات: 2,916
نشاط [ سعيد قادر ]
قوة السمعة:152
قديم 17-01-2016, 06:00 PM المشاركة 7   
افتراضي


جرب هذا الكود

كود:
#define    is   ==
#define    sw1  portb.b0
#define    sw2  portb.b1
#define    preseed   0
 char x = 1;
void main()
{  
   trisb=3;
   portb=0;
   while(1)
     {
      if(sw1 is preseed ){delay_ms(10);while(sw1 is preseed);delay_ms(10);x++; if(x is 10)x=10;}
      if(sw2 is preseed ){delay_ms(10);while(sw2 is preseed);delay_ms(10);x--; if(x is 1)x=1;  }

      if(x is 1) {portb.b5=1; delay_ms(10); portb.b5=0;delay_ms(10);}   // 50 hz
      if(x is 2) {portb.b5=1; delay_ms(11); portb.b5=0;delay_ms(11);}   // 45 hz
      if(x is 3) {portb.b5=1; delay_ms(12); portb.b5=0;delay_ms(12);}   // 40 hz
      if(x is 4) {portb.b5=1; delay_ms(14); portb.b5=0;delay_ms(14);}   // 35 hz
      if(x is 5) {portb.b5=1; delay_ms(16); portb.b5=0;delay_ms(16);}   // 30 hz
      if(x is 6) {portb.b5=1; delay_ms(20); portb.b5=0;delay_ms(20);}   // 25 hz
      if(x is 7) {portb.b5=1; delay_ms(25); portb.b5=0;delay_ms(25);}   // 20 hz
      if(x is 8) {portb.b5=1; delay_ms(33); portb.b5=0;delay_ms(33);}   // 15 hz
      if(x is 9) {portb.b5=1; delay_ms(50); portb.b5=0;delay_ms(50);} // 10 hz
      if(x is 10) {portb.b5=1; delay_ms(100); portb.b5=0;delay_ms(100);}  //5   hz
      }

   }



الصورة الرمزية سعيد قادر
سعيد قادر
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2009
الدولة: العراق/ كوردستان
المشاركات: 2,916
نشاط [ سعيد قادر ]
قوة السمعة:152
قديم 17-01-2016, 06:11 PM المشاركة 8   
افتراضي



إضافة رد

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

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

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


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

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