Sommario:
- Passaggio 1: sfondo
- Passaggio 2: ingressi
- Passaggio 3: risultato
- Passaggio 4: comprendere il risultato
- Passaggio 5: più progetti
- Passaggio 6: codice sorgente
Video: Come ottenere qualsiasi resistenza/capacità utilizzando componenti che già possiedi!: 6 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 09:59
Questo non è solo un altro calcolatore di resistenza equivalente in serie/parallelo! Questo programma calcola come combinare resistori/condensatori di cui hai attualmente bisogno per raggiungere un valore di resistenza/capacità target di cui hai bisogno.
Hai mai avuto bisogno di un resistore o condensatore specifico che non hai o che non esiste? Non avere paura! Probabilmente puoi creare quel valore specifico di resistenza o capacità utilizzando componenti che già possiedi. Invece di risolvere un enorme problema di ottimizzazione multivariabile con milioni di combinazioni diverse, usa questo programma!
Basta selezionare il resistore o il condensatore, inserire il valore target, inserire il numero massimo di componenti che si desidera utilizzare, inserire un elenco dei valori dei componenti che si hanno e fare clic su calcola! Il programma sputerà quali componenti utilizzare e come collegarli per raggiungere il valore target.
Per provare la calcolatrice, visita questa applicazione web.
Per visualizzare il codice sorgente, visita questo repository Github.
Per favore fatemi sapere se avete suggerimenti per migliorare ulteriormente l'usabilità di questo strumento di progettazione!
Passaggio 1: sfondo
Questa applicazione web è stata sviluppata per necessità. Ci sono molti circuiti diversi che costruisco che richiedono un resistore o un condensatore molto specifico. Molte volte, non ho un resistore o un condensatore con quel valore specifico. A volte non realizzano nemmeno un componente con quel valore unico! Invece di rinunciare o accontentarmi di qualcosa che non è proprio l'ideale, ho deciso di scrivere un programma per esaminare ogni possibile combinazione di resistori (ogni possibile valore e se sono in serie o in parallelo) e restituire la migliore combinazione.
Quando ho progettato il circuito per il mio organo come parte del mio progetto Battle of the Bands Instructable, ho dovuto cercare di calcolare a mano la migliore combinazione di condensatori per ottenere una frequenza specifica. Questo processo è stato incredibilmente noioso e alla fine ho rinunciato e sono andato con combinazioni di condensatori che producevano qualsiasi quantità di frequenza udibile. Ora con questa applicazione web, posso progettare il mio organo per una frequenza specifica e sintonizzarlo sulle note di una tastiera! L'equazione seguente viene utilizzata per calcolare la frequenza specifica ed è discussa nell'altro progetto Instructables.
f = 1 / (0,693×C×(R1 + 2×R2))
Usando questa equazione dove R1 = 100 kOhm e R2 = 10 kOhm, ho calcolato che un condensatore da 27,33 nF produrrà una nota A4 (frequenza 440 Hz). Usando il mio programma, sono stato in grado di calcolare un valore di capacità equivalente entro.001 nF (molto inferiore alla tolleranza su un condensatore standard) che posso creare usando i condensatori che avevo già in giro. L'output e la configurazione risultanti sono descritti di seguito. Ora sono in grado di sintonizzare il mio organo in modo molto più efficiente ed efficace sulle frequenze esatte delle note standard. Vorrei averlo fatto per cominciare. La mia canzone demo all'organo probabilmente avrebbe suonato molto meglio.
Valore più vicino: 27,329 nF Differenza: 0,001 nFConfigurazione condensatore: C0=0,068 nF || C1=30 nF + C2=300 nF
Equazioni di equivalenza del condensatore del resistore
Per riferimento, di seguito sono riportate le equazioni di equivalenza per combinare resistori e condensatori in un circuito.
- Resistori in serie (R1 + R2): Req = R1 + R2
- Resistori in parallelo (R1 || R2): Req = 1 / (1/R1 + 1/R2)
- Condensatori in serie (C1 + C2): Ceq = 1 / (1/C1 + 1/C2)
- Condensatori in parallelo (C1 || C2): Ceq = C1 + C2
Passaggio 2: ingressi
Ci sono 4 ingressi che dovrai fornire:
- Sia che tu stia calcolando un valore per un resistore o un condensatore.
- Il valore di resistenza o capacità target e le unità.
- Il numero massimo di componenti che vorresti utilizzare per raggiungere il valore target (cioè non vorrei usare più di 3 resistori per raggiungere il mio valore di resistenza target).
- L'elenco dei valori per i resistori/condensatori che hai attualmente. Questi valori dovrebbero essere nelle stesse unità del tuo valore target (cioè se il tuo valore target era 110 nF, tutti i tuoi valori dovrebbero essere forniti in nF).
Passaggio 3: risultato
Otterrai 3 output per il tuo risultato:
- Valore più vicino: il valore di resistenza/capacità più vicino che sei riuscito a ottenere con i tuoi parametri.
- Differenza: quanto era lontano il tuo valore più vicino dal valore target.
- Configurazione resistore/condensatore - un elenco di valori dei resistori/condensatori da utilizzare e la loro configurazione.
Passaggio 4: comprendere il risultato
L'output della configurazione utilizza una notazione standard. "+" significa che i componenti sono in serie e "||" significa che i componenti sono in parallelo. Gli operatori hanno uguale precedenza e sono associativi da sinistra a destra, il che significa che raggruppi i termini partendo da sinistra e spostandoti verso destra.
Ad esempio, dai un'occhiata al seguente risultato:
Configurazione resistore: R0=15 Ohm + R1=470 Ohm || R2=3300 Ohm + R3=15000 Ohm
Se segui le linee guida discusse sopra, puoi vedere che questo è equivalente alla seguente equazione e immagine sopra.
((R0+R1)||R2)+R3
Passaggio 5: più progetti
Per altri progetti, visita le mie pagine:
- https://dargen.io/
- https://github.com/mjdargen
- https://www.instructables.com/member/mjdargen/
Passaggio 6: codice sorgente
Per visualizzare il codice sorgente, visita questo repository Github o consulta JavaScript di seguito.
/* --------------------------------------------------------------- */
/* script calcolatrice r/c */ /* --------------------------------------- -------------------------*/ var più vicino_val; // valore più vicino finora var close_diff = 1000000.00; // diff di val e target var più vicino = ; // array che dettaglia i valori dei componenti var ser_par_config = ; // array che dettaglia serial/parallel var outputStr = ""; calcolatrice di funzioneClick() { // cancella i valori globali per ogni nuovo clic close_val = 0; più vicino_diff = 10000000,00; più vicino = ; 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] = ""; variabile i = 0; var Flagerr = 0; // errore nell'analisi del valore target if (isNaN(target)) { outputStr = "Errore check 'Target Value input!" } // errore nell'analisi del numero di componenti else if (isNaN(numComp)){ outputStr = "Error check Input 'Numero di componenti'! " } // else if nessun errore in target o numComp else if (!isNaN(target) && !isNaN(numComp)) { while (compValsStr.indexOf(", ") != -1) { var virgola = compValsStr.indexOf(", "); var newInt = parseFloat(compValsStr.substring(0, virgola)); // errore nell'analisi dell'elenco dei valori dei componenti, imposta flag if (isNaN(newInt)) { errFlag = 1; rottura; } compValsStr = compValsStr.substring(virgola+1, compValsStr.length); compVals = newInt; io++; } var newInt = parseFloat(compValsStr); // errore nell'analisi dell'elenco dei valori dei componenti, imposta flag if (isNaN(newInt)) { errFlag = 1; } compVals = newInt; if (errFlag == 0) { if (document.getElementById("resRadio").checked) { resistor(target, numComp, compVals); } else if (document.getElementById("capRadio").checked) { condensatore(target, numComp, compVals); } } // errore nell'analisi dell'elenco dei valori dei componenti else { outputStr = "Errore nel controllo dell'input 'Elenco valori dei componenti'! " } } calcOutput.innerHTML = outputStr; resultDisplay.style.display = "blocco"; exampleDisplay.style.display = "flessibile"; // scorri verso il basso fino al risultato window.scrollTo(0, exampleDisplay.scrollHeight); } /* Recupera e stampa la migliore configurazione del resistore * target - valore di resistenza target * numComp - numero totale di resistori che possono essere utilizzati per raggiungere il valore target * compVals - array di valori del resistore */ function resistor(target, numComp, compVals) { // lunghezza dei valori di resistenza var num_res = compVals.length; // scorre tutto il numero possibile di componenti per (var i=1; i<=numComp; i++) { var data = ; resCombination(compVals, num_res, i, 0, data, target); } var unità = document.getElementById("selected_unit").value; // stampa i risultati outputStr = "Valore più vicino: " + più vicino_val.toFixed(3) + " " + unità + " "; outputStr += "Difference: " + più vicino_diff.toFixed(3) + " " + unità + " "; outputStr += "Configurazione resistore: "; for (var i=0; i<numComp; i++) { if (i<longest.length) { outputStr += "R" + i + "=" + più vicino + " " + unità + " "; if (i+1<closest.length) { if (ser_par_config[i+1]) outputStr += "|| "; else outputStr += "+ "; } } altrimenti interrompi; } } /* Calcola la migliore combinazione di resistori per raggiungere un valore target. * res - array di input dei valori del resistore * num_res - dimensione dell'array di input dei valori del resistore * num_comb - numero di resistori consentiti * index - indice del comb * comb - array della combinazione corrente * target - il valore target * Nessun valore restituito - passa la migliore combinazione corrente ai valori globali */ function resCombination(res, num_res, num_comb, index, comb, target) { // la combinazione corrente è completa if (index == num_comb) { var ser_par_size = Math.pow (2, num_comb); // 2^(numero di componenti) var ser_par = ; // array bool che specifica seriale o parallelo per ogni componente var calc; // valore di resistenza equivalente calcolato // scorre ogni possibile configurazione serie/parallelo della combinazione corrente per (var j=0; j
Consigliato:
Come ottenere gratuitamente Siri su qualsiasi iPad!: 7 passaggi
Come ottenere Siri su qualsiasi IPad gratuitamente!: Vedi sempre quelle pubblicità di Siri e pensi, vorrei poterlo ottenere ma non pagare il prezzo pesante per un iPhone 4s. Bene, ora puoi! Questo è un passo dopo passo su come ottenere Siri su qualsiasi iPad iOS 5.1.x jailbroken! Questo istruibile non è solo facile
Resistore Smd versione grande da 1 Ohm che fornisce una resistenza di 1 Ohm senza l'utilizzo di componenti elettronici.: 13 passaggi
Grande versione del resistore Smd da 1 Ohm che fornisce una resistenza di 1 Ohm senza l'utilizzo di componenti elettronici.: Nella vita reale i resistori smd sono di dimensioni molto piccole, quasi 0,8 mm x 1,2 mm. Qui, realizzerò un grande resistore smd che è molto grande rispetto al resistore smd della vita reale
Come provare e ottenere componenti gratuiti: 5 passaggi
Come provare e ottenere componenti gratuiti: a volte non hai soldi, ma vuoi costruire qualcosa di elegante. ecco una guida per aiutarti
Come ottenere musica da QUASI QUALSIASI sito Web (Haha) (finché puoi ascoltarla puoi ottenerla Ok bene se è incorporata in Flash potresti non essere in grado di) EDITATO!!!!! Informazioni aggiuntive: 4 passaggi
Come ottenere musica da QUASI QUALSIASI sito Web (Haha) (finché puoi ascoltarla puoi ottenerla … Ok bene se è incorporata in Flash potresti non essere in grado di) EDITATO!!!!! Informazioni aggiunte: se mai vai su un sito Web e riproduce una canzone che ti piace e la desideri, ecco l'istruzione per te non è colpa mia se sbagli qualcosa (l'unico modo in cui accadrà è se inizi a eliminare cose senza motivo ) sono stato in grado di ottenere musica per
Come ottenere il codice esadecimale per qualsiasi colore sullo schermo: 7 passaggi
Come ottenere il codice esadecimale per qualsiasi colore sullo schermo: ti mostrerò come ottenere il codice esadecimale per qualsiasi colore mostrato sul monitor del tuo computer, in modo che tu possa utilizzarli in documenti HTML e altre cose fantasiose per computer. Sorprendentemente, utilizza software legale