exponenta event banner

Сгенерируйте ширину импульса модулируемые сигналы Используя устройства 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);