عيون العرب - ملتقى العالم العربي

العودة   عيون العرب - ملتقى العالم العربي > عيــون الأقسام العلمية > تحميل كتب مجانية, مراجع للتحميل

تحميل كتب مجانية, مراجع للتحميل كتب مجانية, كتب عربية للتحميل, كتب ألكترونية, كتب اجنبية, كتب تعليمية, مراجع عربية,كتب للتحميل, كتب للقراءة.

إضافة رد
 
LinkBack أدوات الموضوع انواع عرض الموضوع
  #1  
قديم 09-23-2011, 05:46 AM
 
عديل عرض النبضات pwm باستخدام موديول المقارنة ccp بالميكروكونترولر pic

تدريب : تعديل عرض النبضات PWM باستخدام موديول المقارنة CCP بالميكروكونترولر PIC
تمهيد :
تعديل عرض النبضات PWM هى تقنية للتحكم فى كمية القدرة التى يتم إمدادها للحمل باستخدام أشارة رقمية للتوصيل وللفصل on-off . الجزء (الكسر) من الدورة الذى تكون فيه الإشارة فى حالة توصيل يعرف بدورة الخدمة duty cycle .
قيمة التيار المستمر المتوسطة للإشارة يمكن أن تتغير بتغيير دورة الخدمة . يمكن لدورة الخدمة أن تأخذ أى قيمة بين الصفر (الإشارة دائما فى حالة فصل off) والواحد (الإشارة دائما موصلة on) .نفترض أن قيمة الإشارة فى حالة التوصيل on تكون +5V بينما تكون قيمتها فى حالة الفصل 0V عندئذ بتغيير دورة الخدمة للإشارة يمكن محاكاة أى جهد بين 0-5V . هذه الطريقة تستخدم فى التحكم فى سرعة محركات التيار المستمر وفى شدة إضاءة المصابيح .
فى هذا التدريب سوف نقوك بتوليد إشارة بتعديل عرض النبضات PWM باستخدام الميكروكونترولر PIC16F628A للتحكم فى شدة إضاة مصباح (ليد) . الميكروكونترولر PIC16F628A يمتلك ضمن بناءه الداخلى على جهاز hardware يسمى موديول Capture/Compare/PWM (CCP) يستخدم فى توليد PWM .




مبدأ (نظرية) العمل :

قى نظام تعديل عرض النبضات PWM يمكن للطرف RB3/CCP1 أن يخرج شكل موجى دورى رقمى بسعة عشرة خانات 10-bit حيث يكون كل من الزمن الدورى period ودورة الخدمة duty cycle قابلين للبرمجة . للعمل فى نظام PWM يجب إعداد الطرف CCP1 كمخرج .دورة الخدمة للشكل الموجى المتولد هى قيمة ذات 10 خانات 10-bit value .
الدائرة الكهربية :
تمهيد :
تعديل عرض النبضات PWM هى تقنية للتحكم فى كمية القدرة التى يتم إمدادها للحمل باستخدام أشارة رقمية للتوصيل وللفصل on-off . الجزء (الكسر) من الدورة الذى تكون فيه الإشارة فى حالة توصيل يعرف بدورة الخدمة duty cycle .
قيمة التيار المستمر المتوسطة للإشارة يمكن أن تتغير بتغيير دورة الخدمة . يمكن لدورة الخدمة أن تأخذ أى قيمة بين الصفر (الإشارة دائما فى حالة فصل off) والواحد (الإشارة دائما موصلة on) .نفترض أن قيمة الإشارة فى حالة التوصيل on تكون +5V بينما تكون قيمتها فى حالة الفصل 0V عندئذ بتغيير دورة الخدمة للإشارة يمكن محاكاة أى جهد بين 0-5V . هذه الطريقة تستخدم فى التحكم فى سرعة محركات التيار المستمر وفى شدة إضاءة المصابيح .
فى هذا التدريب سوف نقوك بتوليد إشارة بتعديل عرض النبضات PWM باستخدام الميكروكونترولر PIC16F628A للتحكم فى شدة إضاة مصباح (ليد) . الميكروكونترولر PIC16F628A يمتلك ضمن بناءه الداخلى على جهاز hardware يسمى موديول Capture/Compare/PWM (CCP) يستخدم فى توليد PWM .



مبدأ (نظرية) العمل :
قى نظام تعديل عرض النبضات PWM يمكن للطرف RB3/CCP1 أن يخرج شكل موجى دورى رقمى بسعة عشرة خانات 10-bit حيث يكون كل من الزمن الدورى period ودورة الخدمة duty cycle قابلين للبرمجة . للعمل فى نظام PWM يجب إعداد الطرف CCP1 كمخرج .دورة الخدمة للشكل الموجى المتولد هى قيمة ذات 10 خانات 10-bit value .
الدائرة الكهربية :
__________________
angel4angel4angel4angel4angel4
رد مع اقتباس
  #2  
