How do I register/record analog input using a DAQ device?
1 次查看(过去 30 天)
显示 更早的评论
I would like to record the stimulator output with a DAQ device to verify the correctness of the stimulation sequences.
With the below code I tried to collect 1000 datapoints per second for 5 seconds which should result in a total of 5000 datapoints. These datapoints should be saved in a recording.csv file. However, I never get more than 100 datapoints. Why is that and how can I succeed in collecting data for a specific amount of time (in seconds) at a high rate (min. 1000)?
I am using MATLAB 2016b.
DAQ_device = daq.getDevices;
devId = DAQ_device.ID;
stimFlags = daq.createSession('ni');
stimFlags.addAnalogInputChannel(devId,'ai0','Voltage');
stimFlags.addAnalogInputChannel(devId,'ai1','Voltage');
stimFlags.Rate = 1000
stimFlags.DurationInSeconds = 5
fid = fopen('recording.csv','w');
lh = stimFlags.addlistener('DataAvailable',@(src,event)saveData(fid,event));
stimFlags.startBackground();
stimFlags.wait()
fclose('all');
0 个评论
采纳的回答
Mario Malic
2023-9-25
How does your saveData function look like? Most likely, you need to open your file in append mode. Every time you write, data just gets overwritten and you end up with incomplete data.
Session object that you are using will try to acquire 10% of the Rate (by default) in each reading, which you can change with specific property which is I believe irrelevant in your case.
You don't need to use stimFlags.wait() unless you are doing something with signal immediately after the acquisition is completed.
5 个评论
Mario Malic
2023-9-27
编辑:Mario Malic
2023-9-27
Oh, I am so blind here, you don't need to close the file in the saveData function, remove this line.
fclose(fid);
Also, you can set breakpoints into that function and adjust the code so the function can write the data correctly into the file.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Data Acquisition Toolbox Supported Hardware 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!