Измерьте ширину импульса Используя устройства NI

Этот пример показывает, как измерить ширину активного высокого импульса. Датчик используется, чтобы измерить расстояние от точки. Ширина импульса коррелирует к фактическому измеренному расстоянию.

Создайте встречный входной канал

Создайте Сеанс DAQ и добавьте встречный входной канал с типом измерения PulseWidth. В данном примере используйте шасси NI c9178 CompactDAQ и модуль NI 9402 с ID cDAQ1Mod5.

s = daq.createSession('ni');
addCounterInputChannel(s,'cDAQ1Mod5', 'ctr0', 'PulseWidth');
s
s = 

Data acquisition session using National Instruments hardware:
   Will run for 1 second (1000 scans) at 1000 scans/second.
   Number of channels: 1
      index Type  Device   Channel MeasurementType Range Name
      ----- ---- --------- ------- --------------- ----- ----
      1     ci   cDAQ1Mod5 ctr0    PulseWidth      n/a
   

Определите терминал встречного входного канала

Чтобы соединить входной сигнал с правильным терминалом, исследуйте свойство Terminal канала. Терминал определяется оборудованием.

s.Channels(1).Terminal
ans =

  1×4 char array

PFI1

Измерьте расстояние

Чтобы определить, является ли счетчик операционным, вводит одно сканирование. Датчик вывел высокий импульс ширины 0,0010 секунды, соответствующие расстояние одного метра.

s.inputSingleScan() * 1000
ans =

     5

Измеряйте расстояние в зависимости от времени

Используйте аппаратные часы, чтобы получать несколько встречных измерений в зависимости от времени. Устройства счетчика NI требуют внешнего таймера. Путем добавления канала аналогового входа для модуля на том же шасси сеанс совместно использует внутренние часы с обоими модулями.

s = daq.createSession('ni');
addAnalogInputChannel(s,'cDAQ1Mod1', 0, 'Voltage');
addCounterInputChannel(s,'cDAQ1Mod5', 0, 'PulseWidth');
s.DurationInSeconds = 10;
s.Rate = 1;
[data, time] = s.startForeground();
plot(time, data(:,2)*1000);

Для просмотра документации необходимо авторизоваться на сайте