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