Этот пример показывает, как получить спектр источника флуоресцентного света от спектрометра Ocean Optics.
Instrument Control Toolbox™ поддерживает связь с инструментами через высокоуровневые драйверы. В этом примере можно получить спектр от спектрометра Ocean Optics с помощью драйвера прибора MATLAB.
Этот пример требует следующего:
64-разрядная версия Microsoft ® Windows ®
Спектрометр Ocean Optics USB2000
spectrometerObj = icdevice('OceanOptics_OmniDriver.mdd');
connect(spectrometerObj); disp(spectrometerObj)
NatUSB_64 Driver: NatUSBWin_64 Instrument Device Object Using Driver : OceanOptics_OmniDriver.mdd Instrument Information Type: Spectrometer Manufacturer: Ocean Optics Model: QE65 Pro, Maya2000 Pro, Jaz EL350, HR2000, USB2000, USB4000, NIRQuest Driver Information DriverType: MATLAB generic DriverName: OceanOptics_OmniDriver.mdd DriverVersion: 1.0 Communication State Status: open
% integration time for sensor. integrationTime = 50000; % Spectrometer index to use (first spectrometer by default). spectrometerIndex = 0; % Channel index to use (first channel by default). channelIndex = 0; % Enable flag. enable = 1;
% Get number of spectrometers connected. numOfSpectrometers = invoke(spectrometerObj, 'getNumberOfSpectrometersFound'); disp(['Found ' num2str(numOfSpectrometers) ' Ocean Optics spectrometer(s).']) % Get spectrometer name. spectrometerName = invoke(spectrometerObj, 'getName', spectrometerIndex); % Get spectrometer serial number. spectrometerSerialNumber = invoke(spectrometerObj, 'getSerialNumber', spectrometerIndex); disp(['Model Name : ' spectrometerName]) disp(['Model S/N : ' spectrometerSerialNumber])
Found 1 Ocean Optics spectrometer(s). Model Name : USB2000+ Model S/N : USB2+H11505
% Set integration time. invoke(spectrometerObj, 'setIntegrationTime', spectrometerIndex, channelIndex, integrationTime); % Enable correct for detector non-linearity. invoke(spectrometerObj, 'setCorrectForDetectorNonlinearity', spectrometerIndex, channelIndex, enable); % Enable correct for electrical dark. invoke(spectrometerObj, 'setCorrectForElectricalDark', spectrometerIndex, channelIndex, enable);
wavelengths = invoke(spectrometerObj, 'getWavelengths', spectrometerIndex, channelIndex); % Get the wavelengths of the first spectrometer and save them in a double % array. spectralData = invoke(spectrometerObj, 'getSpectrum', spectrometerIndex);
plot(wavelengths, spectralData); title('Optical Spectrum'); ylabel('Intensity (counts)'); xlabel('\lambda (nm)'); grid on axis tight
disconnect(spectrometerObj); delete (spectrometerObj);