Turinys:
- 1 žingsnis: fonas
- 2 žingsnis: įėjimai
- 3 žingsnis: rezultatas
- 4 žingsnis: supraskite savo rezultatą
- 5 žingsnis: daugiau projektų
- 6 žingsnis: šaltinio kodas
Video: Kaip pasiekti bet kokį pasipriešinimą/talpą naudojant jau turimus komponentus !: 6 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:44
Tai ne tik dar viena serijos/lygiagretaus ekvivalento pasipriešinimo skaičiuoklė! Ši programa apskaičiuoja, kaip sujungti rezistorius/kondensatorius, kuriuos šiuo metu turite, kad pasiektumėte reikiamą varžos/talpos vertę.
Ar jums kada nors reikėjo konkretaus rezistoriaus ar kondensatoriaus, kurio neturite arba kurio nėra? Nebijoti! Jūs tikriausiai galite nustatyti tą konkrečią varžos ar talpos vertę naudodami jau turimus komponentus. Užuot išsprendę didžiulę daugiapakopę optimizavimo problemą su milijonais skirtingų derinių, naudokite šią programą!
Tiesiog pasirinkite rezistorių arba kondensatorių, įveskite tikslinę vertę, įveskite maksimalų norimų naudoti komponentų skaičių, įveskite turimų komponentų verčių sąrašą ir spustelėkite apskaičiuoti! Programa išspjaus, kokius komponentus naudoti ir kaip juos prijungti, kad būtų pasiekta jūsų tikslinė vertė.
Norėdami išbandyti skaičiuotuvą, apsilankykite šioje žiniatinklio programoje.
Norėdami peržiūrėti šaltinio kodą, apsilankykite šioje „Github“saugykloje.
Praneškite man, jei turite pasiūlymų, kaip dar labiau pagerinti šio dizaino įrankio naudojimą!
1 žingsnis: fonas
Ši žiniatinklio programa buvo sukurta iš būtinybės. Yra daug skirtingų mano sukurtų grandinių, kurioms reikalingas labai specifinis rezistorius arba kondensatorius. Daug kartų aš neturiu tokios konkrečios vertės rezistoriaus ar kondensatoriaus. Kartais jie net nesudaro tos unikalios vertės komponento! Užuot atsisakęs ar susitaikęs su tuo, kas yra mažiau nei idealu, nusprendžiau parašyti programą, kuri apžvelgtų kiekvieną įmanomą rezistorių derinį (visas įmanomas vertes ir ar jie yra nuosekliai, ar lygiagrečiai) ir grąžintų geriausią derinį.
Kurdamas savo vargonų grandinę kaip savo „Band of Bands Instructable Project“dalį, turėjau pabandyti ranka apskaičiuoti geriausią kondensatorių derinį, kad pasiekčiau tam tikrą dažnį. Šis procesas buvo neįtikėtinai varginantis, ir aš galiausiai tiesiog pasidaviau ir pradėjau naudoti kondensatorių derinius, kurie sukėlė bet kokį garsinį dažnį. Dabar su šia žiniatinklio programa galiu suprojektuoti savo organą pagal tam tikrą dažnį ir suderinti jį su klaviatūros natomis! Žemiau pateikta lygtis naudojama konkrečiam dažniui apskaičiuoti ir yra aptariama kitame „Instructables“projekte.
f = 1 / (0,693 × C × (R1 + 2 × R2))
Naudodamas šią lygtį, kur R1 = 100 kOhm ir R2 = 10 kOhm, apskaičiavau, kad 27,33 nF kondensatorius pagamins A4 natą (dažnis 440 Hz). Naudodamas savo programą, aš galėjau apskaičiuoti lygiavertę talpos reikšmę.001 nF (daug mažesnė nei standartinio kondensatoriaus tolerancija), kurią galiu sukurti naudojant kondensatorius, kuriuos jau turėjau. Gautas išėjimas ir konfigūracija aprašyti žemiau. Dabar galiu daug efektyviau ir efektyviau sureguliuoti savo organą pagal tikslius standartinių natų dažnius. Norėčiau, kad iš pradžių tai padariau. Mano demonstracinė daina vargonuose tikriausiai būtų skambėjusi daug geriau.
Artimiausia vertė: 27.329 nF Skirtumas: 0.001 nFC kondensatoriaus konfigūracija: C0 = 0.068 nF || C1 = 30 nF + C2 = 300 nF
Rezistorių kondensatorių ekvivalentiškumo lygtys
Žemiau pateikiamos rezistorių ir kondensatorių sujungimo grandinėje lygiavertiškumo lygtys.
- Rezistoriai nuosekliai (R1 + R2): Req = R1 + R2
- Rezistoriai lygiagrečiai (R1 || R2): Req = 1/(1/R1 + 1/R2)
- Kondensatoriai nuosekliai (C1 + C2): Ceq = 1/(1/C1 + 1/C2)
- Kondensatoriai lygiagrečiai (C1 || C2): Ceq = C1 + C2
2 žingsnis: įėjimai
Turite pateikti 4 įvestis:
- Nesvarbu, ar apskaičiuojate rezistoriaus ar kondensatoriaus vertę.
- Tikslinė varžos arba talpos vertė ir vienetai.
- Maksimalus komponentų skaičius, kurį norėtumėte naudoti, kad pasiektumėte tikslinę vertę (t. Y. Nenorėčiau naudoti daugiau kaip 3 rezistorių, kad pasiekčiau savo tikslinę varžos vertę).
- Šiuo metu turimų rezistorių/kondensatorių verčių sąrašas. Šios vertės turėtų būti vienodos su jūsų tiksline verte (t. Y. Jei jūsų tikslinė vertė buvo 110 nF, visos jūsų vertės turėtų būti pateiktos nF).
3 žingsnis: rezultatas
Jūs gausite 3 rezultatus, kad gautumėte rezultatą:
- Artimiausia vertė - artimiausia pasipriešinimo/talpos vertė, kurią galėjote pasiekti naudodami savo parametrus.
- Skirtumas - kiek toli buvo jūsų artimiausia vertė nuo tikslinės vertės.
- Rezistorių/kondensatorių konfigūracija - naudojamų rezistorių/kondensatorių verčių ir jų konfigūracijos sąrašas.
4 žingsnis: supraskite savo rezultatą
Konfigūracijos išvestyje naudojama standartinė žymė. „+“reiškia, kad komponentai yra nuosekliai ir „||“reiškia, kad komponentai yra lygiagrečiai. Operatoriai turi vienodą pirmenybę ir yra asociatyvūs iš kairės į dešinę, o tai reiškia, kad jūs sugrupuojate terminus, pradedant nuo kairės ir judant į dešinę.
Pavyzdžiui, pažvelkite į šį rezultatą:
Rezistoriaus konfigūracija: R0 = 15 omų + R1 = 470 omų || R2 = 3300 omų + R3 = 15000 omų
Jei laikysitės aukščiau aptartų gairių, pamatysite, kad tai atitinka pirmiau pateiktą lygtį ir paveikslėlį.
((R0+R1) || R2)+R3
5 žingsnis: daugiau projektų
Daugiau projektų rasite mano puslapiuose:
- https://dargen.io/
- https://github.com/mjdargen
- https://www.instructables.com/member/mjdargen/
6 žingsnis: šaltinio kodas
Norėdami peržiūrėti šaltinio kodą, apsilankykite šioje „Github“saugykloje arba peržiūrėkite žemiau esantį „JavaScript“.
/* --------------------------------------------------------------- */
/* r/c skaičiuoklės scenarijus*//* --------------------------------------- -------------------------*/ var artimiausias_valis; // artimiausia reikšmė kol kas var artimiausias_difas = 1000000,00; // skirtumas val ir tikslinis var artimiausias = ; // masyvas detalizuojantis komponentų reikšmes var ser_par_config = ; // masyvas, detalizuojantis serijinį/lygiagretųjį var outputStr = ""; function calculatorClick () {// išvalykite kiekvieno naujo paspaudimo globalias reikšmes close_val = 0; artimiausias_difas = 1000000,00; artimiausias = ; ser_par_config = ; var resultDisplay = document.getElementById ("resultRow"); var exampleDisplay = document.getElementById ("exampleRow"); var calcOutput = document.getElementById ("calcOutput"); var targetTextObj = document.getElementById ('targetText'); var numCompTextObj = document.getElementById ('numCompText'); var compValsTextObj = document.getElementById ('compValsText'); var target = parseFloat (targetTextObj.value); var numComp = parseInt (numCompTextObj.value); var compValsStr = compValsTextObj.value; var compVals = ; compVals [0] = ""; var i = 0; var errFlag = 0; // klaida analizuojant tikslinę vertę, jei (isNaN (tikslas)) {outputStr = "Klaidos tikrinimas 'Įvesties tikslinė vertė!"} // klaida analizuojant komponentų skaičių else if (isNaN (numComp)) {outputStr = "Klaidos tikrinimas „Komponentų skaičius“! “} // else, jei nėra klaidos taikinyje arba numComp else if (! IsNaN (target) &&! IsNaN (numComp)) {while (compValsStr.indexOf (", ")! = -1) {var kablelis = compValsStr.indexOf (","); var newInt = parseFloat (compValsStr.substring (0, kablelis)); // klaida analizuojant komponentų verčių sąrašą, nustatykite vėliavą, jei (isNaN (newInt)) {errFlag = 1; pertrauka; } compValsStr = compValsStr.substring (kablelis+1, compValsStr.length); compVals = newInt; i ++; } var newInt = parseFloat (compValsStr); // klaida analizuojant komponentų verčių sąrašą, nustatykite vėliavą, jei (isNaN (newInt)) {errFlag = 1; } compVals = newInt; if (errFlag == 0) {if (document.getElementById ("resRadio"). pažymėta) {rezistorius (target, numComp, compVals); } else if (document.getElementById ("capRadio"). pažymėtas) {kondensatorius (tikslas, numComp, compVals); }} // klaida analizuojant komponentų verčių sąrašą else {outputStr = "Klaidų tikrinimas 'Component Values List' input!"}} calcOutput.innerHTML = outputStr; resultDisplay.style.display = "blokas"; exampleDisplay.style.display = "lankstumas"; // slinkite žemyn iki rezultatų lango.scrollTo (0, exampleDisplay.scrollHeight); } / * Nuskaito ir išspausdina geriausią rezistorių konfigūraciją * tikslas - tikslinė varžos vertė * numComp - bendras rezistorių skaičius, kurį leidžiama naudoti norint pasiekti tikslinę vertę * compVals - rezistorių verčių masyvas * / funkcinis rezistorius (tikslas, numComp, compVals) { // atsparumo verčių ilgis var num_res = compVals.length; // paleisti visą galimą komponentų skaičių (var i = 1; i <= numComp; i ++) {var data = ; resCombination (compVals, num_res, i, 0, data, target); } var unit = document.getElementById ("selected_unit"). vertė; // spausdinimo rezultatų outputStr = "Artimiausia vertė:" + artimiausias_val.toFiksuotas (3) + "" + vienetai + ""; outputStr + = "Skirtumas:" + artimiausias_dif.toFiksuotas (3) + "" + vienetai + ""; outputStr += "Rezistoriaus konfigūracija:"; for (var i = 0; i <numComp; i ++) {if (i <artimiausias.ilgis) {outputStr + = "R" + i + "=" + artimiausias + "" + vienetai + ""; if (i+1 <artimiausias ilgis) {if (ser_par_config [i+1]) outputStr+= "||"; else outputStr + = " +"; }} kita pertrauka; }} /* Apskaičiuoja geriausią rezistorių derinį, kad būtų pasiekta tikslinė vertė. * res - rezistorių verčių įvesties masyvas * num_res - rezistorių verčių įvesties masyvo dydis * num_comb - leidžiamas rezistorių skaičius * indeksas - šukos indeksas * šukos - dabartinės kombinacijos masyvas * tikslas - tikslinė vertė * Nėra grąžos vertės - dabartinį geriausią derinį perduoda visuotinėms vertėms */ funkcija resCombination (res, num_res, num_comb, index, comb, target) {// dabartinis derinys baigtas, jei (index == num_comb) {var ser_par_size = Math.pow (2, numeris_kombinacija); // 2^(komponentų skaičius) var ser_par = ; // bool masyvas, nurodantis serijinį ar lygiagretųjį kiekvienam komponentui var calc; // apskaičiuota ekvivalentinė pasipriešinimo vertė // žingsnis per kiekvieną įmanomą serijos/lygiagrečios konfigūracijos dabartinį derinį (var j = 0; j
Rekomenduojamas:
Kaip konvertuoti bet kokį medijos failą į skirtingus formatus: 6 veiksmai
Kaip konvertuoti bet kokį medijos failą į skirtingus formatus: Yra įvairių medijos failų keitiklių, kuriuos galime naudoti. Žiniatinklyje mano mėgstamiausias internetinės medijos keitiklis yra: http: //www.mediaconverter.orgŠioje paprastoje pamokoje mes naudosime „Format Factory“, kuri yra nuostabus universalus medijos failų keitiklis
Kaip bet kokį garsą paversti skambėjimo tonu „Apple“telefone: 5 veiksmai
Kaip bet kokį garsą paversti skambėjimo tonu „Apple“telefone: jei jums blogai, kad esate vienintelis, turintis bendrąjį skambėjimo toną, arba nenorite už tai mokėti, šis paprastas projektas jums puikiai tinka
Kaip pasiekti „Beaglebone“per VNC: 3 žingsniai
Kaip pasiekti „Beaglebone“per VNC: Čia yra paprastas būdas pasiekti „Beaglebone“darbalaukį per „VNC“- programinę įrangą, leidžiančią pamatyti kitus stalinius kompiuterius, iš tikrųjų neprijungus monitoriaus. Tai turėtų būti kuo paprasčiau ir paprasčiau. Pirma, jūs
Nemokamai konvertuokite (beveik) bet kokį medijos failą į (beveik) bet kurį kitą medijos failą!: 4 veiksmai
Nemokamai konvertuokite (beveik) bet kurį medijos failą į (beveik) bet kurį kitą medijos failą!: Mano pirmasis pamokomas, sveikinu! Bet kokiu atveju, aš „Google“ieškojau nemokamos programos, kuri mano Youtube.flv failus paverstų tokiu formatu yra universalesnis, pvz., wmv arba.mov. Ieškojau daugybės forumų ir svetainių, o tada radau programą, pavadintą
Kaip pasiekti muziką iš bet kurios vietos naudojant „Mac Mini“: 5 veiksmai
Kaip pasiekti muziką iš bet kurios vietos naudojant „Mac Mini“: šis nurodymas paverčia jūsų kompiuterį privačiu bendrinimo serveriu. Tai priglobs jūsų muziką, kad tik jūs galėtumėte ją pasiekti. Tačiau, jei jūsų interneto ryšys yra pakankamai greitas, galėsite jį pasiekti iš viso pasaulio. Koks tai kietas