لقد قمت باستعمال الميكروكنترولر pic16f84a للتحكم في محرك السي دي روم طبعا بعد عمل بعض التعديلات على المحرك
قمت باستخدام لغة البيسك في عملية البرمجة وهذا هو البرنامج:
Dim a As Byte
Dim b As Byte
Dim i As Word
Dim n As Word
Dim o As Word
Dim t As Word
Dim q As Word
Dim l As Word
Dim y As Word
a = %11111
b = %00000000
TRISA = a
TRISB = b
t = 1000
Loop:
For i = 0 To t
RB0 = 1
RB1 = 0
RB2 = 0
RB3 = 0
RB4 = 1
RB5 = 0
Next i
For n = 0 To t
RB0 = 0
RB1 = 0
RB2 = 1
RB3 = 0
RB4 = 1
RB5 = 0
Next n
For o = 0 To t
RB0 = 0
RB1 = 0
RB2 = 1
RB3 = 1
RB4 = 0
RB5 = 0
Next o
For q = 0 To t
RB0 = 0
RB1 = 1
RB2 = 0
RB3 = 1
RB4 = 0
RB5 = 0
Next q
For l = 0 To t
RB0 = 0
RB1 = 1
RB2 = 0
RB3 = 0
RB4 = 0
RB5 = 1
Next l
For y = 0 To t
RB0 = 1
RB1 = 0
RB2 = 0
RB3 = 0
RB4 = 0
RB5 = 1
Next y
If t > 10 Then
t = t - 5
End If
Goto loop
End
طبعا لغة البرمجة قد تختلف من برنامج الى الاخر لكن هذه ليست المشكلة
المشكلة انه عند وضع المتحكم في الدائرة فان المحرك يبدا بالدوران بسرعة منخفضة وبعد عدد من الدورات تتناقص قيمة T ولكن تصل هذه القيمة الى حد يتوقف فية المتحكم عن العمل مع العلم ان هذه العملية تحدث قبل بلوغ المحرك سرعته القصوى
سؤالي: كيف يمكن رفع سرعة المتحكم الى حد يمنعه من التعليق ؟ هل يمكن ربط المتحكم مع كريستاله اسرع مثل 10 ميغا ؟ وهل يجب تعديل البرنامج في هذه الحالة؟
ارجو الاجابة للاهمية
وشكرا