مقدمـــــة عن المشروع
محرك DC هو المحرك الأكثر استخدامًا في مشاريع الروبوتات والإلكترونيات . للتحكم في سرعة محرك التيار المستمر ، لدينا طرق مختلفة ، ولكن في هذا المشروع ، نحن نتحكم في سرعة محرك التيار المستمر باستخدام PWM والتي تعني تعديل عرض النبضة . في هذا المشروع ، سنتمكن من التحكم في سرعة محرك التيار المستمر باستخدام مقياس الجهد ونعني به المقاومة المتغيرة ، ويمكننا ضبط السرعة من خلال تدوير مقبض المقاومة المتغيرة .
والان هيااا نبدأ !….
تعديل عرض النبض :
ما هو PWM ؟
PWM هي تقنية باستخدامها يمكننا التحكم في الجهد أو الطاقة . لفهم الأمر بشكل أكثر بساطة ، إذا كنت تستخدم 5 فولت لقيادة محرك ، فسيتحرك المحرك ببعض السرعة ، والآن إذا قمنا بتخفيض الجهد المطبق بمقدار 2 فولت يعني أننا نطبق 3 فولت على المحرك ثم تنخفض سرعة المحرك أيضًا وهكذا . يستخدم هذا المفهوم في المشروع للتحكم في الجهد باستخدام PWM .
في الكود البرمجي يتم حساب دورة التشغيل بما يعرف بالديوتي سايكل الموضح بالقانون أدناه .
Duty cycle = (TON/(TON + )) *100%
بينما TON تعني زمن التشغيل .
و TOFF زمن الايقاف .
الآن إذا كان المفتاح في الشكل أعلاه مغلقًا بشكل مستمر على مدار فترة زمنية ، فسيتم تشغيل المحرك بشكل مستمر خلال ذلك الوقت. إذا تم إغلاق المفتاح لمدة 8 مللي ثانية وفتح لمدة 2 مللي ثانية على مدار 10 مللي ثانية ، فسيكون المحرك في وضع التشغيل فقط خلال 8 مللي ثانية . الآن انتهى وقت متوسط الجهاز الطرفي عبر فترة 10 مللي ثانية = وقت التشغيل / (وقت التشغيل + وقت إيقاف التشغيل) ، وهذا ما يسمى دورة التشغيل وهو 80٪ (8 / (8 + 2)) ، وبالتالي فإن المتوسط سيكون الجهد الناتج 80 ٪ من جهد البطارية . الآن لا يمكن للعين البشرية رؤية أن المحرك يعمل لمدة 8 مللي ثانية ، ثم لا يعمل لمدة 2 مللي ثانية ، لذلك ستبدو DC Motor تدور بسرعة 80٪.
في الحالة الثانية ، يتم إغلاق المفتاح لمدة 5 مللي ثانية ويفتح لمدة 5 مللي ثانية على مدار 10 مللي ثانية ، وبالتالي فإن متوسط الجهد الطرفي عند الخرج سيكون 50٪ من جهد البطارية . قل ما إذا كان الجهد الكهربي للبطارية هو 5 فولت ودورة التشغيل 50٪ ، وبالتالي فإن الجهد الكهربي الطرفي سيكون 2.5 فولت .
في الحالة الثالثة ، تكون دورة التشغيل 20٪ ومتوسط الجهد الطرفي 20٪ من جهد البطارية .
متطلبات المشروع
- Arduino UNO
- DC motor
- Transistor 2N2222
- Potentiometer 100k ohm
- Capacitor 0.1uF
- Breadboard
- Jumping Wires
طريقة العمل والتوصيل
يتم توصيل المكونات جميعا وفقا للمخطط أعلاه .
الكــــــــــود البرمجي
لتحميل الكود البرمجي اضغط هنا
int pwmPin = 12; // assigns pin 12 to variable pwm int pot = A0; // assigns analog input A0 to variable pot int c1 = 0; // declares variable c1 int c2 = 0; // declares variable c2 void setup() // setup loop { pinMode(pwmPin, OUTPUT); pinMode(pot, INPUT); } void loop() { c2= analogRead(pot); c1= 1024-c2; // subtracts c2 from 1000 ans saves the result in c1 digitalWrite(pwmPin, HIGH); delayMicroseconds(c1); digitalWrite(pwmPin, LOW); delayMicroseconds(c2); }
اذا امكن هل استطيع الحصول على متحكم بسرعة دوران محرك يعمل على ٢٤ فولت مع شاشة تحدد كمية الدوران للمحرك