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

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

الصورة الرمزية المظلوم
المظلوم
:: مهندس متميز ::
تاريخ التسجيل: Oct 2011
الدولة: BH
المشاركات: 640
نشاط [ المظلوم ]
قوة السمعة:0
قديم 10-03-2012, 03:20 PM المشاركة 1   
افتراضي كيف يمكن كتابة كود للتحكم بشدة اضاءه LED Twitter FaceBook Google+



السلام عليكم ،،

قمت بانشاء موضوع قبل فترة بمحتوى مشابه ولكنه اتخذ منحى اخر ،،،

ما اريده هنا هو كيف يمكن كتابة كود للمايكروكنترولر 16f84a لانشاء "generate " ,, سقنال pwm ،، للتحكم في شدة اضاءة led مثلا ،، بحيث يتم التغير عن طريق زرين ،، احدهما للزيادة والاخر للنقصان ،،،

هذه الكنترولر ليس فيها هذه الخاصية ذاتيا ( كما في 16f877a ( لذا يجب كتابة الكود من البداية ،، لانشاء هذه السقنال ،،، بتقليل او زيادة عرض الموجة ،،، دون الاعتماد على function جاهزة ،،


كيف يمكن كتابة مثل هذا الكود ؟! او كيف ابدا على الاقل ،،

اعلانات

الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 10,061
نشاط [ حيدر علاج حسن ]
قوة السمعة:394
قديم 10-03-2012, 03:34 PM المشاركة 2   
افتراضي


http://www.qariya.com/vb/showthread.php?t=64736

طبعا هذه الدروس تتوافق مع microC و ليس مع microC PRO .

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

الصورة الرمزية المظلوم
المظلوم
:: مهندس متميز ::
تاريخ التسجيل: Oct 2011
الدولة: BH
المشاركات: 640
نشاط [ المظلوم ]
قوة السمعة:0
قديم 10-03-2012, 04:10 PM المشاركة 3   
افتراضي


[QUOTE=حيدر علاج حسن;613517]http://www.qariya.com/vb/showthread.php?t=64736

طبعا هذه الدروس تتوافق مع microC و ليس مع microC PRO .[/QUOTE


شكرا اخي حيدر ،، جزاك الله الف خير ،،

هذه الدروس ممتازة ولكن هذه خاصة بالمايةروكنترولرز التي يمكن ان تنشيء pwm ذاتيا ،، اعني انها hardware implemented ، لكن المايكرو 16f84a ليس به هذه الخاصية ،،، فكيف يمكن استخدامه ،، لانشاء مثل هذه السقنال ؟!

طبعا ينبغي لك ان تقوم بانشاء السقنال من الصفر ،،،


Imozar
:: مهندس متميز ::
تاريخ التسجيل: Dec 2011
المشاركات: 318
نشاط [ Imozar ]
قوة السمعة:0
قديم 10-03-2012, 04:25 PM المشاركة 4   
افتراضي


المايكرو 16f84a ليس به هذه الخاصية ،،، فكيف يمكن استخدامه ،، لانشاء مثل هذه السقنال ؟!
http://www.qariya.com/vb/showthread.php?t=93244


الصورة الرمزية المظلوم
المظلوم
:: مهندس متميز ::
تاريخ التسجيل: Oct 2011
الدولة: BH
المشاركات: 640
نشاط [ المظلوم ]
قوة السمعة:0
قديم 10-03-2012, 08:53 PM المشاركة 5   
افتراضي



وهذا هو البرنامج كاملا

كود:
// BY Eng : ASHRAF KAMAL ELHAMAHMY
             
  char x;
  void interrupt(){
   x++;
   if(x==5){
    portb.f0=~portb.f0;
    x=0;
    }
                        
    tmr0=131;
    INTCON.T0IF = 0;         // timer will count 125 * prescale(=16)=2000 *5 (the x variable)=   10 ms   ==>
                              //PORTB  WILL change the bit state each 10 ms so the period will be
                              //Ton=10 ms && Toff=10 ms so T (total)=20 ms or 50 HZ

                }

void main() {
          trisb=0;
          intcon=0b10100000;
          option_reg=0x03;     // prescale  16 selected
          tmr0=131;
          portb=0;
          while(1){

                PORTB.F3=1;  // port b can do other thing while  doing the PWM 

          }}

والان مع صورة للمشروع




حاولت ان افهم المبدأ التي كتب عليه هذا الكود لكن لم استوعبه تماما ؟ ،، هل يتفضل أحد بالشرح ؟ ،، خصوصا في PRESCALAR ومسألة توليد النبضة بخمسين هرتز ؟ ،، وما هو الأنبوت لهذا المايكرو ، بمعنى على اي اساس تكون شدة الإضاءه عند هذا الأنبوت بمقدار معين ،،، وعندما يختلف الأنبوت ،، يختلف الآوتبوت ؟



اعذروني ،


تمنياتي


الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 10,061
نشاط [ حيدر علاج حسن ]
قوة السمعة:394
قديم 10-03-2012, 09:59 PM المشاركة 6   
افتراضي


المتحكم يقوم بتوليد اشارة مربعة القيمة القصوى لها 5 فولت و القيمة الدنيا صفر فولت . هذه الاشارة تتولد من خلال الاوامر في الكود و ليس على اساس فولتية داخلة ...
اما التغير في شدة الاضاء فيكون من خلال التغيير بزمن 5 فولت و زمن صفر فولت و هذه النسبة تسمى duty cycle

لاحظ في هذه الاشارة ان زمن الاشتغال لكل نبضة هو ربع زمن الموجي الكلي و عليه فان الجهد الخارج سيكون 5 × 1 ÷ 4 = 1.25 فولت ..



اما في هذه الموجة فان زمن الاشتغال هو نصف زمن الموجة الكلي و عليه فان الجهد الخارج سيكون 2.5 فولت .


اما في هذه الموجة فزمن الاشتغال هو 75% من زمن الموجة الكلي و عليه فان الجهد الخارج سيكون 3.75 فولت ..


و هكذا .....
في الموجات الثلاث ان قمة الموجة هي 5 فولت . لكن الاختلاف في الجهد الخارج جاء نتيجة الاختلاف في زمن الاشتغال ( 5 فولت ) و زمن الاطفاء ( صفر فولت ) .
ارجو ان يكون الشرح واضح و مفيد ...


التعديل الأخير تم بواسطة : حيدر علاج حسن بتاريخ 10-03-2012 الساعة 10:03 PM

الصورة الرمزية المظلوم
المظلوم
:: مهندس متميز ::
تاريخ التسجيل: Oct 2011
الدولة: BH
المشاركات: 640
نشاط [ المظلوم ]
قوة السمعة:0
قديم 10-03-2012, 10:18 PM المشاركة 7   
افتراضي


المتحكم يقوم بتوليد اشارة مربعة القيمة القصوى لها 5 فولت و القيمة الدنيا صفر فولت . هذه الاشارة تتولد من خلال الاوامر في الكود و ليس على اساس فولتية داخلة ...
اما التغير في شدة الاضاء فيكون من خلال التغيير بزمن 5 فولت و زمن صفر فولت و هذه النسبة تسمى duty cycle

لاحظ في هذه الاشارة ان زمن الاشتغال لكل نبضة هو ربع زمن الموجي الكلي و عليه فان الجهد الخارج سيكون 5 × 1 ÷ 4 = 1.25 فولت ..



اما في هذه الموجة فان زمن الاشتغال هو نصف زمن الموجة الكلي و عليه فان الجهد الخارج سيكون 2.5 فولت .


اما في هذه الموجة فزمن الاشتغال هو 75% من زمن الموجة الكلي و عليه فان الجهد الخارج سيكون 3.75 فولت ..


و هكذا .....
في الموجات الثلاث ان قمة الموجة هي 5 فولت . لكن الاختلاف في الجهد الخارج جاء نتيجة الاختلاف في زمن الاشتغال ( 5 فولت ) و زمن الاطفاء ( صفر فولت ) .
ارجو ان يكون الشرح واضح و مفيد ...

أهلا اخي حيدر ،،

نعم واضح وتمام ،،، وما قصرت ،، هذه هي فكرة الــ PWM ،، بشكل عام ،،

إستفساري ،، هو كيف يتم كتابة كود للتحكم في الــ duty cycle للموجة ،، من حيث الزيادة والنقصان ،، وذلك عن طريق 2 Bits مثلا ،، بمعنى

لو كان الجهاز المراد التحكم به عبارة عن مصباح 5 فولت مثلا ، تكون شدة الإضاءة تعتمد على الــ INPUT ( 2 BIts ( ،، على الشكل التالي ،،

1- 0 0 ( 0% شدة الإضاءه )

2- 1 0 (25 % شدة الإضاءه )

3- 0 1 (50 % شدة الإضاءة )

4- 1 1 (100 % شدة الإضاءه )




مثل هذا الـــ Truth table ،، كيف يمكن كتابة الكود له ،، باستخدام الPWM ،، بحيث أول 2 bits من الــPORT A مثلا ،، هي الإنبوت ،،، وأول Bit من البورت B هي الآوت بوت ،،،

كيف يتم ذلك ؟





تمنياتي


matrixstar
:: مهندس ::
تاريخ التسجيل: Mar 2011
المشاركات: 26
نشاط [ matrixstar ]
قوة السمعة:0
قديم 14-03-2012, 05:17 PM المشاركة 8   
افتراضي


شكرا جزيلا رائع

إضافة رد

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

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

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


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

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