Чтобы разместить ADALM1000, следующие функции Data Acquisition Toolbox™ позволяют специфичные для поставщика опции аргумента:
daq.createSession
принимает аргумент 'adi'
поставщика.
addAnalogInputChannel
и addAnalogOutputChannel
принимают, что аргумент 'SMU1'
имени устройства (модуль исходного измерения) и аргументы ID канала 'A'
и 'B'
соответствуют меткам канала на модуле ADALM1000.
Этот пример показывает, как получить напряжение при измерении текущий на том же канале, чтобы вычислить нагрузочное сопротивление. Первая программа ADALM1000, чтобы предоставить постоянное 5-вольтовое предоставление загрузке, и затем измерить ток на том же канале устройства.
Настройте сеанс Data Acquisition Toolbox, чтобы управлять ADALM100.
s = daq.createSession('adi');
Задайте канал аналогового выхода на сеансе, чтобы получить напряжение от канала устройства A
.
addAnalogOutputChannel(s,'SMU1','A','Voltage');
Задайте канал аналогового входа на сеансе, чтобы измериться текущий на том же самом канале устройства A
.
addAnalogInputChannel(s,'SMU1','A','Current');
Сгенерируйте выходное напряжение и измерьте ток.
V_load = 5;
outputSingleScan(s,V_load);
I_load = inputSingleScan(s);
outputSingleScan(s,0); % Reset device output.
R_load = V_load/I_load
R_load = 50.3005
ADALM1000 продолжает генерировать последнее значение, запрограммированное, пока вы не выпускаете сеанс. Когда вы будете закончены со своими сигналами, сбросьте устройство, чтобы вывести 0 вольт.
Этот пример показывает, как сгенерировать 1 миллисекунду, импульс на 5 вольт, окруженный с обеих сторон 10 миллисекундами на уровне 0 вольт.
pdata = zeros(2100,1); % Column vector of 2100 samples. pdata (1001:1100) = 5; % Pulse in middle of vector. s = daq.createSession('adi'); addAnalogOutputChannel(s,'SMU1','B','Voltage'); queueOutputData(s,pdata); s % View channel configuration and scan settings.
s = Data acquisition session using Analog Devices Inc. hardware: Will run for 2100 scans (0.021 seconds) at 100000 scans/second. Number of channels: 1 index Type Device Channel MeasurementType Range Name ----- ---- ------ ------- ------------------- --------------- ---- 1 ao SMU1 B Voltage (SingleEnd) 0 to +5.0 Volts
startForeground(s);
Этот пример показывает, как одновременно сгенерировать прямоугольную волну на 1 кГц на канале A, и синусоида на 100 Гц на канале B. Каждый вывод длится в течение 5 секунд.
Пример требует двух каналов сеанса для каналов устройства A и B, оба, когда вывод образовывает канал для напряжения.
s = daq.createSession('adi'); addAnalogOutputChannel(s,'SMU1','A','Voltage'); addAnalogOutputChannel(s,'SMU1','B','Voltage');
Задайте эти две формы волны.
Sq = zeros(500000,1); % 500k sample column vectors Sw = zeros(500000,1); % Define square wave: for r = 1:100:499900; Sq(r:r+49) = 5; % Set first 50 of each 100 samples to 5 v. end % Define sine wave: for a = 1:500000 Sw(a) = sin(a*2*pi/1000); end Sw = Sw + 1; % Shift for positive voltage output queueOutputData(s,[Sq Sw]) s % View channel configuration and scan settings.
s = Data acquisition session using Analog Devices Inc. hardware: Will run for 500000 scans (5 seconds) at 100000 scans/second. Number of channels: 2 index Type Device Channel MeasurementType Range Name ----- ---- ------ ------- ------------------- --------------- ---- 1 ao SMU1 A Voltage (SingleEnd) 0 to +5.0 Volts 2 ao SMU1 B Voltage (SingleEnd) 0 to +5.0 Volts
Запустите генерацию, которая длится в течение 5 секунд.
startForeground(s);
addAnalogInputChannel
| addAnalogOutputChannel
| daq.createSession
| inputSingleScan
| outputSingleScan
| startForeground