|
這是利基Basic Commander的程式碼,非常容易撰寫
Sub MAIN()
Dim POWER As Word
Dim F_B,L_R As Word
Do
'前進及後退控制程式
Pulsein(9,1,F_B) '取得接收機的前進後退信號(210~390,中點在300)
POWER=Float2word(Abs(Word2float(F_B)-300)*100) '計算偏移值
If F_B > 310 Then '假如控制桿在290~310的位置,車不動,大於則前進,反之後退
go_front(POWER)
Elseif F_B < 290 Then
go_back(POWER)
End IF
'左轉及右轉控制程式
Pulsein(10,1,L_R) '取得接收機的左右轉向信號(210~390,中點在300)
POWER=Float2word(Abs(Word2float(L_R)-300)*100) '計算偏移值
If L_R > 310 Then '假如控制桿在290~310的位置,車不動,大於則左轉,反之右轉
go_left(POWER)
Elseif L_R < 290 Then
go_right(POWER)
End IF
Loop
End Sub
'==========魔法車動作副程式區(TA7291P)===========
'左右馬達各用一顆TA7291P來控制
'左馬達TA7291P的IN1、IN2分別接到BC2的P0、P1
'左馬達TA7291P的IN1、IN2分別接到BC2的P2、P3
'透過POWER變數傳到動作副程式,來控制脈波寬度,達到速制的目的
Sub go_front(p As Word) '前進副程式
Low 0
Low 1
Low 2
Low 3
Pulseout 0,p '對左輪控制IC的IN1送出脈波,產生正轉動作
Pulseout 2,p '對右輪控制IC的IN1送出脈波,產生正轉動作
End Sub
Sub go_back(p As Word) '後退副程式
Low 0
Low 1
Low 2
Low 3
Pulseout 1,p '對左輪控制IC的IN2送出脈波,產生逆轉動作
Pulseout 3,p '對右輪控制IC的IN2送出脈波,產生逆轉動作
End Sub
Sub go_right(p As Word) '右轉副程式
Low 0
Low 1
Low 2
Low 3
Pulseout 0,p
Pulseout 3,p
End Sub
Sub go_left(p As Word) '左轉副程式
Low 0
Low 1
Low 2
Low 3
Pulseout 1,p
Pulseout 2,p
End Sub |
|