قديم 09-23-2011, 05:47 AM
 
الدائرة الكهربية :
يتم توصيل 2 مفتاح ضاغط إلى الأطراف RB0 , RB1 كمداخل . ويتم تشغيل ليد بواسطة الخرج المعدل PWM من الطرف RB3/CCP1 خلال مقاومة لتحديد التيار 330R.يتم تزايد أو تناقص دورة الخدمة لإشارة الخرج PWM باستخدام المفاتيح الموجودة كمداخل وهذا يؤدى إلى التغيير فى شدة إضاءة الليد .



البرنامج :
__________________
angel4angel4angel4angel4angel4
رد مع اقتباس
  #3  
قديم 09-23-2011, 05:49 AM
 
كود:
/* 
 Pulse Width Modulation 
  Description: CCP module generating a PWM signal 
 MCU: PIC16F628A 
 Oscillator: XT, 4.0 MHz, MCLR Enabled 
*/ 
 sbit UP at RB0_bit; 
 sbit DOWN at RB1_bit; 
 unsigned short new_DC, current_DC; 
 void debounce(){ 
  Delay_ms(300); 
 } 
 void main() { 
 CMCON = 0x07; // Disable comparators 
 PORTB = 0x00; 
 TRISB = 0b00000011; // RB0, RB1 input, RB3 (PWM1) output 
 PWM1_Init(5000);    // PWM module initialization (5KHz) 
 new_DC = 0;         // Initial value of variable Duty Cycle 
 current_DC = 0; 
 PWM1_Start();       // Start PWM1 module with Zero DC 
 PWM1_Set_Duty(current_DC); 
 do { 
  if (!UP){      // If the button connected to RB0 is pressed 
   debounce(); 
   if (new_DC < 250)      // Don't go above 250 
   new_DC = new_DC + 25 ; // increment Duty Cycle by 25 
  } 
  if (!DOWN) {   // If the button connected to RB1 is pressed 
   debounce(); 
   if (new_DC !=0)        // Don't go below 0 
   new_DC= new_DC - 25 ; // Decrement Duty Cycle by 25 
} 
  if (current_DC != new_DC) { 
   current_DC = new_DC ; 
   PWM1_Set_Duty(current_DC); // Change the current DC to new value 
  } 
 } while(1); 
}  // END main()
__________________
angel4angel4angel4angel4angel4
رد مع اقتباس
  #4  
قديم 09-23-2011, 05:51 AM
 
