Files
Agilent-34405A-MATLAB-Library/README.md
Nathan Chordas-Ewell 085c1cb49d Add README for Agilent34405A MATLAB Driver
Added documentation for Agilent34405A MATLAB Instrument Driver, including requirements, installation instructions, usage examples, supported measurement modes, configuration utilities, properties, and notes.
2026-02-23 02:00:04 -05:00

130 lines
3.3 KiB
Markdown

# Agilent34405A — MATLAB Instrument Driver
A MATLAB class for controlling the **Agilent 34405A bench multimeter** over USB/VISA. Provides a clean, object-oriented interface for all major measurement modes, configuration, and instrument lifecycle management.
---
## Requirements
- MATLAB with the **Instrument Control Toolbox**
- **NI-VISA** driver installed
- `Agilent34405AStates` enumeration class (companion file)
---
## Installation
1. Clone or download this repository.
2. Add the folder to your MATLAB path:
```matlab
addpath('/path/to/Agilent34405A');
```
3. Ensure the multimeter is connected via USB and recognized by NI-VISA.
---
## Quick Start
```matlab
% Instantiate — automatically finds the instrument via USB
dmm = Agilent34405A();
% Read DC voltage
v = dmm.readDCV();
% Read AC current
i = dmm.readACI();
% Read temperature
t = dmm.readTemp();
% Clean up when done
dmm.deInit();
```
---
## Supported Measurement Modes
| Method | Description |
|---|---|
| `readDCV()` | DC Voltage |
| `readACV()` | AC Voltage |
| `readDCI()` | DC Current |
| `readACI()` | AC Current |
| `readTemp()` | Temperature |
| `read2WRes()` | 2-Wire Resistance |
| `readCont()` | Continuity |
| `readDiode()` | Diode Test |
| `readCapacitance()` | Capacitance |
| `readFrequency()` | Frequency |
| `readPeriod()` | Period |
| `scan()` | Scan mode |
All measurement methods automatically switch the instrument to the correct mode if it isn't already configured.
---
## Configuration & Utilities
### Set Measurement Scale
```matlab
% obj.setScale(state_string, [resolution, range])
dmm.setScale('VOLT:DC', [0.001, 10]);
```
### Trigger & Sample Settings
```matlab
dmm.sampleCount = 20; % Number of samples (default: 10)
dmm.triggerCount = 4; % Trigger count (default: 1)
dmm.setSampleCount(); % Apply sample count to instrument
dmm.setTriggerCount(); % Apply trigger count to instrument
dmm.setTriggerSource('BUS'); % Set trigger source
```
### Send Arbitrary SCPI Command
```matlab
% Automatically reads response if command contains '?'
response = dmm.sendCommand('VOLT:DC:RANG?');
dmm.sendCommand('DISP:TEXT "Hello"');
```
### Other Utilities
```matlab
dmm.getConfig() % Query current instrument configuration
dmm.selfTest() % Run built-in self-test and print result
dmm.reset() % Send *RST to instrument
dmm.setBeep(true) % Enable/disable beeper
dmm.setLocal() % Return front-panel control to user
dmm.approxTime(state) % Benchmark acquisition time for a given state
dmm.deInit() % Cleanly close and release the VISA connection
```
---
## Properties
| Property | Default | Description |
|---|---|---|
| `visaAddress` | *(auto-detected)* | USB/VISA address of the instrument |
| `state` | `DCV` | Current measurement mode |
| `numSamples` | `512` | Internal sample buffer size |
| `sampleCount` | `10` | Samples per trigger sent to instrument |
| `triggerCount` | `8` | Number of triggers |
---
## Notes
- The constructor **automatically detects** the instrument address using `instrhwinfo('visa','ni')` — no manual address configuration needed.
- The beeper is **silenced on startup** by default.
- `deInit()` should always be called when finished to cleanly release the VISA resource.
---
## License
MIT License — see [LICENSE](LICENSE) for details.