labview
[ LabVIEW實作 - NI myRIO基礎篇 ] 伺服馬達控制實作 : 控制車子前進、後退、右轉、左轉 與 停止
<攝影 : greatway9999>
一、成果展示
(一)、題目需求
組裝小型自走車,可控制車子前進、後退、右轉、左轉 與 停止。
二、實作程式碼與解說
(一)、程式碼Demo
(二)、接線方式
同上圖,只要將第二顆伺服馬達接到 Pin9 (第一顆伺服馬達 Pin8的隔壁),再將VCC與GND接上即可。
(三)、解題步驟
Step1.設定 PWM腳位
如果使用 NI myRIO,先確認麵包板接在哪一個匯流排。此例接匯流排B,因此在PWM程式方塊的設定中,channel選擇 B/PWM0(Pin27)。因車子需要兩個伺服馬達,因此,另一顆馬達的channel選擇 B/PWM1(Pin29)。
Step2. 設定 Duty Cycle和Frequency
依照題意,週期時間為20ms,Duty Cycle為控制伺服馬達正反轉的變數。再多控制一個馬達,所以利用Sequence的程式方塊,讓兩個馬達的資料流傳遞間隔時間為0.1秒。程式接線如下圖黃色圈選所示。
Step3.設定前進、後退、右轉、左轉 與 停止的 5 種狀態按鈕
利用 " Build Array " 程式方塊,將三種按鈕整合成一個陣列。再利用 "Search 1D Array"程式方塊去讀取按鈕的狀態。同時用 "Or Array Elements" 程式方塊將狀態條件送進去 Case 結構中,進行判斷。
另外再留意,透過控制馬達不同的狀態,讓小車呈現前進、後退、右轉、左轉 與 停止的狀態。因此,利用 "Case"這個結構,來設定條件。條件條列下。
狀態代號 | 狀態 | 第一個伺服馬達之毫秒數 | 第二個伺服馬達之毫秒數 |
0 | 前進 | 0.5 | 2.5 |
1 | 停止 | 1.5 | 1.5 |
2 | 後退 | 2.5 | 0.5 |
3 | 左轉 | 0.5 | 0.5 |
4 | 右轉 | 2.5 | 2.5 |
承上程式後,程式接線與人機介面如下圖所示。
執行後,按鈕即可控制馬達前進、後退、右轉、左轉 與 停止。
#PWM #ServoMotor #ControlCar
0 留言