• 沒有找到結果。

3 手動測試及控制雙向十字路口交通號誌燈

在文檔中 NI ELVIS 簡介 (頁 110-113)

LED 指示燈具備緊急救援功能!

練習 7- 3 手動測試及控制雙向十字路口交通號誌燈

7-8

完成下列步驟,以建立並手動測試及控制雙向十字路口交通號誌燈。

1. 在 NI ELVIS II 原型麵包板上安裝 2 組 LED 指示燈 (各含 1 個紅色、黃 色及綠色 LED 指示燈),以如同雙向十字路口雙向號誌燈的方位安裝。

圖 7-6. 雙向十字路口雙向號誌燈的 LED 指示燈配置圖

每 1 個 LED 指示燈都是由原型麵包板上其中 1 個 8 位元平行連接埠上 的二進位位元控制。使用數位 I/O 位元插槽 DIO <0..7>。

2. 將針腳插槽 DIO <0> 連接至由北往南 (從上到下) 方向的紅色 LED 指示 燈的陽極。

3. 將該 LED 指示燈的另 1 端透過 220 Ω 電阻器連接至數位接地線 (未顯 示在圖中)。

註:電阻器是用於限制通過 LED 指示燈的電流。

4. 以類似方式連接其餘的彩色 LED 指示燈。

完整的對應機制如下:

5. 選擇 NI ELVISmx Instrument Launcher 中的 Digital Writer (DigOut)。

6. 使用垂直的滑動開關選擇任一 8 位元數碼,並將該數碼輸出至 NI ELVIS II 數位線路。注意位元 0 已被連接至原型麵包板上標示為 DIO <0> 的針 腳插槽。

7. 將 Generation Mode 設為 (Run Continuous),並將 Pattern 設為 (Manual),如圖 7-7 所示。

8. 若要啟動該連接埠,請按下 Run 按鈕。

圖 7-7. 測試 LED 指示燈用的數位寫入器

所有開關 (位元 0-2 與 4-6) 處於 HI 位置時,所有 LED 指示燈均應亮起。所 有開關處於 LO 位置時,所有 LED 指示燈應熄滅。

您現在可使用這些開關來判斷控制各種十字路口交通號誌燈循環所需的 8 位 元編碼是哪些。

DIO <0> 紅 北-南方向 DIO <4> 紅 東-西方向 DIO <1> 黃 北-南方向 DIO <5> 黃 東-西方向 DIO <2> 綠 北-南方向 DIO <6> 綠 東-西方向

7-10

以下是十字路口的部分實用資訊。交通號誌燈的基本運作方式是以 60 秒的 時間間隔為基礎,其中紅燈亮 30 秒、而後綠燈亮 25 秒,再來是黃燈亮 5 秒。舉例來說,在雙向的十字路口上,南北向的黃燈會在東西向的紅燈亮起 時亮起。如此可將 30 秒的紅燈時間間隔改為 2 段時間間隔:先是 25 秒的 循環,而後是 5 秒的循環。雙向十字路口交通號誌燈有 4 段時間間隔 (T1、

T2、T3 及 T4)。

9. 研究下列表格,以找出雙向十字路口交通號誌燈的運作方式。

方向 南北 東西

燈 紅黃綠 紅黃綠

位元數 012 456 8 位元編碼 十進位值

T1 25 s 001 100 00010100 20 T2 5 s 010 100 _________ _________

T3 25 s 100 001 _________ _________

T3 5 s 100 010 _________ _________

10. 使用數位寫入器來判斷需將哪些 8 位元編碼寫入至數位連接埠,以在 4 段時間間隔的各時段控制交通號誌燈。

例如,時間週期 1 需使用編碼 00101000。電腦會以反向順序讀取位 元 (最不重要的位元位於右側)。此編碼即變成 00010100。在 Manual Patter n Line 開關顯示畫面上方的白色方塊中,您可看到二進位 {00010100}、十進位 {20} 或十六進位 {14} 的開關數碼基數。

11. 按下白色方塊左側的黑色 ^ 可變更該基數。您可使用此功能來判斷其他 時間間隔 (T2、T3 及 T4) 的數字編碼。若您依序輸出各個時間間隔的 8 位元編碼,即可手動操作交通號誌燈。

註:按下 Numeric Value 顯示畫面旁的白色 x 也可變更 Line States 顯示畫面中的基數。

重複執行此 4 循環順序即可使交通號誌燈自動運作。

練習 7-3 結束

完成下列步驟,以在交通號誌燈電路上自動執行時間循環。

1. 關閉 NI ELVIS II SFP 並啟動 LabVIEW 8.5。

2. 開啟 StopLightsMx.vi 程式。人機介面上只有 1 個控制項,即用於停止 交通號誌燈運作的布林開關。

3. 切換到程式圖 (Window»Show Block Diagram)。

4. 觀察 For Loop 所產生的 4 循環順序。

NI ELVISmx 數位寫入器 API 即是將燈號編碼輸出至交通號誌燈的結 構。此 API 會預期收到 8 位元布林陣列的輸入編碼。例如,第一個時 間間隔 T1 需使用編碼 20 (20 十進位)。其值會被放置在標示為 Lights Pattern 的整數陣列的首個元素中。您必須將其他整數編碼從練習 7-3 的表格中轉換為 Lights Pattern 陣列的 3 個空白元素。

圖 7-8. 雙向十字路口交通號誌燈自動化運作的程式圖

運作時,我們會在 For Loop (內迴路) 邊界上選擇 Lights Pattern 陣列的其 中 1 個元素,並將之轉換成 8 位元布林陣列。我們會利用類似的方式在 For Loop 邊界選擇適當的時間延遲,並將之傳達至等待功能。

時間間隔會被儲存在時間延遲陣列的 4 個元素中。若要加快運作速度,可將 25 秒的時間間隔縮減為 5 秒,並將 5 秒的時間間隔縮減為 1 秒。

在文檔中 NI ELVIS 簡介 (頁 110-113)

相關文件