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

В этом примере показано, как сгенерировать ширину импульса модулируемый сигнал управлять шаговым двигателем.

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

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

s = daq.createSession('ni');
addAnalogInputChannel(s,'cDAQ1Mod1', 0, 'Voltage');
addCounterOutputChannel(s,'cDAQ1Mod5', 0, 'PulseGeneration');
s
s = 

Data acquisition session using National Instruments hardware:
   Will run for 1 second (1000 scans) at 1000 scans/second.
   Number of channels: 2
      index Type  Device   Channel MeasurementType      Range       Name
      ----- ---- --------- ------- --------------- ---------------- ----
      1     ai   cDAQ1Mod1 ai0     Voltage (Diff)  -10 to +10 Volts
      2     co   cDAQ1Mod5 ctr0    PulseGeneration n/a
   

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

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

s.Channels(2).Terminal
ans =

  1×4 char array

PFI0

Синхронизированный встречный Выход

Используйте встречный выходной канал 0, чтобы сгенерировать фиксированную ширину импульса модулируемый сигнал на терминале PFI0. Инициируйте двигатель после 0,5 секунд с 75%-м рабочим циклом.

ch = s.Channels(2);
ch.Frequency = 10;
ch.InitialDelay = 0.5;
ch.DutyCycle = 0.75;
s.Rate = 1000;
s.DurationInSeconds = 1;

% StartForeground returns data for input channels only. The data variable
% will contain one column of data.
[data, time] = s.startForeground();
plot(time, data);