Этот пример показывает, как получить спектр источника люминесцентной лампы от Океанского Спектрометра Оптики.
Instrument Control Toolbox™ поддерживает связь с инструментами через высокоуровневые драйверы. В этом примере можно получить спектр от Океанского Спектрометра Оптики с помощью Инструментального Драйвера MATLAB.
Этот пример требует следующего:
64-битный Microsoft® Windows®
Океанский спектрометр Оптики 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);