Inhoudsopgave:
- Stap 1: Achtergrond
- Stap 2: Ingangen
- Stap 3: Resultaat
- Stap 4: Uw resultaat begrijpen
- Stap 5: Meer projecten
- Stap 6: Broncode
Video: Hoe u weerstand/capaciteit kunt bereiken met behulp van componenten die u al heeft! - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:14
Dit is niet zomaar een serie/parallel equivalente weerstandscalculator! Dit programma berekent hoe u weerstanden/condensatoren kunt combineren die u momenteel hebt om een gewenste weerstand/capaciteitswaarde te bereiken die u nodig heeft.
Heb je ooit een specifieke weerstand of condensator nodig gehad die je niet hebt of die niet bestaat? Geen schrik hebben! U kunt die specifieke weerstands- of capaciteitswaarde waarschijnlijk maken met componenten die u al heeft. Gebruik dit programma in plaats van een enorm multivariabel optimalisatieprobleem met miljoenen verschillende combinaties op te lossen!
Selecteer gewoon weerstand of condensator, voer de doelwaarde in, voer het maximale aantal componenten in dat u wilt gebruiken, voer een lijst in met de waarden van de componenten die u heeft en klik op berekenen! Het programma spuugt uit welke componenten u moet gebruiken en hoe u deze kunt verbinden om uw doelwaarde te bereiken.
Bezoek deze webapplicatie om de rekenmachine uit te proberen.
Ga naar deze Github-repository om de broncode te bekijken.
Laat het me weten als je suggesties hebt om de bruikbaarheid van deze ontwerptool verder te verbeteren!
Stap 1: Achtergrond
Deze webapplicatie is uit noodzaak ontwikkeld. Er zijn veel verschillende circuits die ik bouw die een zeer specifieke weerstand of condensator vereisen. Vaak heb ik geen weerstand of condensator met die specifieke waarde. Soms maken ze niet eens een onderdeel met die unieke waarde! In plaats van op te geven of genoegen te nemen met iets dat niet ideaal is, besloot ik een programma te schrijven om naar elke mogelijke combinatie van weerstanden te kijken (elke mogelijke waarde en of ze in serie of parallel zijn) en de beste combinatie terug te geven.
Bij het ontwerpen van het circuit voor mijn orgel als onderdeel van mijn Battle of the Bands Instructable Project, moest ik proberen de beste combinatie van condensatoren met de hand te berekenen om een specifieke frequentie te bereiken. Dit proces was ongelooflijk vervelend en ik gaf het uiteindelijk gewoon op en ging met condensatorcombinaties die elke hoeveelheid hoorbare frequentie produceerden. Met deze webapplicatie kan ik nu mijn orgel ontwerpen voor een specifieke frequentie en het afstemmen op de noten op een toetsenbord! De onderstaande vergelijking wordt gebruikt om de specifieke frequentie te berekenen en wordt besproken in het andere Instructables-project.
f = 1 / (0,693×C×(R1 + 2×R2))
Met behulp van deze vergelijking, waarbij R1 = 100 kOhm en R2 = 10 kOhm, heb ik berekend dat een condensator van 27,33 nF een A4-noot zal produceren (frequentie 440 Hz). Met behulp van mijn programma kon ik een equivalente capaciteitswaarde berekenen binnen.001 nF (veel minder dan de tolerantie op een standaardcondensator) die ik kan maken met condensatoren die ik al had liggen. De resulterende uitvoer en configuratie wordt hieronder beschreven. Ik ben nu in staat om mijn orgel veel efficiënter en effectiever af te stemmen op de exacte frequenties van standaardnoten. Ik wou dat ik dit had gedaan om mee te beginnen. Mijn demosong op het orgel had waarschijnlijk veel beter geklonken.
Dichtstbijzijnde waarde: 27,329 nF Verschil: 0,001 nFCapacitorconfiguratie: C0=0,068 nF || C1=30 nF + C2=300 nF
Weerstand Condensator Equivalentie Vergelijkingen
Ter referentie staan hieronder de equivalentievergelijkingen voor het combineren van weerstanden en condensatoren in een circuit.
- Weerstanden in serie (R1 + R2): Req = R1 + R2
- Weerstanden parallel (R1 || R2): Req = 1 / (1/R1 + 1/R2)
- Condensatoren in serie (C1 + C2): Ceq = 1 / (1/C1 + 1/C2)
- Condensatoren parallel (C1 || C2): Ceq = C1 + C2
Stap 2: Ingangen
Er zijn 4 ingangen die u moet verstrekken:
- Of u nu een waarde berekent voor een weerstand of een condensator.
- De doelweerstand of capaciteitswaarde en de eenheden.
- Het maximale aantal componenten dat u wilt gebruiken om de doelwaarde te bereiken (d.w.z. ik zou niet meer dan 3 weerstanden willen gebruiken om mijn doelweerstandswaarde te bereiken).
- De lijst met waarden voor de weerstanden/condensatoren die u momenteel heeft. Deze waarden moeten in dezelfde eenheden zijn als uw streefwaarde (d.w.z. als uw streefwaarde 110 nF was, moeten al uw waarden in nF worden opgegeven).
Stap 3: Resultaat
Je krijgt 3 outputs voor je resultaat:
- Dichtstbijzijnde waarde - de dichtstbijzijnde weerstands-/capaciteitswaarde die u met uw parameters kon bereiken.
- Verschil - hoe ver uw dichtstbijzijnde waarde verwijderd was van uw streefwaarde.
- Weerstand/condensatorconfiguratie - een lijst met waarden van de te gebruiken weerstanden/condensatoren en hun configuratie.
Stap 4: Uw resultaat begrijpen
De configuratie-uitvoer gebruikt een standaardnotatie. "+" betekent dat de componenten in serie staan en "||" betekent dat de componenten parallel staan. De operatoren hebben dezelfde prioriteit en zijn associatief van links naar rechts, wat betekent dat u termen groepeert, beginnend van links en naar rechts verplaatsend.
Kijk bijvoorbeeld eens naar het volgende resultaat:
Weerstandsconfiguratie: R0=15 Ohm + R1=470 Ohm || R2=3300 Ohm + R3=15000 Ohm
Als u de hierboven besproken richtlijnen volgt, kunt u zien dat dit overeenkomt met de volgende vergelijking en afbeelding hierboven.
((R0+R1)||R2)+R3
Stap 5: Meer projecten
Bezoek mijn pagina's voor meer projecten:
- https://dargen.io/
- https://github.com/mjdargen
- https://www.instructables.com/member/mjdargen/
Stap 6: Broncode
Ga naar deze Github-repository of bekijk het onderstaande JavaScript om de broncode te bekijken.
/* --------------------------------------------------------------- */
/* r/c rekenmachine scripting */ /* --------------------------------------- -------------------------*/ var dichtste_val; // dichtstbijzijnde waarde tot nu toe var close_diff = 1000000.00; // diff van val en doel var dichtst = ; // array detaillering waarden van componenten var ser_par_config = ; // array detaillering serieel/parallel var outputStr = ""; function calculatorClick() {// verwijder globale waarden voor elke nieuwe klik close_val = 0; dichtstbijzijnde_diff = 1000000.00; dichtstbijzijnde = ; ser_par_config = ; var resultDisplay = document.getElementById("resultRow"); var voorbeeldDisplay = document.getElementById("exampleRow"); var calcOutput = document.getElementById("calcOutput"); var targetTextObj = document.getElementById('targetText'); var numCompTextObj = document.getElementById('numCompText'); var compValsTextObj = document.getElementById('compValsText'); var doel = parseFloat(targetTextObj.value); var numComp = parseInt(numCompTextObj.value); var compValsStr = compValsTextObj.waarde; var compVals = ; compVals[0] = ""; var i = 0; var errFlag = 0; // fout bij het parseren van de doelwaarde if (isNaN(target)) { outputStr = "Foutcontrole bij 'Target Value' input! " } // fout bij het parseren van het aantal componenten else if (isNaN(numComp)) { outputStr = "Foutcontrole 'Aantal componenten' invoer! " } // else als er geen fout is in doel of numComp else if (!isNaN(target) && !isNaN(numComp)) { while (compValsStr.indexOf(", ") != -1) { var komma = compValsStr.indexOf(", "); var newInt = parseFloat(compValsStr.substring(0, komma)); // fout bij het ontleden van de lijst met componentenwaarden, stel de vlag in als (isNaN (newInt)) { errFlag = 1; pauze; } compValsStr = compValsStr.substring (komma+1, compValsStr.lengte); compVals = newInt; i++; } var newInt = parseFloat(compValsStr); // fout bij het ontleden van de lijst met componentenwaarden, stel de vlag in als (isNaN (newInt)) { errFlag = 1; } compVals = newInt; if (errFlag == 0) {if (document.getElementById ("resRadio").checked) { weerstand (doel, numComp, compVals); } else if (document.getElementById("capRadio").checked) {condensator(target, numComp, compVals); } } // fout bij het ontleden van de componentwaardelijst else { outputStr = "Fout bij het controleren van 'Componentwaardenlijst' input! " } } calcOutput.innerHTML = outputStr; resultDisplay.style.display = "blokkeren"; voorbeeldDisplay.style.display = "flex"; // scrol omlaag naar resultaat window.scrollTo(0, exampleDisplay.scrollHeight); } /* Haalt de beste weerstandsconfiguratie op en drukt deze af * doel - doelweerstandswaarde * numComp - totaal aantal weerstanden dat mag worden gebruikt om de doelwaarde te bereiken * compVals - reeks weerstandswaarden */ functieweerstand (doel, numComp, compVals) { // lengte van weerstandswaarden var num_res = compVals.length; // doorloop alle mogelijke componenten voor (var i=1; i<=numComp; i++) {var data = ; resCombination(compVals, num_res, i, 0, data, target); } var units = document.getElementById("selected_unit").value; // print results outputStr = "Beste waarde: " + dichtste_val.toFixed(3) + " " + eenheden + " "; outputStr += "Verschil: " + dichtste_diff.toFixed(3) + " " + eenheden + " "; outputStr += "Weerstandconfiguratie: "; for (var i=0; i<numComp; i++) { if (i<closest.length) { outputStr += "R" + i + "=" + dichtstbij + " " + units + " "; if (i+1<dichtstbijzijnde lengte) { if (ser_par_config[i+1]) outputStr += "|| "; anders outputStr += "+ "; } } anders breken; } } /* Berekent de beste combinatie van weerstanden om een doelwaarde te bereiken. * res - input array van weerstandswaarden * num_res - grootte van input array van weerstandswaarden * num_comb - aantal toegestane weerstanden * index - index van comb * comb - array van huidige combinatie * target - de doelwaarde * Geen retourwaarde - geeft huidige beste combinatie door aan globale waarden */ functie resCombination(res, num_res, num_comb, index, comb, target) {// huidige combinatie is compleet als (index == num_comb) { var ser_par_size = Math.pow (2, num_comb); // 2^(aantal componenten) var ser_par = ; // bool-array die serieel of parallel specificeert voor elke component var calc; // berekende equivalente weerstandswaarde // stap door elke mogelijke serie/parallelle configuratie van huidige combinatie voor (var j=0; j
Aanbevolen:
Hoe u uw eigen windmeter kunt bouwen met behulp van reed-schakelaars, Hall-effectsensor en wat restjes op Nodemcu. - Deel 1 - Hardware: 8 stappen (met afbeeldingen)
Hoe u uw eigen windmeter kunt bouwen met behulp van reed-schakelaars, Hall-effectsensor en wat restjes op Nodemcu. - Deel 1 - Hardware: Inleiding Sinds ik ben begonnen met de studies van Arduino en de Maker Culture, heb ik het leuk gevonden om nuttige apparaten te bouwen met behulp van rommel en afvalstukken zoals kroonkurken, stukjes PVC, drankblikjes, enz. Ik geef graag een tweede leven aan elk stuk of elke partner
Veilig desolderen van elektronische componenten voor hergebruik: 9 stappen (met afbeeldingen) Antwoorden op al uw "Hoe?"
Hoe elektronische componenten veilig te desolderen voor hergebruik: Hallo! Ik ben een elektronica-nerd, dus ik speel graag met verschillende elektronische componenten in mijn projecten. Het kan echter zijn dat ik niet altijd over de onderdelen beschikt die ik nodig heb om mijn werk gedaan te krijgen. Soms is het gemakkelijker om de componenten die ik nodig heb uit een oude elektronische
Hoe de weerstand van een weerstand te meten: 7 stappen
Hoe de weerstand van een weerstand te meten: Normaal worden twee methoden gebruikt bij het meten van een weerstand voor weerstand. De eerste methode die wordt gebruikt, is de kleurcode van de weerstand. Deze methode biedt een manier om de waarde te vinden zonder apparatuur ten koste van enige nauwkeurigheid. De tweede methode is het gebruik van een multi
Hoe u gratis componenten kunt proberen en krijgen: 5 stappen
Hoe u gratis componenten probeert te krijgen: soms heeft u geen geld, maar wilt u iets leuks bouwen. hier is een gids om u te helpen
Hoe u uw pc drastisch kunt versnellen en die snelheid kunt behouden voor de levensduur van het systeem: 9 stappen
Hoe u uw pc drastisch kunt versnellen en die snelheid kunt behouden voor de levensduur van het systeem en om dat zo te houden. Ik zal foto's plaatsen zodra ik de kans krijg, helaas heb ik op dit moment geen