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

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

zainab.hm
:: مهندس متواجد ::
تاريخ التسجيل: Feb 2009
المشاركات: 67
نشاط [ zainab.hm ]
قوة السمعة:0
قديم 05-04-2009, 07:35 PM المشاركة 1   
x4 الى مبرمجي المايكروكنترولر Twitter FaceBook Google+



ارجو ممن يعلم كيفية التحكم بسرعة مروحة باستخدام مايكروكنترولر
مساعدتي في معرفة المبدأ

اعلانات

m_mansour2005
:: مهندس متواجد ::
تاريخ التسجيل: Jan 2009
المشاركات: 80
نشاط [ m_mansour2005 ]
قوة السمعة:0
قديم 05-04-2009, 11:28 PM المشاركة 2   
افتراضي


ممكن توضيح أكتر ايه المطلوب.؟

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

zainab.hm
:: مهندس متواجد ::
تاريخ التسجيل: Feb 2009
المشاركات: 67
نشاط [ zainab.hm ]
قوة السمعة:0
قديم 06-04-2009, 08:33 AM المشاركة 3   
افتراضي


انا اريد التحكم بسرعة مروحة باستخدام مايكروكنترولر
ويتم اختيار السرعة باستخدام واجهة في الكومبيوتر اصممها باحدى لغات البرمجة
ولكن الذي اعرفه هو كيف اشغل واوقف المروحة والذي لا اعرفه المبدا الذي يتم فيه تغيير سرعة المروحة


الصورة الرمزية ahmad_s_f
ahmad_s_f
:: المهندس/ أحمد سمير فايد ::
تاريخ التسجيل: Jun 2006
الدولة: سائح في ارض الله
المشاركات: 725
نشاط [ ahmad_s_f ]
قوة السمعة:80
قديم 06-04-2009, 12:40 PM المشاركة 4   
افتراضي


السلام عليكم ورحمة الله وبركاته .. مبدأ التحكم في سرعة الموتور عموما يختلف على حسب نوعه ,

ما هو نوع الموتور المستخدم AC أم DC ؟؟ وإذا كان DC فمن أي نوع هو؟

عموما : الموتور DC العادي يتم التحكم في سرعته عن طريق ما يسمى بـ
PULSE WIDTH MODULATION أو اختصارا PWM وفكرة عمل هذه التقنية هو عن طريق التحكم في النبضات التي نرسلها للموتور فلا نرسل له جهد ثابت باستمرار بل نرسل له هذا الجهد عن طريق نبضات وطول النبضة DUTY CYCLE هو الذي نتحكم من خلاله في الفولت الناتج

فمن المعلوم أن سرعة الموتور تقل لو قل الفولت وتزيد لو زاد الفولت . فعن طريق التحكم في PWM نستطيع تغيير هذا الفولت وبالتالي نستطيع التحكم في سرعة الموتور . علما انه يوجد مكتبة جاهزة في مايكروسي تدعم PWM لتسهيل واستخدام هذا الأمر .

وهناك نوع آخر من المواتير STEPPER MOTOR وله طريقة تحكم مختلفة تماما ومن المعلوم أنه حتى يدور هذا الموتور يتم إرسال له نبضات بطريقة معينة كل نبضة تجعله يدور بزاوية معينة ولكي يدور باستمرار نرسل له نبضات مختلفة باستمرار سواءا كان ذلك بأربعة أطراف أو أكثر ونجعل هناك زمن انتظار بين ارسال هذه النبضات هذا الزمن بزيادته تقل السرعة .

كما ذكرت هناك أنواع كثيرة من المواتير ولكل نوع طريقة
======================
وفقنا الله جميعا لما يحب ويرضى ورزقنا وإياكم العلم النافع
اللهم ارزقنا العفة
والسلام عليكم ورحمة الله وبركاته


التعديل الأخير تم بواسطة : ahmad_s_f بتاريخ 06-04-2009 الساعة 12:51 PM

zainab.hm
:: مهندس متواجد ::
تاريخ التسجيل: Feb 2009
المشاركات: 67
نشاط [ zainab.hm ]
قوة السمعة:0
قديم 06-04-2009, 01:04 PM المشاركة 5   
افتراضي


هل من الممكن اعطائي مثال عن التحكم في الموتور DC العادي عن طريق PWM بلغة مايكروسي


الصورة الرمزية ahmad_s_f
ahmad_s_f
:: المهندس/ أحمد سمير فايد ::
تاريخ التسجيل: Jun 2006
الدولة: سائح في ارض الله
المشاركات: 725
نشاط [ ahmad_s_f ]
قوة السمعة:80
قديم 06-04-2009, 01:14 PM المشاركة 6   
افتراضي


الموتور يعمل بكام فولت ؟؟


الصورة الرمزية ahmad_s_f
ahmad_s_f
:: المهندس/ أحمد سمير فايد ::
تاريخ التسجيل: Jun 2006
الدولة: سائح في ارض الله
المشاركات: 725
نشاط [ ahmad_s_f ]
قوة السمعة:80
قديم 06-04-2009, 01:43 PM المشاركة 7   
افتراضي


لم تردي على السؤال ؟؟
ليست مشكلة ..

عموما يفضل وضع ترانزستور واستخدامه كسويتش لجعل التيار كبير ليجعل الموتور يستطيع العمل .. لأن التيار الخارج من البك غير كافي .

يوجد مثال في الـ help الخاص باللغة وإن شاء الله في دورة المايكروسي سيكون هناك أمثلة على التحكم في سرعة الموتور بشرح مفصل ..

والله الموفق


الصورة الرمزية ahmad_s_f
ahmad_s_f
:: المهندس/ أحمد سمير فايد ::
تاريخ التسجيل: Jun 2006
الدولة: سائح في ارض الله
المشاركات: 725
نشاط [ ahmad_s_f ]
قوة السمعة:80
قديم 06-04-2009, 02:02 PM المشاركة 8   
افتراضي


هذا مثال على على استخدام pwm حيث يتم زيادة السرعة تدريجيا إلى أن يصل إلى سرعة معينة ثم يبدأ من جديد



كود:
// microcontroller : P16F877A
// PWM module is set on RC2 Pin No 17.
unsigned short i;
void main() { PORTC = 00; // Set PORTC to $FF TRISC = 0; // PORTC is output Pwm_Init(5000); // Initialize PWM module
Pwm_Start(); // Start PWM
while (1) { // Endless loop for(i=0;i<=255;i++)
{ Pwm1_Change_Duty(i);
delay_ms(10); }
} }
ويمكنك تحميل ملف المحاكاة من هنا

دعواتكم

===================
وفقنا الله جميعا لما يحب ويرضى ورزقنا وإياكم العلم النافع
والسلام عليكم ورحمة الله وبركاته

إضافة رد

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

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

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


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

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