قسم الميكروكنترولر والروبوت ودوائر الاتصال بالحاسب الاليقسم المتحكمات الـ microcontroller و المعالجات microprocessor و التحكم الرقمي بالكمبيوتر CNC والانظمة الآلية والروبوت Robots
ممكن طلب ؟؟
اريد شرح مبسط لاستخدام الpwm فى الميكرو سى
لو سمحتم ارجو الرد سريعا
هذا هو كود لذلك مع ملاحظات اما كل جزء منه
كود:
void InitMain() {
ADCON1=0x06;
PORTA = 255;
TRISA = 255; // configure PORTA pins as input
PORTC = 1; // set PORTC to 0
TRISC = 0; // designate PORTC pins as output
PWM1_Init(500); // Initialize PWM1 module at 5KHz
PWM2_Init(500); // Initialize PWM2 module at 5KHz
}
void main() {
InitMain();
PWM1_Start(); // start PWM1
PWM2_Start(); // start PWM2
PWM1_Set_Duty(16); // Set current duty for PWM1
PWM2_Set_Duty(16); // Set current duty for PWM2
while (1) { // endless loop
Delay_ms(5); // slow down change pace a little
}
}
بعد اذن الاخ احمد :
اخى حسب معلوماتى فان تقنية pwm تكمن فى التحكم فى الطاقة المنقولة فى فترة زمنية محددة, فعندما تكون الاشارة +5v يتم تغذية الجهاز وعندما تكون 0 يتم اطفاء الجهاز المراد التحكم فيه, والطاقة المنقولة للجهاز تعتمد على الduty cycle فعندما يكون 100%تكون كل الطاقة المنقولة الممكنة قد انتقلت للجهاز والعكس عند 0%,وهكذا
وتستخدم هذه التقنية للتحكم فى المحركات (dc)فمثلا اذا اردنا موتور يدور بثلاث ارباع السرعة القصوى نجعل ال duty cycle 75% وهكذا,,,,
وكذلك التحكم فى شدة اضاءة اللمبة وغير ذلك من التطبيغات,
ملحوظة: يسبب اطفاء الموتور فى زيادة الطنين المغنطيسى (magntic hum) وايضا يذيد من حرارة الموتور بصورة ملحوظة مما قد يودى الى تلفه لذلك يفضل عدم تشغيل المحرك باستخدام الpwm عندما يكون فى ظروف تجعله قريبا من درجة الحرارة العظمى .
نسيت ان اذكر شئ مهم وهو ان خاصية الpwm لا تتوفر فى كل انواع الpic فقط التى تحتوى على (capture compare pwm builtin circuits )
لكن اذا كنت تمتلك pic ليست فيها هذه الخاصية او كنت تريد استخدام اكثر من pwm (لان هناك غالبا مخرجين للpwm ) فما هو الحل؟؟
الجواب: الامر سهل كل ما عليك فعله هو استخدام ال software وهناك طريقتان:
1.طريقة التاخير الزمنى (delay loop ):
وهى سهلة ومعروفة يكمن من خلالها جعل الخرج عالى high لفترة زمنية محددة ثم منخفض لنفس الفترة الزمنية ,, لكن لهذه عيوب منها :
أ- عدم الدقة.
ب-لا يمكن عمل اى شى خلال فترة عمل الpwm ,,, فاذا كنت تريد للموتور ان يعمل بصورة مستمرة فعليك ان تكتب برنامج لايحتوى الا على امر pwm وهذا يجعل هذه الطريقة غير عملية الافى حالات محددة.
الطريقة الثانية: استخدام ال timer +interrupt وهى تشبه الطربقة الاولى الا ان العملية تتم فى الخلفية (background) يعنى بامكانك فعل اى شى خلال عمل pwm .
والفرق بين استخدام ال timer وال (delay instruction) المذكور اعلاه مهم جدا فى كثير من التطبيقات.
الساعة معتمدة بتوقيت جرينتش +3 الساعة الآن: 09:15 PM
موقع القرية الالكترونية غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي موقع القرية الالكترونية ولايتحمل الموقع أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)