سلام دوستان . من یه برنامه با بسکام نوشتم که شرح بصورت زیر میباشد
برنامه ای نوشتم دارای 3تا کلید هست که کلید شماره 1 رو میزنم استپ موتورم مثلا میره رو زاویه 30درجه(البته با دادن پالس) کلید 2 هم میزنم استپ موتورم میاد رو زاویه صفر درجه بعد میره رو زاویه ای براش تعیین کردم مثلا 40 درجه . تا اینجا مشکلی نیست و درست عمل میکنه
اینم یادم رفت که بگم مداری که طراحی کردم داراس سنسور دما و mq-7 میباشد که مقدار این 2تا رو باهم تفریق میکنیم و تو یه متغیری بنام x1 میریزیماما میمونه کلید آخر که اگه کلید آخر رو که فشار میدم باید نسبت به متغیر X1 که در بالا گفتم بره تو یه زاویه مشخصی که تعیین کردم اما نمیشه برای استپ موتورمدرارم درایور 3آمپری رو خریداری کردم . هرکاری میکنم جواب نمیده. من نمونه کدمو که مربوط به کلید3 هستو قرار میدم لطفا کمک کنید بچه ها
D_dama:
X1 = X - W
'Do
W = Getadc(0)
W = W / 2
Locate 1 , 9
Lcd " Df=" ; W ; Chr(1) ; "" ; "C "
X1 = X - W
Gas = Getadc(1)
Gas = Gas / 2
Locate 2 , 13
Lcd Gas ; "PPM"
'Loop
'...........................
If Co = 1 Then
If X1 >= 10 Then
F1 = 1
If Fm = 1 Then
Gosub Dire1
For I = 1 To 38.88
Portd.1 = 1
Waitms 50
Portd.1 = 0
Waitms 50
Next I
Fm = 0
End If
Gosub Dire
For I = 1 To 61.11
Portd.1 = 1
Waitms 50
Portd.1 = 0
Waitms 50
Next I
'If I = 61.11 Then Gosub Degree3
End If
'...........................
If X1 < 10 And X1 >= 5 Then
F2 = 1
If Fm = 1 Then
Gosub Dire1
For I = 1 To 38.88
Portd.1 = 1
Waitms 50
Portd.1 = 0
Waitms 50
Next I
Fm = 0
End If
If F1 = 1 Then
Gosub Dire1
For I = 1 To 61.11
Portd.2 = 1
Waitms 50
Portd.1 = 0
Waitms 50
Next I
F1 = 0
'Exit Do
'Gosub Chek
End If
Gosub Dire
For I = 1 To 40.5
Portd.1 = 1
Waitms 50
Portd.1 = 0
'Waitms 50
Next I
'If I = 61.11 Then Gosub Degree3
End If
'.............................
'..............................
If X1 > 0 And X1 < 5 Then
F3 = 1
If Fm = 1 Then
Gosub Dire1
For I = 1 To 38.88
Portd.1 = 1
Waitms 50
Portd.1 = 0
Waitms 50
Next I
Fm = 0
End If
If F2 = 1 Then
Gosub Dire1
For I = 1 To 40.5
Portd.1 = 1
Waitms 50
Portd.1 = 0
Waitms 50
Next I
F2 = 0
End If
Gosub Dire
For I = 1 To 44.44
Portd.1 = 1
Waitms 50
Portd.1 = 0
Waitms 50
Next I
'If I = 61.11 Then Gosub Degree3
End If
'...............................
'...............................
If X1 = 0 Then
F4 = 1
If Fm = 1 Then
Gosub Dire1
For I = 1 To 38.88
Portd.1 = 1
Waitms 50
Portd.1 = 0
Waitms 50
Next I
Fm = 0
End If
If F3 = 1 Then
Gosub Dire1
For I = 1 To 44.44
Portd.1 = 1
Waitms 50
Portd.1 = 0
Waitms 50
Next I
F3 = 0
End If
Gosub Dire1
For I = 1 To 44.44
Portd.1 = 1
Waitms 50
Portd.1 = 0
Waitms 50
Next I
F3 = 0
'End If
Gosub Dire
For I = 1 To 42.22
Portd.1 = 1
Waitms 50
Portd.1 = 0
Waitms 50
Next I
'If I = 61.11 Then Gosub Degree3
End If
'...............................
'...............................
If X1 >= -5 And X1 < 0 Then
F5 = 1
If Fm = 1 Then
Gosub Dire1
For I = 1 To 38.88
Portd.1 = 1
Waitms 50
Portd.1 = 0
Waitms 50
Next I
Fm = 0
End If
If F4 = 1 Then
Gosub Dire1
For I = 1 To 42.22
Portd.1 = 1
Waitms 50
Portd.1 = 0
Waitms 50
Next I
F4 = 0
End If
Gosub Dire
For I = 1 To 38.88
Portd.1 = 1
Waitms 50
Portd.1 = 0
Waitms 50
Next I
'If I = 61.11 Then Gosub Degree3
End If
'................................
'................................
If X1 < -5 Then
F6 = 1
If Fm = 1 Then
Gosub Dire1
For I = 1 To 38.88
Portd.1 = 1
Waitms 50
Portd.1 = 0
Waitms 50
Next I
Fm = 0
End If
If F5 = 1 Then
Gosub Dire1
For I = 1 To 38.88
Portd.1 = 1
Waitms 50
Portd.1 = 0
Waitms 50
Next I
F5 = 0
End If
Gosub Dire
For I = 1 To 6.66
Portd.1 = 1
Waitms 50
Portd.1 = 0
Waitms 50
Next I
End If
'....................................
If F6 = 1 Then
Gosub Dire1
For I = 1 To 6.66
Portd.1 = 1
Waitms 50
Portd.1 = 0
Waitms 50
Next I
F6 = 0
End If
Gosub En1
End If
'Loop
Return