Съдържание:
- Стъпка 1: Предистория
- Стъпка 2: Входове
- Стъпка 3: Резултат
- Стъпка 4: Разбиране на резултата ви
- Стъпка 5: Още проекти
- Стъпка 6: Изходен код
Видео: Как да постигнете съпротивление/капацитет, като използвате компоненти, които вече имате !: 6 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:49
Това не е просто поредният калкулатор на серийно/паралелно еквивалентно съпротивление! Тази програма изчислява как да комбинирате резистори/кондензатори, които в момента имате, за да постигнете целева стойност на съпротивлението/капацитета, от която се нуждаете.
Имали ли сте някога нужда от конкретен резистор или кондензатор, който нямате или който не съществува? Не се страхувайте! Вероятно можете да направите това специфично съпротивление или стойност на капацитета, като използвате компоненти, които вече имате. Вместо да решавате огромен многовариантна задача за оптимизация с милиони различни комбинации, използвайте тази програма!
Просто изберете резистор или кондензатор, въведете целевата стойност, въведете максималния брой компоненти, които искате да използвате, въведете списък със стойностите на компонентите, които имате, и щракнете върху изчисляване! Програмата ще изплюе какви компоненти да използва и как да ги свърже, за да постигне вашата целева стойност.
За да изпробвате калкулатора, посетете това уеб приложение.
За да видите изходния код, посетете това хранилище на Github.
Моля, уведомете ме, ако имате предложения за допълнително подобряване на използваемостта на този инструмент за проектиране!
Стъпка 1: Предистория
Това уеб приложение е разработено по необходимост. Конструирам много различни схеми, които изискват много специфичен резистор или кондензатор. Много пъти нямам резистор или кондензатор с тази конкретна стойност. Понякога дори не правят компонент с тази уникална стойност! Вместо да се откажа или да се задоволя с нещо, което е по -малко от идеалното, реших да напиша програма, за да разгледам всяка възможна комбинация от резистори (всяка възможна стойност и дали са последователни или паралелни) и да върна най -добрата комбинация.
Когато проектирах веригата за моя орган като част от моя Инструктируем проект на Battle of the Bands, трябваше да се опитам на ръка да изчисля най -добрата комбинация от кондензатори за постигане на определена честота. Този процес беше невероятно досаден и в крайна сметка просто се отказах и отидох с комбинации от кондензатори, които произвеждаха каквото и да е звукова честота. Сега с това уеб приложение мога да проектирам органа си за определена честота и да го настроя на нотите на клавиатурата! Уравнението по -долу се използва за изчисляване на специфичната честота и се обсъжда в другия проект на Instructables.
f = 1 / (0,693 × C × (R1 + 2 × R2))
Използвайки това уравнение, където R1 = 100 kOhm и R2 = 10 kOhm, изчислих, че 27,33 nF кондензатор ще произведе нота A4 (честота 440 Hz). Използвайки моята програма, успях да изчисля еквивалентна стойност на капацитета в рамките на.001 nF (много по -малко от допустимото отклонение на стандартен кондензатор), която мога да създам с помощта на кондензатори, които вече бях имал. Полученият резултат и конфигурацията са описани по -долу. Сега съм в състояние много по -ефективно и ефективно да настроя органа си на точните честоти на стандартните ноти. Иска ми се да бях направил това за начало. Моята демо песен на органа вероятно щеше да звучи много по -добре.
Най -близка стойност: 27.329 nF Разлика: 0.001 nFC Конфигурация на кондензатор: C0 = 0.068 nF || C1 = 30 nF + C2 = 300 nF
Уравнения за еквивалентност на резисторен кондензатор
За справка, по -долу са уравненията за еквивалентност за комбиниране на резистори и кондензатори във верига.
- Резистори последователно (R1 + R2): Req = R1 + R2
- Паралелни резистори (R1 || R2): Req = 1/(1/R1 + 1/R2)
- Кондензатори последователно (C1 + C2): Ceq = 1/(1/C1 + 1/C2)
- Паралелни кондензатори (C1 || C2): Ceq = C1 + C2
Стъпка 2: Входове
Има 4 входа, които трябва да предоставите:
- Независимо дали изчислявате стойност за резистор или кондензатор.
- Целевото съпротивление или стойността на капацитета и мерните единици.
- Максималният брой компоненти, които бихте искали да използвате за постигане на целевата стойност (т.е. не бих искал да използвам повече от 3 резистора, за да постигна стойността на целевото си съпротивление).
- Списъкът със стойности за резисторите/кондензаторите, които имате в момента. Тези стойности трябва да са в същите единици като вашата целева стойност (т.е. ако вашата целева стойност е 110 nF, всичките ви стойности трябва да бъдат предоставени в nF).
Стъпка 3: Резултат
Ще получите 3 изхода за вашия резултат:
- Най -близка стойност - най -близката стойност на съпротивление/капацитет, която успяхте да постигнете с вашите параметри.
- Разлика - колко далеч е най -близката ви стойност от вашата целева стойност.
- Конфигурация на резистор/кондензатор - списък със стойности на резисторите/кондензаторите за използване и тяхната конфигурация.
Стъпка 4: Разбиране на резултата ви
Конфигурационният изход използва стандартна нотация. "+" означава, че компонентите са последователни и "||" означава, че компонентите са успоредни. Операторите имат равен приоритет и са асоциативни отляво надясно, което означава, че групирате термини заедно, започвайки отляво и се придвижвайки надясно.
Например, погледнете следния резултат:
Конфигурация на резистора: R0 = 15 ома + R1 = 470 ома || R2 = 3300 ома + R3 = 15000 ома
Ако следвате указанията, обсъдени по -горе, можете да видите, че това е еквивалентно на следното уравнение и изображение по -горе.
((R0+R1) || R2)+R3
Стъпка 5: Още проекти
За още проекти посетете моите страници:
- https://dargen.io/
- https://github.com/mjdargen
- https://www.instructables.com/member/mjdargen/
Стъпка 6: Изходен код
За да видите изходния код, посетете това хранилище на Github или вижте JavaScript по -долу.
/* --------------------------------------------------------------- */
/* r/c скрипт за калкулатор*//* --------------------------------------- -------------------------*/ var най-близък_val; // най -близката стойност досега var nearest_diff = 1000000.00; // разлика на val и target var най -близко = ; // масив, детайлизиращ стойностите на компонентите var ser_par_config = ; // масив, детайлизиращ сериен/паралелен var outputStr = ""; функция CalculatorClick () {// изчистване на глобалните стойности за всяко ново щракване близки_val = 0; най -близък_диф = 1000000,00; най -близък = ; 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; // грешка при синтактичния анализ на целевата стойност if (isNaN (target)) {outputStr = "Error check 'Target Value' input!"} // грешка при анализирането на броя на компонентите else if (isNaN (numComp)) {outputStr = "Error check "Брой на компонентите" вход! "} // иначе, ако няма грешка в target или numComp else if (! IsNaN (target) &&! IsNaN (numComp)) {while (compValsStr.indexOf (", ")! = -1) {var comma = compValsStr.indexOf (","); var newInt = parseFloat (compValsStr.substring (0, запетая)); // грешка при анализиране на списъка със стойности на компонента, задайте флаг if (isNaN (newInt)) {errFlag = 1; прекъсване; } compValsStr = compValsStr.substring (запетая+1, compValsStr.length); compVals = newInt; i ++; } var newInt = parseFloat (compValsStr); // грешка при анализиране на списъка със стойности на компонента, задайте флаг if (isNaN (newInt)) {errFlag = 1; } compVals = newInt; if (errFlag == 0) {if (document.getElementById ("resRadio"). проверено) {резистор (target, numComp, compVals); } иначе ако (document.getElementById ("capRadio"). проверено) {кондензатор (target, numComp, compVals); }} // грешка при синтактичния анализ на списъка със стойности на компонента else {outputStr = "Проверка на грешки" Вход за списък на стойностите на компонентите! "}} calcOutput.innerHTML = outputStr; resultDisplay.style.display = "блок"; exampleDisplay.style.display = "flex"; // превъртете надолу до резултата window.scrollTo (0, exampleDisplay.scrollHeight); } / * Извлича и отпечатва най -добрата конфигурация на резистора * target - целева стойност на съпротивлението * numComp - общ брой резистори, разрешени за използване за постигане на целевата val * compVals - масив от стойности на резистора * / функция резистор (target, numComp, compVals) { // дължина на стойностите на съпротивлението var num_res = compVals.length; // преминаваме през всички възможни брой компоненти за (var i = 1; i <= numComp; i ++) {var data = ; resCombination (compVals, num_res, i, 0, data, target); } var units = document.getElementById ("selected_unit"). стойност; // отпечатайте резултатите outputStr = "Най -близка стойност:" + най -близък_val.toFixed (3) + "" + единици + ""; outputStr + = "Разлика:" + най -близка_дифф. към Fixed (3) + "" + единици + ""; outputStr += "Конфигурация на резистора:"; за (var i = 0; i <numComp; i ++) {if (i <най -близка.дължина) {outputStr + = "R" + i + "=" + най -близък + "" + единици + ""; if (i+1 <най -близка.дължина) {if (ser_par_config [i+1]) outputStr+= "||"; else outputStr + = " +"; }} else break; }} /* Изчислява най -добрата комбинация от резистори за постигане на целева стойност. * res - входен масив от стойности на резистори * num_res - размер на входния масив от стойности на резистори * num_comb - брой разрешени резистори * индекс - индекс на гребен * гребен - масив от текуща комбинация * цел - целевата стойност * Няма връщаща стойност - предава текущата най -добра комбинация към глобални стойности */ функция resCombination (res, num_res, num_comb, index, comb, target) {// текущата комбинация е пълна, ако (index == num_comb) {var ser_par_size = Math.pow (2, num_comb); // 2^(брой компоненти) var ser_par = ; // bool масив, определящ сериен или паралелен за всеки компонент var calc; // изчислена стойност на еквивалентно съпротивление // преминаване през всяка възможна серия/паралелна конфигурация на текущата комбинация за (var j = 0; j
Препоръчано:
Как да използвате стъпков двигател като въртящ се енкодер и OLED дисплей за стъпки: 6 стъпки
Как да използвате стъпков двигател като въртящ се енкодер и OLED дисплей за стъпки: В този урок ще се научим как да проследяваме стъпките на стъпковия двигател на OLED дисплея. Гледайте демонстрационен видеоклип. Кредитът за оригиналния урок отива на потребителя на youtube " sky4fly "
Visuino Как да използвате бутон като вход за управление на неща като LED: 6 стъпки
Visuino Как да използвате бутон като вход за управление на неща като LED: В този урок ще се научим как да включваме и изключваме LED чрез обикновен бутон и Visuino. Гледайте демонстрационен видеоклип
Как да използвате Mac терминал и как да използвате ключови функции: 4 стъпки
Как да използвате Mac терминал и как да използвате ключови функции: Ще ви покажем как да отворите MAC терминала. Също така ще ви покажем няколко функции в терминала, като ifconfig, промяна на директории, достъп до файлове и arp. Ifconfig ще ви позволи да проверите вашия IP адрес и вашата MAC реклама
Голяма версия на 1 Ohm Smd резистор, който осигурява съпротивление от 1 Ohm без използване на никакви електронни компоненти .: 13 стъпки
Голяма версия на 1 Ohm Smd резистор, който осигурява съпротивление от 1 Ohm без използване на никакви електронни компоненти. В реалния живот smd резисторите са много малки с размери почти 0,8 mm x 1,2 mm. Тук ще направя голям SMD резистор, който е много огромен в сравнение с SMD резистора в реалния живот
Как да използвате Wiimote като компютърна мишка Използвайки свещи като сензор !!: 3 стъпки
Как да използвате Wiimote като компютърна мишка, използвайки свещи като сензор !!: Това ръководство ще ви покаже как да свържете вашето Wii Remote (Wiimote) към вашия компютър и да го използвате като мишка