با سلام
این پروژه در واقع چرخوندن یه موتور پله ای بر اساس تغییر میزان نوره.موتور پله ای رو تست کردم جواب داده اما
adc ظاهرا جواب نمیده چون اصلا موتوره تکون نمیخوره.اشکال از تغذیه است یا چون فیلتر نذاشتم.از مرجع خارجی استفاده کردم اینم برنامه
regfile = "m32def.dat"
$crystal = 8000000
Config Portc = Output
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Dim A As Single , W As Word , W1 As Word , T As Single , T1 As Byte
Dim Ad As Single , C As Byte , I As Single , D As Single , T2 As Byte
Dim W2 As Word
Stop Adc
Start Adc
W1 = 0
T = 0
L1:
Do
W = Getadc(3)
Waitms 50
If W <> W2 Then
Goto Check
End If
Loop
End 'end program
Check:
If W > W1 Then Goto Righ
If W < W1 Then Goto Lef
Righ:
If T > 49 Then Goto L1
W2 = W
W = W - W1
D = 0.02 * W
D = Round(d)
T = T + D
For I = 1 To D
C = &B00000001
For A = 1 To 4
Portc = C
Rotate C , Left
Waitms 10
Next A
Next I
W1 = W2
Goto L1
Lef:
W2 = W
W = W1 - W
D = 0.02 * W
D = Round(d)
T = T - D
For I = 1 To D
C = &B00001000
For A = 1 To 4
Portc = C
Rotate C , Right
Waitms 10
Next A
Next I
W1 = W2
Goto L1
این پروژه در واقع چرخوندن یه موتور پله ای بر اساس تغییر میزان نوره.موتور پله ای رو تست کردم جواب داده اما
adc ظاهرا جواب نمیده چون اصلا موتوره تکون نمیخوره.اشکال از تغذیه است یا چون فیلتر نذاشتم.از مرجع خارجی استفاده کردم اینم برنامه
regfile = "m32def.dat"
$crystal = 8000000
Config Portc = Output
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Dim A As Single , W As Word , W1 As Word , T As Single , T1 As Byte
Dim Ad As Single , C As Byte , I As Single , D As Single , T2 As Byte
Dim W2 As Word
Stop Adc
Start Adc
W1 = 0
T = 0
L1:
Do
W = Getadc(3)
Waitms 50
If W <> W2 Then
Goto Check
End If
Loop
End 'end program
Check:
If W > W1 Then Goto Righ
If W < W1 Then Goto Lef
Righ:
If T > 49 Then Goto L1
W2 = W
W = W - W1
D = 0.02 * W
D = Round(d)
T = T + D
For I = 1 To D
C = &B00000001
For A = 1 To 4
Portc = C
Rotate C , Left
Waitms 10
Next A
Next I
W1 = W2
Goto L1
Lef:
W2 = W
W = W1 - W
D = 0.02 * W
D = Round(d)
T = T - D
For I = 1 To D
C = &B00001000
For A = 1 To 4
Portc = C
Rotate C , Right
Waitms 10
Next A
Next I
W1 = W2
Goto L1
دیدگاه