البرنامج :
يوفر المترجم MikroC Pro for PIC بمكتبة بأربعة دوال لروتينات للتحكم فى PWM باستخدام الموديول CCP . هذه الروتينات هى :
PWM1_Init(const long frequency)
و PWM1_Set_Duty(unsigned short duty_ratio)
و PWM1_Start(void)
و PWM_Stop(void)
البرنامج يعطى عشر مستويات مختلفة للتحكم فى شدة إضاءة الليد بتغيير دورة الخدمة من 0 إلى 250 بخطوة 25 فى كل مستوى . يتم تغيير دورة الخدمة عن طريق الضغط على المفاتيح الضاغطة UP , DOWN .
التعليق على البرنامج:
1- مقدمة (رأس) البرنامج .
/*
Pulse Width Modulation
Description: CCP module generating a PWM signal
MCU: PIC16F628A
Oscillator: XT, 4.0 MHz, MCLR Enabled
*/
2- تعريف الخانات بأسماء تعبر عن وظيفتها ومتعرف عليها .
sbit UP at RB0_bit;
sbit DOWN at RB1_bit;
3- الإعلان عن المتغيرات
unsigned short new_DC, current_DC;
4- إنشاء دالة تأخير لتلاشى تأثير حدوث إرتدادات فى المفاتيح .
void debounce(){
Delay_ms(300);
}
5- بداية الدالة الرئيسية وفيها :
void main() {
أ‌- إعدادات أطراف الميكروكونترولر :
· فصل المقارنات للسماح باستخدام جميع الأطراف كمداخل / مخارج رقمية .
CMCON = 0x07; // Disable comparators
· تصفير سجل المنفذ PORTB كحالة ابتدائية .
PORTB = 0x00;
· أعداد أطراف المنفذ PORTB بحيث يكون RB0, RB1 كمداخل للمفاتيح و RB3 كمخرج PWM
TRISB = 0b00000011; // RB0, RB1 input, RB3 (PWM1) output
ب‌- إعدادات نظام PWM
· تردد الشكل الموجى فى الخرج 5KHz .

PWM1_Init(5000); // PWM module initialization (5KHz)
· تصفير متغير القيمة الجديدة للتيار المستمر DC والقيمة الحالية للتيار المستمر .
new_DC = 0; // Initial value of variable Duty Cycle
current_DC = 0;
· بدء نظام PWM بقيمة "صفر" تيار مستمر
PWM1_Start(); // Start PWM1 module with Zero DC
· ضبط دورة الخدمة لنظام PWM بالقيمة الموجودة فى متغير "القيمة الحالية" وهى فى البداية تكون بصفر .
PWM1_Set_Duty(current_DC);
ت‌- الدخول إلى حلقة غير منتهية do{…..}while(1) حيث يتم تنفيذ :
do {
· التحقق من أن مفتاح التزايد UP قد عكس وضعه أى تم الضغط عليه
if (!UP){ // If the button connected to RB0 is pressed
· عندئذ يتم استدعاء دالة التأخير لتلاشى تأثير الارتدادات فى المفتاح
debounce();
· التحقق من أن القيمة الجديدة لم ولن تتعدى أقصى قيمة وهى 250 .
if (new_DC < 250) // Don't go above 250
· فإن كان كذلك يتم تزايد سجل القيمة الجديدة بمقدارخطوة أى بمقدار 25 ونسخ القيمة الجديدة مرة أخرى إلى سجل القيمة الجديدة .
new_DC = new_DC + 25 ; // increment Duty Cycle by 25
}
· التحقق من أن مفتاح التزايد UP قد عكس وضعه أى تم الضغط عليه .

if (!DOWN) { // If the button connected to RB1 is pressed
· عندئذ يتم استدعاء دالة التأخير لتلاشى تأثير الارتدادات فى المفتاح

debounce();
· التحقق من أن القيمة الجديدة لم ولن تصل لأدنى قيمة وهى الصفر .

if (new_DC !=0) // Don't go below 0
· فإن كان كذلك يتم تناقص سجل القيمة الجديدة بمقدارخطوة أى بمقدار 25 ونسخ القيمة الجديدة مرة أخرى إلى سجل القيمة الجديدة .


new_DC= new_DC - 25 ; // Decrement Duty Cycle by 25
}
· التحقق من أن القيمة الجديدة لا تساوى القيمة الحالية
if (current_DC != new_DC) {
· عندئذ يتم نسخ (مساواة) القيمة الجديدة إلى القيمة الحالية
current_DC = new_DC ;
· ثم إعادة ضبط دورة الخدمة لنظام PWM بالقيمة الجديدة
PWM1_Set_Duty(current_DC); // Change the current DC to new value
}
· وتكرار العملية بصفة مستمرة
} while(1);
· نهاية الدالة الرئيسية .
} // END main()
النتائج :
__________________
angel4angel4angel4angel4angel4
رد مع اقتباس
  #5  
قديم 09-23-2011, 05:51 AM
 
النتائج :
عند توصيل القدرة للدائرة تبدأ الإضاءة بمستوى الصفر (الدورة كلها OFF مستمر ) أى دورة الخدمة بصفر . بالضغط على المفتاح الضاغط UP تتزايد دورة الخدمة (يتزايد الجزء الموجب من الدورة ON) وتتزايد شدة إضاءة الليد حتى تصل دورة الخدمة إلى الواحد الصحيح (الدورة كلها ON مستمر) .








__________________
angel4angel4angel4angel4angel4
رد مع اقتباس
إضافة رد

مواقع النشر (المفضلة)


تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة
Trackbacks are متاحة
Pingbacks are متاحة
Refbacks are متاحة


المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
همس النبضات : ننتظر نبضات كلماتكم المتدفقة سمسمة محمد أرشيف المواضيع الغير مكتمله او المكرره او المنقوله و المخالفه 74 04-20-2011 10:25 AM
لا تغرك الدنيا وتصبح عديم أحساس جنون ليل مواضيع عامة 10 03-27-2011 09:50 PM
المقارنة بين الأفلام وطن2101 أرشيف المواضيع الغير مكتمله او المكرره او المنقوله و المخالفه 1 03-25-2006 02:46 AM


الساعة الآن 03:26 PM.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.

شات الشلة
Powered by: vBulletin Copyright ©2000 - 2006, Jelsoft Enterprises Ltd.
جميع الحقوق محفوظة لعيون العرب
2003 - 2011