學術專區 關於NI NI活動訊息 NI Developer Zone 技術支援服務 使用者解決方案 產品與服務 連絡NI MyNI

使用計數器與數位 I/O

數位輸出/輸入,就是電腦科技的基礎。數位 I/O 可溝通 True/False;或 1 與 0。數位輸出常用以表示是否超過臨界值,或可為電路供電。數位輸入則用以觸發訊號的擷取作業。計數器可輸出方波脈衝列,亦可計算數位邊緣。接著將透過 NI LabVIEW 而介紹數位與計數器 I/O 的概念。


逐步程序

下載逐步程序的 PDF 檔

下列程序將計算「NI Educational Laboratory Virtual Instrumentation Suite (NI ELVIS)  II 裝置的計數器腳位」所接收的數位脈衝數量;再接著以二進制格式,將數位值輸出至裝置的數位埠。此程序需要單極雙投 (SPDT) 切換器,還有 8 組 330 Ω 電阻器與 8 組 LED 燈。 

注意:若是以跳線連接計數器輸入針腳,且又用以銜接連接 DGND 之間,則 +5 V 軌所得的結果將與 SPDT 切換器相同。

  1. 將 USB DAQ 介面卡連至電腦
    1. 可至 ni.com 線上搜尋您手邊的介面卡,即可了解 DAQ 介面卡的針腳配置。
    2. 使用者指南與規格亦提供此簡圖
    3. 或於 Measurement & Automation Explorer (MAX) 設定軟體中,對該介面卡按下滑鼠右鍵並點選 Device Pinouts
  2. 設定 SPDT 切換器以輸出 5 V 脈衝
    1. 將單投銜接介面卡的 +5 V 端點
    2. 將第二投銜接介面卡的 DGND 端點
    3. 將輸出極接至介面卡的 PFI8 (ctr0 SOURCE)
  3. 再連接電阻器與 LED 指示器網路 (建議使用麵包板,但非必要)
    1. 串流 8 組 LED 與 1 組 330 Ω 電阻器 (電阻器可穩定穿過 LED 的電流,避免過熱)
    2. 將 LED 的其他端點,連至介面卡的 port0/line0 端點之一
    3. 電阻器的其他端點,再連至介面卡的 DGND
    4. 可參閱下圖以正確設定 LED
      /images/labview101/led_setup.gif
    5. Port 0 的剩下 1-7 線路與 LED,均重複上述步驟

注意: LED 為兩極體,因此電流僅能單向流動。若套用 5 V 電壓而並未點亮 LED,則可能是因為 LED 倒裝而已,只要反轉 LED 的方向/極性即可。若 LED 仍無法發亮,則可能是發生故障或損壞。

  1. 於 LabVIEW 中建立新的 VI
    1. 啟動 LabVIEW 並點選  File » New VI
  2. 將 Counter Input DAQ Assistant 置於程式圖上
    1. 對程式圖按下滑鼠右鍵,再點選 Express » Input » DAQ Assistant
    2. 點選滑鼠即可將 DAQ Assistant 置於程式圖上
  3. 設定 DAQ Assistant 的類型
    1. 點選  Acquire Signals
    2. 點選  Counter Input
    3. 點選  Edge Count
    4. 點選  Dev1  (若非 Dev1,就選擇該介面卡的名稱)
    5. 針對計數器的 Channel 0,點選  ctr0 
  4. 設定擷取作業
    1. 針對 Acquisition Mode,應點選 1 Sample (On Demand)
    2. 再點選 OK 以套用設定
    3. 若要自動建立 While Loop,則可點選 Yes
  5. Data 輸出端點按下滑鼠右鍵,再點選 Create » Numeric Indicator
  6. 執行 VI 並連接 SPDT 切換器
    1. 此時注意:人機介面指示元上將計算邊緣數
  7. 將 Digital Output DAQ Assistant 置於程式圖上
    1. 對程式圖按下滑鼠右鍵,再點選 Express » Output » DAQ Assistant
    2. 將 DAQ Assistant 置於程式圖上,現有 Counter Input DAQ Assistant 的右側
  8. 設定 DAQ Assistant 的類型
    1. 點選  Generate Signals
    2. 點選  Digital Input
    3. 點選  Port Output
    4. 點選  Dev1  (若非 Dev1,就選擇該介面卡的名稱)
    5. 點選 Port output Channel 0 的  Port0 
  9. 設定擷取作業
    1. 針對 Acquisition Mode,應點選 1 Sample (On Demand)
    2. 再點選 OK 以套用設定
  10. 從 Counter Input DAQ Assistant,將 Data 輸出端點接到 Digital Output DAQ Assistant 的 Data 輸入端點
    1. 此時請注意,已自動插入 Convert from Dynamic Data VI
    2. 因為計數器輸入為動態的資料形態,且數位輸出又需要數字的 1D 陣列
  11. 從 Counter Input DAQ Assistant,將 Stopped 輸出端點接到 Digital Output DAQ Assistant 的 Stop (T) 輸入
    1. 此時若按下 Stop 按鈕,即可停止數位產生作業
  12. 當按下 Stop 按鈕,或偵測到錯誤時,可建立停止條件以納入系統
    1. 針對 Counter Input DAQ Assistant 的 Stopped 輸出端點,應中斷 Conditional Terminal 的連線
    2. 對程式圖按下滑鼠右鍵,再點選 Programming » Boolean » Or
    3. Stop 按鈕控制元的輸出,接至 Or Boolean 函式的底部輸入
    4. 對程式圖按下滑鼠右鍵,再點選 Programming » Cluster, Class, & Variant » Unbundle by Name,再將之配置於 Digital Output DAQ Assistant 的右側
    5. 將 Digital Output DAQ Assistant 的 Error Out 輸出端點,接至 Unbundle by Name 函式的輸入,並確認 Status 已選為 unbundled
    6. 將 Unbundle by Name 函式的輸出,接至 Or 函式的頂端輸入
    7. 將 Or 函式的輸出,接至 Conditional Terminal 的輸入
  13. 執行 VI 即可觀看結果
    1. Edge Count 指示元應吻合 LED 的二進制輸出

