مشروع التحكم فى سرعة محرك التيار المستمر DC motorعن طريق تعديل عرض النبضة PWM :
التحكم فى عرض النبضة PWM له العديد من التطبيقات ، على سبيل المثال التحكم فى إضاءة ليد والتحكم فى الإضاءة الخلفية لشاشة LCD و تغيير سرعة محرك التيار المستمر ، وهو ما سوف نتناوله هنا .
هذا المشروع يتحكم فى سرعة محرك تيار مستمر جهد تغذيته 5V ( محرك لعبة أطفال ) ، وهو يعمل بالطريقة التالية :
· عند البداية يبدأ المحرك الدوران بسرعة متوسطة (FREQ = 125) .
· عند الضغط على المفتاح الضاغط "S" يتم تزايد السرعة بمضاعفات القيمة "25" حتى تصل السرعة إلى الحد الأقصى (FREQ = 250 ) ، وإذا استمر بقاء الضغط على نفس المفتاح فسوف يضىء الليد ، للدلالة على الوصول إلى حد النهاية .
· عندئذ يتم الضغط على المفتاح الضاغط "B" فيؤدى إلى تناقص السرعة بنفس المعدل
(FREQ = 25) ، وإذا استمر الضغط على هذا المفتاح فسوف يضىء الليد .
إذا لم يكن لديك محرك يمكنك توصيل ليد على التوالى مع مقاومة 330 أوم وملاحظة تزايد ونقصان شدة إضاءة الليد .
طريقة استخدام تعديل عرض النبضة كما يلى
كود:
PWM portB.0, 127, 60 ; means generate 60 pulses port B.0 with duty50%
إشارة خرج الميكروكونترولر تكون بالشكل التالى :
الدائرة الكهربية :
ملحوظة :
الترانزستور TIP110 يمكنه التعامل مع جهد حتى 100</SPAN>
volts DC وتيار 8</SPAN>
Amps ، فى حالة الرغبة فى استخدام محرك تيار متردد أكبر ، ينصح باستخدام عازل ضوئى فى منفذ خرج الميكروكونترولر PIC .
البرنامج :
كود:
Device = 16F628A
Xtal = 4 ' Define the oscillator For a 4MHz crystal.
All_Digital = true
Dim up_button As PORTB.1 ;name for the pin B1
Dim down_button As PORTB.2 ;name for the pin B2
Dim LED As PORTB.3 ;name for the pin B3
Dim FREC As Byte ;Variable FREC size 255
Dim flag As Bit ;Variable flag ,1 Bit
FREC = 125 ;initial value for variable FREC
High LED ;LED light to know that already started
DelayMS 500 ;Wait 1/2 second
Low LED ;LED off
PROG:
PWM PORTB.0,FREC,30 ;PWM out 30 cycles of 125 useful signal
Low LED ;LED off
If up_button =0 Then up ;pressing the S button to go up
If down_button =0 Then down ;pressing the B Button To go down
flag =0 ;flag loaded with zero
GoTo PROG
up:
If FREC > 249 Then notice ;If it exceeds 249 then go to notice
If flag = 1 Then PROG ;if flag is 1 go to PROG
High LED ;led ON
flag=1 ;flag loaded with one
FREC = FREC +25 ;add 25 to the FREQ Variable
GoTo PROG ;go to prog
down:
If FREC < 26 Then notice ;if FREC < 26 then go to notice
If flag = 1 Then PROG ;If flag is 1 go To PROG
High LED ;led on
flag=1 ;flag loaded with one
FREC = FREC -25 ;subtract 25 to the variable friction
GoTo PROG ;go to prog
notice:
High LED ;led on
GoTo PROG ;go to PROG
End
التحويل من رقمى إلى تناظرى D/A باستخدام مكبر العمليات LM358 :