Мазмұны:
- 1 -қадам: Фон
- 2 -қадам: кірістер
- 3 -қадам: Нәтиже
- 4 -қадам: Нәтижені түсіну
- 5 -қадам: Басқа жобалар
- 6 -қадам: бастапқы код
Бейне: Сізде бар компоненттерді қолдана отырып, кез келген қарсылыққа/сыйымдылыққа қалай жетуге болады ?: 6 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:22
Бұл басқа сериялы/параллель балама қарсылық калькуляторы емес! Бұл бағдарлама сізге қажет қарсылық/сыйымдылық мәніне жету үшін қажет резисторларды/конденсаторларды қалай біріктіру керектігін есептейді.
Сізге белгілі бір резистор немесе конденсатор қажет болды ма? Қорықпа! Сізде бар компоненттерді қолдана отырып, белгілі бір қарсылықты немесе сыйымдылықты жасай аласыз. Миллиондаған әр түрлі комбинациялармен үлкен өзгермелі оңтайландыру мәселесін шешудің орнына, осы бағдарламаны қолданыңыз!
Тек резисторды немесе конденсаторды таңдаңыз, мақсатты мәнді енгізіңіз, пайдаланғыңыз келетін компоненттердің максималды санын енгізіңіз, сізде бар компоненттердің мәндерінің тізімін енгізіңіз және есептеуді басыңыз! Бағдарлама сіздің мақсатты мәнге жету үшін қандай компоненттерді және оларды қалай қосу керектігін көрсетеді.
Калькуляторды сынап көру үшін мына веб -қосымшаға кіріңіз.
Бастапқы кодты көру үшін осы Github репозиторийіне кіріңіз.
Егер сізде осы дизайнерлік құралдың қолданылуын одан әрі жақсарту бойынша ұсыныстарыңыз болса, маған хабарлаңыз!
1 -қадам: Фон
Бұл веб -қосымша қажеттіліктен жасалған. Мен құрастыратын көптеген схемалар бар, олар нақты резисторды немесе конденсаторды қажет етеді. Көбінесе менде нақты мәні бар резистор немесе конденсатор жоқ. Кейде олар бірегей құндылығы бар компонент жасамайды! Идеалдылықтан төмен нәрседен бас тартудың немесе шешудің орнына мен резисторлардың барлық мүмкін болатын комбинациясын (мүмкін болатын кез келген мәнді және олар қатарлы немесе параллельді) қарастыратын және ең жақсы комбинацияны қайтаратын бағдарлама жазуды шештім.
«Battle of Bands Instructable Project» жобасының бөлігі ретінде менің органның схемасын жасаған кезде, мен белгілі бір жиілікке жету үшін конденсаторлардың ең жақсы комбинациясын есептеуге тырысуға тура келді. Бұл процесс өте қиын болды, мен ақырында кез келген дыбыстық жиілікті шығаратын конденсаторлардың комбинациясынан бас тарттым. Енді бұл веб -қосымшаның көмегімен мен өз органымды белгілі бір жиілікке қарай жобалай аламын және оны пернетақтадағы жазбаларға баптай аламын! Төмендегі теңдеу нақты жиілікті есептеу үшін қолданылады және Instructables басқа жобасында талқыланады.
f = 1 / (0,693 × C × (R1 + 2 × R2))
R1 = 100 кОм және R2 = 10 кОм болатын осы теңдеуді қолдана отырып, мен 27.33 нФ конденсатор A4 нотасын шығаратынын есептедім (жиілігі 440 Гц). Мен өз бағдарламамды қолдана отырып, мен бұрыннан бар конденсаторлардың көмегімен жасай алатын.001 nF (стандартты конденсатордағы төзімділікке қарағанда) сыйымдылықтың баламалы мәнін есептей алдым. Алынған нәтиже мен конфигурация төменде сипатталған. Мен енді өз органымды стандартты ноталардың жиілігіне дәлірек және тиімді түрде баптай аламын. Мен мұны бастау үшін жасағанды қалаймын. Менің органдағы демо әнім әлдеқайда жақсы шығар еді.
Ең жақын мән: 27.329 nF Айырмашылық: 0.001 nFC Capacitor конфигурациясы: 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 -те берілуі керек).
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 closest_val; // әзірге ең жақын мән var closest_diff = 1000000.00; // val мен target дифференциациясы var closest = ; // компоненттердің мәндерін нақтылайтын массив var ser_par_config = ; // сериялық/параллельді егжей -тегжейлі сипаттайтын массив var outputStr = «»; calculatorClick функциясы () {// әрбір жаңа басу үшін жаһандық мәндерді өшіру closest_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; // егер (isNaN (target)) {outputStr = «» Мақсатты мән «енгізілуін тексеруде қате!»} мақсатты мәнді талдаудағы қате} «(isNaN (numComp)) басқа компоненттер санын талдауда қате {outputStr =» Қатені тексеру 'Компоненттердің енгізілу саны! «} // әйтпесе, егер мақсатта қате болмаса немесе numComp болмаса, (! IsNaN (target) &&! IsNaN (numComp)) {while (compValsStr.indexOf (», «)! = -1) {var comma = compValsStr.indexOf («,»); var newInt = parseFloat (compValsStr.substring (0, үтір)); // компонент мәндерінің тізімін талдауда қате, жалаушаны орнатыңыз, егер (isNaN (newInt)) {errFlag = 1; үзіліс; } compValsStr = compValsStr.substring (үтір+1, compValsStr.length); compVals = newInt; i ++; } var newInt = parseFloat (compValsStr); // компонент мәндерінің тізімін талдауда қате, егер (isNaN (newInt)) жалаушаны орнатыңыз {errFlag = 1; } compVals = newInt; if (errFlag == 0) {if (document.getElementById («resRadio»). тексерілген) {резистор (target, numComp, compVals); } else if (document.getElementById («capRadio»). тексерілген) {конденсатор (target, numComp, compVals); }} // басқа компонент мәндерінің тізімін талдаудағы қате {outputStr = «» Компоненттер мәндерінің тізімі «енгізілуін қатені тексеріңіз!»}} calcOutput.innerHTML = outputStr; resultDisplay.style.display = «блок»; exampleDisplay.style.display = «flex»; // нәтиже терезесі үшін төмен жылжыңыз.scrollTo (0, exampleDisplay.scrollHeight); } / * Резистордың ең жақсы конфигурациясын шығарады және басып шығарады * мақсат - қарсылықтың мақсатты мәні * numComp - мақсатты валға қол жеткізу үшін рұқсат етілген резисторлардың жалпы саны * compVals - резистор мәндерінің массиві * / функция резисторы (target, numComp, compVals) { // қарсылық мәндерінің ұзындығы var num_res = compVals.length; // (var i = 1; i <= numComp; i ++) үшін барлық мүмкін болатын компоненттер санын іске қосыңыз {var data = ; resCombination (compVals, num_res, i, 0, деректер, мақсат); } var unit = document.getElementById («selected_unit»). мән; // басып шығару нәтижелері outputStr = «Ең жақын мән:» + closest_val.toFixed (3) + «» + бірліктер + «»; outputStr + = «Айырмашылығы:» + +estest_diff.toFixed (3) + «» + бірліктер + «»; outputStr += «Резистор конфигурациясы:»; for (var i = 0; i <numComp; i ++) {if (i <ең жақын.ұзындық) {outputStr + = «R» + i + «=» + ең жақын + «» + бірліктері + «»; if (i+1 <ең жақын. ұзындық) {if (ser_par_config [i+1]) outputStr+= «||»; else outputStr + = « +»; }} басқа үзіліс; }} /* Мақсатты мәнге жету үшін резисторлардың ең жақсы комбинациясын есептейді. * res - резистор мәндерінің кіріс жиыны * num_res - резистор мәндерінің кіріс массивінің өлшемі * num_comb - рұқсат етілген резисторлар саны * индекс - тарақ индексі * тарақ - ағымдағы комбинация массиві * мақсат - мақсатты мән * Қайтарылатын мән жоқ - ағымдағы ең жақсы комбинацияны жаһандық мәндерге береді */ resCombination функциясы (res, num_res, num_comb, index, tarak, target) {// ағымдағы комбинация аяқталған болса (index == num_comb) {var ser_par_size = Math.pow (2, сан_комб); // 2^(компоненттер саны) var ser_par = ; // bool массиві әрбір компонент үшін сериялық немесе параллельді көрсетеді var calc; // есептелген эквиваленттік қарсылық мәні // (var j = 0; j үшін ағымдағы комбинацияның барлық мүмкін сериялары/параллель конфигурациясы
Ұсынылған:
Ардуино мен DFPlayer Mini MP3 ойнатқыш модулін қолдана отырып, СКД көмегімен MP3 ойнатқышты қалай жасауға болады: 6 қадам
MP3 ойнатқышын Arduino мен DFPlayer Mini MP3 ойнатқыш модулін қолдана отырып, СКД көмегімен MP3 ойнатқышты қалай жасауға болады: Бүгін біз Arduino мен DFPlayer шағын MP3 ойнатқыш модулін қолдана отырып, СКД бар MP3 ойнатқышты жасаймыз. Жоба MP3 карталарын SD картадан оқи алады және кідірте алады. және 10 жыл бұрынғы құрылғы сияқты ойнаңыз. Алдыңғы ән де, келесі ән де көңілді
Raspberry Pi мен бөлшек аргонды қолдана отырып, су тасқынының дабыл жүйесін ақылды түрде қалай жасауға болады: 6 қадам
Raspberry Pi мен бөлшек аргонды қолданып су тасқынының дабыл жүйесін қалай жасауға болады: стандартты су тасқыны сенсорларының болуы сіздің үйіңізге немесе жұмыс орныңызға үлкен зақым келтірмеу үшін өте жақсы. Бірақ егер сіз үйде болмасаңыз, дабылға қатысуды қиындатады. Сіз бұл ақылды сатып ала аласыз, бұл су тасқыны туралы хабарлау жүйесі кез келген сұйықтықты анықтайды және оларды іске қосады
160А щеткалы электронды жылдамдық реттегіші мен сервистік сынағышты қолдана отырып, тұрақты берілісті қозғалтқышты қалай басқаруға болады: 3 қадам
Тұрақты ток беріліс моторын 160А щеткалы электронды жылдамдық реттегіші мен сервистік сынақ құралының көмегімен қалай басқаруға болады: Техникалық сипаттамасы: Кернеу: 2-3S Lipo немесе 6-9 NiMH Үздіксіз ток: 35А Жарылу тогы: 160A BEC: 5V / 1A, сызықтық режим режимдері: 1. алға &кері; 2. алға &тежеу; 3. алға & тежеу & кері Салмағы: 34г Өлшемі: 42*28*17мм
Кез келген медиа файлды (тек шамамен) кез келген басқа медиа файлға тегін айналдырыңыз!: 4 қадам
Кез келген медиа файлды кез келген басқа мультимедиалық файлға (тек шамамен) айналдырыңыз!: Менің бірінші нұсқаулығым! Қалай болғанда да, мен Google -де Youtube.flv файлдарын форматқа түрлендіретін ақысыз бағдарламаны іздедім. wwv немесе.mov сияқты әмбебап Мен сансыз форумдар мен веб -сайттарды іздедім, содан кейін деп аталатын бағдарламаны таптым
Кез келген MP3 ойнатқышы немесе компьютері бар кез келген 5.1 динамиктер жүйесін пайдаланыңыз, арзан!: 4 қадам
Кез келген MP3 ойнатқышы немесе компьютері бар кез келген 5.1 динамиктер жүйесін қолданыңыз, арзан! Мен оны 5.1 дыбыстық картасы (PCI) бар жұмыс үстелімде қолдандым. Содан кейін оны ноутбукпен бірге қолдандым