另可對 DAQ Assistant 按下滑鼠右鍵,並點選 Generate NI-DAQmx Code,即可將 DAQ Assistant Express VI 轉換為初階 NI-DAQmx 函式。初階 NI-DAQmx API,將提供更多程式設計的功能與客制化選項。

LabVIEW VI 片段 (Snippet)

對上方的 VI 片段按下滑鼠右鍵,點選  Save Image As... 找出硬碟中的檔案並點選之,再將檔案圖示拖曳至 LabVIEW 程式圖上。LabVIEW 將從 VI 片段自動產生程式碼。 若需要更多資訊,可參閱 VI Snippets

若需要此概念的初階 NI-DAQmx 驅動程式範例,可開啟 NI Example Finder 並瀏覽  Hardware Input and Output » DAQmx » Counter Measurements » Count Digital Events » Count Digital Events.vi  至計數邊緣;另可點選  Hardware Input and Output » DAQmx » Digital Generation » Cont Write Dig Port-Int Clk.vi  以於 NI Example Finder 中產生數位訊號。透過 LabVIEW 中的 NI Example Finder 與輔助說明,以進一步了解細節。

您的電腦尚未安裝 NI-DAQmx 嗎?
下載最新版的 NI-DAQmx

Module Exercise:使用計數器與數位 I/O

下載習題 PDF 檔

Exercise A:使用計數器與數位 I/O

Exercise Goal
讓 NI myDAQ 介面卡連續計數 PFI0 所接收的數位邊緣數,再將該值顯示為 LabVIEW 中的數字與數位 Boolean 陣列。

必要硬體
1 組 NI myDAQ
1 組 3.5 mm 音源線搭配 MP3 或 CD 播放器
;或
1 組電腦麥克風

考量重點

  • 人耳所能聽到的頻率範圍?根據 Nyquist Sampling Theorem,應該要到多少的取樣率,才能產生所有頻率?CD 播放器的取樣頻率為何?因此,針對 NI myDAQ 介面卡的取樣率,又該用於何種作業?
  • Samples to Write 應為取樣率的 1/5 ~ 1/10。舉例來說,若 Fs = 10 kHz,則 Samples to Write = 1k 或 2k 個樣本。針對緩衝產生作業而言,此為絕佳的基準設定關係。
  • 使用電壓產生作業,可於 audioOutputLeft 上讀取喇叭/耳機的輸出;而 audioOutputRight 可用於立體聲輸出,或單一通道用於單輸出。
  • 音訊輸出適用 ±2 V 輸出範圍。
  • 在輸出至 NI myDAQ 介面卡之前,可於圖表上顯示訊號。
  • Merge Signals 函式可同時於左、右建立 2 個音訊通道。
  • 建立 Frequency 的控制元,以迅速調整此數值。若想執行 VI 又同時更新,則此控制元應置於 While Loop 之內或之外?
  • 改變既有訊號的頻率,以聆聽強度的變化。

這裡提供圖表所將顯示的訊號範例:

觀看習題解答 (別偷看喔!)

Exercise B:使用計數器與數位 I/O

Exercise Goal
使用 NI myDAQ 介面卡搭配 LED 與電阻器,於數位通訊埠上連續輸出二進制的數字。

必要硬體
1 組 NI myDAQ
8 組 LED 燈
8 組 330 Ω 電阻器
16 組接線
1 組麵包板 (選用)

考量重點

  • 根據通訊埠格式而使用數位輸出,以輸出數值。
  • 使用 Build Array 函式,將單一純量 (Scalar) 轉換為陣列,以輸入至 DAQ Assistant。
  • 針對各個數位通道,串聯電阻器與 LED 燈,以限制各組 LED 燈的電流。

觀看習題解答 (別偷看喔!)

Cumulative Exam:
LabVIEW 與 DAQ

了解自己對 LabVIEW 與 DAQ 的熟悉程度。建議先完成 LabVIEW Basic ConceptsLabVIEW Basic Tasks 之後,再接受此測驗。本測驗共有 26 題多重選擇題。

開始


Cumulative Project:LabVIEW 與 DAQ

透過 LabVIEW 與 DAQ 介面卡而擷取、處理、顯示資料,了解自己建立完整系統的實力。建議先完成 LabVIEW Basic ConceptsLabVIEW Basic Tasks 之後,再接受此方案。

開始