Этот пример показывает вам, как синхронно сгенерировать и получить данные о напряжении на уровне 300 кГц.
Узнайте устройства Digilent, соединенные к вашей системе с помощью daqlist
daqlist("digilent")
ans =
1×4 table
DeviceID Description Model DeviceInfo
________ _____________________________________________ ____________________ _______________________
"AD1" "Digilent Inc. Analog Discovery 2 Kit Rev. C" "Analog Discovery 2" [1×1 daq.di.DeviceInfo]
Узнайте устройства Digilent, соединенные к вашей системе с помощью daqlist
dq = daq("digilent")
dq =
DataAcquisition using Digilent Inc. hardware:
Running: 0
Rate: 10000
NumScansAvailable: 0
NumScansAcquired: 0
NumScansQueued: 0
NumScansOutputByHardware: 0
RateLimit: []
Show channels
Show properties and methods
Добавьте канал аналогового выхода с помощью перечисленного устройства Digilent с ID AD1, ID канала 1, и тип измерения Voltage.
addoutput(dq, "AD1", "1", "Voltage"); addoutput(dq, "AD1", "2", "Voltage"); ch_out = dq.Channels(1:2); ch_out(1).Name = "AD1_1_out"; ch_out(2).Name = "AD1_2_out"
ch_out =
Index Type Device Channel Measurement Type Range Name
_____ ____ ______ _______ _____________________ ____________________ ___________
1 "ao" "AD1" "1" "Voltage (SingleEnd)" "-5.0 to +5.0 Volts" "AD1_1_out"
2 "ao" "AD1" "2" "Voltage (SingleEnd)" "-5.0 to +5.0 Volts" "AD1_2_out"
Добавьте канал аналогового входа с тем же устройством и типом измерения Voltage.
addinput(dq, "AD1", "1", "Voltage"); addinput(dq, "AD1", "2", "Voltage"); ch_in = dq.Channels(3:4); ch_in(1).Name = "AD1_1_in"; ch_in(2).Name = "AD1_2_in"
ch_in =
Index Type Device Channel Measurement Type Range Name
_____ ____ ______ _______ ________________ __________________ __________
1 "ai" "AD1" "1" "Voltage (Diff)" "-25 to +25 Volts" "AD1_1_in"
2 "ai" "AD1" "2" "Voltage (Diff)" "-25 to +25 Volts" "AD1_2_in"
Установите скорость генерации на 300 кГц.
rate = 300e3;
dq.Rate = rate;
% Specify a 10 Hz sine wave for 1 second.
f = 10;
totalduration = 1;
n = totalduration * rate;
t = (1:n)/rate;
output = sin(2*pi*f*t)';
Сгенерируйте синусоиду с амплитудой 1 В на канале 1 и амплитудой 2 В на канале 2 и получите данные, к которым добавляют метку времени, на том же уровне.
[data, startTime] = readwrite(dq, [output 2*output]);
plot(data.Time, data.AD1_1_in, data.Time, data.AD1_2_in); xlabel('Time (s)'); ylabel('Voltage (V)'); title(['Clocked Data Triggered at: ' datestr(startTime)])
