Measure Frequency Using NI Devices

This example shows how to measure frequency to determine rate of flow of fluid using a flow sensor. The sensor generates a digital signal with frequency that correlates to the rate of flow of fluid.

Create a Counter Input Channel

Use `daq` to create a DataAcquisition and `addinput` to add a counter input channel with `Frequency` measurement type. For this example, use CompactDAQ chassis NI c9178 and module NI 9402 with ID cDAQ1Mod5.

```dq = daq("ni"); ch = addinput(dq,"cDAQ1Mod5", "ctr0", "Frequency"); ch ```
```ch = Index Type Device Channel Measurement Type Range Name _____ ____ ___________ _______ ________________ _____ ________________ 1 "ci" "cDAQ1Mod5" "ctr0" "Frequency" "n/a" "cDAQ1Mod5_ctr0" ```

Determine the Terminal of the Counter Input Channel

To connect the input signal to the correct terminal, examine the `Terminal` property of the channel. The terminal is determined by the hardware.

```ch.Terminal ```
```ans = 'PFI1' ```

Measure Frequency

To determine if the counter is operational, input a single scan while the motor is rotating.

```read(dq) ```
```ans = timetable Time cDAQ1Mod5_ctr0 _____ ______________ 0 sec 100 ```

Monitor Frequency over Time

Use the hardware clock to acquire multiple counter measurements over time. NI counter devices require an external clock. By adding an analog input channel for a module on the same chassis, the session shares an internal clock with both modules.

```dq = daq("ni"); dq.Rate = 1; addinput(dq,"cDAQ1Mod1", "ai0", "Voltage"); addinput(dq,"cDAQ1Mod5", "ctr0", "Frequency"); data = read(dq, seconds(10)); plot(data.Time, data.cDAQ1Mod5_ctr0); ```