h1 LED resistor calculator
p Input electric current value and diode working characteristics:
form
.line
label(for="#currentValue") Input's voltage:
input#sourceU(type="text", size="4", placeholder = "12")
.line
label(for = "#diodeU") Diode voltage:
input#diodeU(type = "text", size = "4", placeholder = "3")
.line
label(for = "#diodeI") Diode current (mA):
input#diodeI(type = "text", size = "4", placeholder = "20")
label#solution Your should use a resistor not less than #[strong 0 Ω] ;
View Compiled
// variables
$font-size: 18px;
body {
font-family: sans-serif;
font-size: 16px;
}
.line {
display: block;
& label {
width: 10em;
margin: .5em;
display: inline-block;
}
}
#solution {
font-size: 1.25em;
& strong {
color: #900;
font-size: 1.25em;
}
}
View Compiled
// DOM vars:
var diodeVoltage = document.getElementById("diodeU");
var inputVoltage = document.getElementById("sourceU");
var diodeCurrent = document.getElementById("diodeI");
var solutionR = document.getElementById("solution");
// Logic VARs:
var diode = {
voltage: Number(diodeVoltage.value),
current: Number(diodeCurrent.value)
};
var input = {
voltage: Number(inputVoltage.value)
};
var resistor = 0;
var omegaEnding = " \u03A9";
// initial settings with defaults
input.voltage === 0 ? input.voltage = 12 : input.voltage;
diode.current === 0 ? diode.current = 20 : diode.current;
diode.voltage === 0 ? diode.voltage = 3 : diode.voltage;
console.log("We have now:\n" + diode.voltage + "\n" + diode.current + "\n" + input.voltage);
// Logic
function calculateResistor() {
if (input.voltage <= diode.voltage) {
console.log("You can't use either input or such diode. Input voltage might be not less then " + diode.voltage + " \u03A9\n");
input.voltage = 12;
console.log(input.voltage);
resistor = Math.ceil((input.voltage - diode.voltage) * 1000 / diode.current);
console.log("Resistor calculated: " + resistor + " \u03A9\n");
solutionR.children[0].innerText = resistor + omegaEnding;
// make this rows red
} else {
console.log("Ok, input is bigger then diode, calculating...\n");
resistor = Math.ceil((input.voltage - diode.voltage) * 1000 / diode.current);
console.log("Resistor calculated: " + resistor + " \u03A9\n");
solutionR.children[0].innerText = resistor + omegaEnding;
}
}
calculateResistor();
inputVoltage.addEventListener("input", function(){
console.log("Catching the input.voltage change");
input.voltage = Number(inputVoltage.value);
console.log("input.voltage: " + input.voltage);
calculateResistor();
});
diodeVoltage.addEventListener("input", function(){
console.log("Catching the diode.voltage change");
diode.voltage = Number(diodeVoltage.value);
console.log("diode.voltage: " + diode.voltage);
calculateResistor();
});
diodeCurrent.addEventListener("input", function(){
console.log("Catching the diode.current change");
diode.current = Number(diodeCurrent.value);
console.log("diode.current: " + diode.current);
calculateResistor();
});
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.