Сгенерируйте и измерьте сигналы с аналоговыми устройствами ADALM1000

Обновленный синтаксис функций

Чтобы разместить 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); 

Смотрите также

Функции

Похожие темы

Внешние веб-сайты

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