Получение и генерация данных одновременно с Digilent® Analog Discovery™

Этот пример покажет вам, как синхронно сгенерировать и получить данные о напряжении (на уровне 300 кГц). Вы будете использовать основанный на сеансе интерфейс с Аналоговым оборудованием Открытия Digilent.

Создайте сеанс с устройством Digilent

Узнайте устройства Digilent, соединенные к вашей системе с помощью daq.getDevices, и создайте сеанс с помощью перечисленного устройства Digilent.

s = daq.createSession('digilent')
s = 

Data acquisition session using Digilent Inc. hardware:
   Will run for 1 second (10000 scans) at 10000 scans/second.
   No channels have been added.
   

Добавьте канал аналогового выхода

Добавьте канал аналогового выхода с ID устройства AD1 и ID канала 1. Установите тип измерения на Voltage.

ch_out = addAnalogOutputChannel(s,'AD1', 1, 'Voltage')
ch_out = 

Data acquisition analog output voltage channel '1' on device 'AD1':

 TerminalConfig: SingleEnded
          Range: -5.0 to +5.0 Volts
           Name: ''
             ID: '1'
         Device: [1x1 daq.di.DeviceInfo]
MeasurementType: 'Voltage'


Добавьте канал аналогового входа

Добавьте канал аналогового входа с ID устройства AD1 и ID канала 1. Установите тип измерения на Voltage.

ch_in = addAnalogInputChannel(s,'AD1', 1, 'Voltage')
ch_in = 

Data acquisition analog input voltage channel '1' on device 'AD1':

       Coupling: DC
 TerminalConfig: Differential
          Range: -25 to +25 Volts
           Name: ''
             ID: '1'
         Device: [1x1 daq.di.DeviceInfo]
MeasurementType: 'Voltage'


Установите свойства канала и сеанс

Установите скорость генерации (300 кГц).

rate = 300e3;
s.Rate = rate;

Задайте выходную форму волны

Сгенерируйте синусоиду на 10 Гц в течение 1 секунды.

f = 10;
duration = 1;
t = (1:(duration*rate))/rate;
output = sin(2*pi*f*t)';

Сгенерируйте / Получают текущие данные

Сгенерируйте поставленные в очередь данные и получите данные, к которым добавляют метку времени, на переднем плане. Для любого данного сеанса, генерации и приобретения, запущенного на том же уровне.

queueOutputData(s,output);
[data, timestamps, triggerTime] = startForeground(s);

Отобразите результаты

plot(timestamps, data);
xlabel('Time (seconds)'); ylabel('Voltage (Volts)');
title(['Clocked Data Triggered on: ' datestr(triggerTime)])

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