ADC Resolution & Output Calculator

Resolution Calculator

V
mV

Analog Voltage from ADC Counts

V
mV


function calculateADCResolution() {
const bits = parseInt(document.getElementById(“adcBits”).value);
const vRef = parseFloat(document.getElementById(“vRef”).value);
const unit = parseFloat(document.getElementById(“vRefUnit”).value);

if (isNaN(bits) || isNaN(vRef) || bits < 1) {
document.getElementById("adcResult").innerText = "Please enter valid ADC bits and reference voltage.";
return;
}

const refVoltage = vRef * unit;
const resolution = refVoltage / Math.pow(2, bits);

let displayUnit = "V";
let value = resolution;

if (resolution < 1e-3) {
value = resolution * 1e6;
displayUnit = "µV";
} else if (resolution < 1) {
value = resolution * 1e3;
displayUnit = "mV";
}

document.getElementById("adcResult").innerText =
`Resolution per step: ${value.toFixed(3)} ${displayUnit}`;
}

function calculateAnalogFromADC() {
const adcVal = parseInt(document.getElementById("adcValue").value);
const bits = parseInt(document.getElementById("adcBits2").value);
const vRef = parseFloat(document.getElementById("vRef2").value);
const unit = parseFloat(document.getElementById("vRefUnit2").value);

if (isNaN(adcVal) || isNaN(bits) || isNaN(vRef) || bits maxVal || adcVal < 0) {
document.getElementById("analogResult").innerText = `ADC value should be between 0 and ${maxVal}.`;
return;
}

const refVoltage = vRef * unit;
const analog = (adcVal / maxVal) * refVoltage;

let displayUnit = "V";
let value = analog;

if (analog < 1e-3) {
value = analog * 1e6;
displayUnit = "µV";
} else if (analog < 1) {
value = analog * 1e3;
displayUnit = "mV";
}

document.getElementById("analogResult").innerText =
`Analog voltage: ${value.toFixed(3)} ${displayUnit}`;
}

function resetResults() {
document.getElementById("adcResult").innerText = '';
document.getElementById("analogResult").innerText = '';
}


(adsbygoogle = window.adsbygoogle || []).push({});