Mathworks MATLAB 從第一代的 Analog Discovery 即開始相互支援合作。目前在 R2018a 版本的 Data Acquisition Toolbox 可支援 第二代的 Analog Discovery 2,可讓您在 MATLAB 中執行以下任務:
- 從兩個示波器通道讀取數據(模擬輸入)
- 從兩個波形產生器控制並產生數據(模擬輸出)
- 調整 Analog Discovery 2的擷取率
- 查找並顯示 Analog Discovery 2 設置
Mathworks 的原廠頁面內有說明如何以300 kHz的速率擷取電壓數據 (輸入波形是由外部函數發生器提供的正弦波 10Hz / 2Vpp)。
為 Digilent 設備創建 DataAcquisition
使用來發現連接到系統的Digilent設備daqlist
。
daqlist(“ digilent”) dq = daq(“ 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] 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
添加模擬輸入通道
添加具有設備IDAD1
和通道ID的模擬輸入通道1
。將測量類型設置為Voltage
。
ch_in = addinput(dq, "AD1", "1", "Voltage");
設置數據獲取和通道屬性
將採集速率設置為300 kHz,並將輸入信號的動態範圍設置為-2.5至2.5伏。
ch_in.Name = "AD1_1_in" rate = 300e3; dq.Rate = rate; ch_in.Range = [-2.5 2.5];
ch_in = Index Type Device Channel Measurement Type Range Name _____ ____ ______ _______ ________________ __________________ __________ 1 "ai" "AD1" "1" "Voltage (Diff)" "-25 to +25 Volts" "AD1_1_in"
擷取單次樣本
按需獲取單次掃描,顯示數據和触發時間。
singleReading = timetable Time AD1_1_in _____ ________ 0 sec -0.37211 startTime = datetime 21-Nov-2019 16:56:50.631
獲取帶有時間戳的數據
採集一組時鐘數據一秒鐘。
[data, startTime] = read(dq, seconds(1));
繪製獲取的數據
plot(data.Time, data.AD1_1_in); xlabel('Time (s)'); ylabel('Voltage (V)'); title(['Clocked Data Triggered on: ' datestr(startTime)]);
更多說明請參考 Mathworks 原廠頁面