但 THT 電阻要將色環轉成數字再計算才知道電阻值
在下仍然只是新手,未能一看便知哪種色環的電阻適合
網上通常都是選定顏色後計算電阻值,但好像找不到輸入電阻值換成色環
因此在下編寫這個反向計算器,方便尋找對應色環的電阻
四環電阻 | 五環電阻 |
---|---|
程式源始碼
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>電阻色環反向計算器</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> <style type="text/css"> /*<!--*/ input#resistor-value { font-size: 20pt; font-family: "Courier New"; width: 200px; } /*-->*/ </style> <script type="text/javascript"> //<!-- window.addEventListener("load", function(){ changeColorRings(); }); var defaultColors = [ "000000", "880c0c", "ff0000", "ffa800", "ffff00", "008a00", "00008a", "ff00ff", "888888", "ffffff", "c0c800", "c8c8c8", null ]; var ranges = [ {"id": 8, "value": 0.0005}, {"id": 7, "value": 0.001}, {"id": 6, "value": 0.0025}, {"id": 5, "value": 0.005}, {"id": 1, "value": 0.01}, {"id": 2, "value": 0.02}, {"id": 10, "value": 0.05}, {"id": 11, "value": 0.1}, {"id": 12, "value": 0.2} ]; function getColorRings(value, length){ var ds = []; for (var i = 0; i < length; i++){ ds.push(0); } length -= 2; ds[length + 1] = 12; if (value > 0){ var v = value; if (v >= Math.pow(10, length)){ ds[length] = ("" + v).length - length; } for (var i = 0; i < length; i++){ var d = Math.pow(10, ds[length] + length - i - 1); ds[i] = Math.floor(v / d); v -= d * ds[i]; } value = v / value; } for (var i in ranges){ if (value < ranges[i].value){ ds[length + 1] = ranges[i].id - 0; break; } } return ds; } function trimDigit(value) { return (value.toFixed(3) - 0); } function changeColorRings(){ var value = document.getElementById("resistor-value").value; var indices; indices = getColorRings(value, 4); document.getElementById("resistor-4-1").setAttribute("fill", "#" + defaultColors[indices[0]]); document.getElementById("resistor-4-2").setAttribute("fill", "#" + defaultColors[indices[1]]); document.getElementById("resistor-4-3").setAttribute("fill", "#" + defaultColors[indices[2]]); document.getElementById("resistor-4-4").setAttribute("fill", "#" + defaultColors[indices[3]]); document.getElementById("resistor-4-4").setAttribute("fill-opacity", ((indices[3] == 12) ? 0 : 1)); indices = getColorRings(value, 5); document.getElementById("resistor-5-0").setAttribute("fill", "#" + defaultColors[indices[0]]); document.getElementById("resistor-5-1").setAttribute("fill", "#" + defaultColors[indices[1]]); document.getElementById("resistor-5-2").setAttribute("fill", "#" + defaultColors[indices[2]]); document.getElementById("resistor-5-3").setAttribute("fill", "#" + defaultColors[indices[3]]); document.getElementById("resistor-5-4").setAttribute("fill", "#" + defaultColors[indices[4]]); document.getElementById("resistor-5-4").setAttribute("fill-opacity", ((indices[4] == 12) ? 0 : 1)); } //--> </script> </head> <body> <div> <div> <input id="resistor-value" type="number" min="0" max="999000000000" step="1" value="0" oninput="changeColorRings();" onkeyup="changeColorRings();" onkeydown="changeColorRings();"/> </div> </div> <div> <svg xmlns="http://www.w3.org/2000/svg" version="1.2" width="600" height="112"> <g stroke-width="16.444"> <path d="m67.127 5.1048c-5.9195-2.7229-16.101-4.854-22.612-4.854h-32.676c-6.5115 0-11.839 5.3276-11.839 11.839v88.071c0 6.5234 5.3276 11.839 11.839 11.839h32.676c6.5115 0 16.693-2.2376 22.612-4.854l1.1839-0.58011c5.9195-2.723 16.101-4.854 22.612-4.854h118.15c6.5234 0 16.681 2.2376 22.6 4.854l1.1958 0.58011c5.9195 2.7229 16.077 4.854 22.612 4.854h32.676c6.5352 0 11.839-5.3158 11.839-11.839v-88.071c0-6.5115-5.3039-11.839-11.839-11.839h-32.676c-6.5352 0-16.693 2.2495-22.612 4.854l-1.1958 0.59198c-5.9195 2.7229-16.077 4.854-22.6 4.854h-118.15c-6.5115 0-16.693-2.2495-22.612-4.854z" fill="#d9b477"/> <g fill="#000000"> <path id="resistor-4-1" d="m73.388 7.4727c-1.8943-0.59196-3.6701-1.1839-5.0908-1.8943l-1.1839-0.59196c-5.9195-2.7111-16.101-4.854-22.612-4.854h-1.4207v111.75h1.4207c6.5115 0 16.693-2.2376 22.612-4.854l1.1839-0.58011c1.4207-0.73402 3.1965-1.3141 5.0908-1.8943z"/> <rect id="resistor-4-2" x="103.87" y="10.541" width="30.427" height="91.05"/> <rect id="resistor-4-3" x="163.87" y="10.541" width="30.427" height="91.05"/> <rect id="resistor-4-4" x="260.68" y=".13205" width="11.56" height="111.75" fill-opacity="0"/> </g> <rect x="260.68" y="9.8404" width="11.555" height="12.313" fill="#ffffff" fill-opacity=".5"/> </g> <g stroke-width="16.444" transform="translate(300,0)"> <path d="m67.127 5.1048c-5.9195-2.7229-16.101-4.854-22.612-4.854h-32.676c-6.5115 0-11.839 5.3276-11.839 11.839v88.071c0 6.5234 5.3276 11.839 11.839 11.839h32.676c6.5115 0 16.693-2.2376 22.612-4.854l1.1839-0.58011c5.9195-2.723 16.101-4.854 22.612-4.854h118.15c6.5234 0 16.681 2.2376 22.6 4.854l1.1958 0.58011c5.9195 2.7229 16.077 4.854 22.612 4.854h32.676c6.5352 0 11.839-5.3158 11.839-11.839v-88.071c0-6.5115-5.3039-11.839-11.839-11.839h-32.676c-6.5352 0-16.693 2.2495-22.612 4.854l-1.1958 0.59198c-5.9195 2.7229-16.077 4.854-22.6 4.854h-118.15c-6.5115 0-16.693-2.2495-22.612-4.854z" fill="#7bc6b8"/> <g fill="#000000"> <path id="resistor-5-0" d="m73.388 7.4727c-1.8943-0.59196-3.6701-1.1839-5.0908-1.8943l-1.1839-0.59196c-5.9195-2.7111-16.101-4.854-22.612-4.854h-1.4207v111.75h1.4207c6.5115 0 16.693-2.2376 22.612-4.854l1.1839-0.58011c1.4207-0.73402 3.1965-1.3141 5.0908-1.8943z"/> <rect id="resistor-5-1" x="91.87" y="10.541" width="30.437" height="91.05"/> <rect id="resistor-5-2" x="136.87" y="10.541" width="30.437" height="91.05"/> <rect id="resistor-5-3" x="181.87" y="10.541" width="30.437" height="91.05"/> <rect id="resistor-5-4" x="260.68" y=".13205" width="11.56" height="111.75" fill-opacity="0"/> </g> <rect x="260.68" y="9.8404" width="11.555" height="12.313" fill="#ffffff" fill-opacity=".5"/> </g> </svg> </div> </body> </html>
最後在下都找到一個反向計算器,當然對方亦做得比在下的漂亮
有興趣可以比較一下
https://resistor.cherryjourney.pt/
沒有留言 :
張貼留言