สารบัญ:
- ขั้นตอนที่ 1: พื้นหลัง
- ขั้นตอนที่ 2: อินพุต
- ขั้นตอนที่ 3: ผลลัพธ์
- ขั้นตอนที่ 4: ทำความเข้าใจผลลัพธ์ของคุณ
- ขั้นตอนที่ 5: โครงการเพิ่มเติม
- ขั้นตอนที่ 6: รหัสที่มา
วีดีโอ: วิธีบรรลุความต้านทาน/ความจุโดยใช้ส่วนประกอบที่คุณมีอยู่แล้ว!: 6 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:02
นี่ไม่ใช่แค่เครื่องคำนวณความต้านทานแบบอนุกรม/แบบขนานอีกเครื่องหนึ่ง! โปรแกรมนี้คำนวณวิธีการรวมตัวต้านทาน/ตัวเก็บประจุที่คุณต้องใช้ในปัจจุบันเพื่อให้ได้ค่าความต้านทาน/ความจุเป้าหมายที่คุณต้องการ
คุณเคยต้องการตัวต้านทานหรือตัวเก็บประจุเฉพาะที่คุณไม่มีหรือไม่มีอยู่หรือไม่? ไม่กลัว! คุณสามารถสร้างค่าความต้านทานหรือค่าความจุได้โดยใช้ส่วนประกอบที่คุณมีอยู่แล้ว แทนที่จะแก้ปัญหาการปรับให้เหมาะสมแบบหลายตัวแปรจำนวนมากด้วยชุดค่าผสมที่แตกต่างกันนับล้าน ให้ใช้โปรแกรมนี้!
เพียงเลือกตัวต้านทานหรือตัวเก็บประจุ ป้อนค่าเป้าหมาย ป้อนจำนวนส่วนประกอบสูงสุดที่คุณต้องการใช้ ป้อนรายการค่าของส่วนประกอบที่คุณมี แล้วคลิกคำนวณ! โปรแกรมจะพูดถึงส่วนประกอบที่จะใช้และวิธีการเชื่อมต่อเพื่อให้บรรลุเป้าหมายของคุณ
หากต้องการลองใช้เครื่องคิดเลข ให้ไปที่เว็บแอปพลิเคชันนี้
หากต้องการดูซอร์สโค้ด ให้ไปที่ที่เก็บ 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 nFCapacitor การกำหนดค่า: 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 closed_diff = 1000000.00; // diff ของ val และเป้าหมาย var ใกล้เคียงที่สุด = ; // อาร์เรย์รายละเอียดค่าของส่วนประกอบ var ser_par_config = ; // อาร์เรย์รายละเอียดอนุกรม/ขนาน var outputStr = ""; ฟังก์ชั่น calculatorClick () { // ล้างค่าส่วนกลางสำหรับแต่ละคลิกใหม่ที่ใกล้ที่สุด_val = 0; Near_diff = 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 = parseFloat (targetTextObj.value); var numComp = parseInt (numCompTextObj.value); var compValsStr = compValsTextObj.value; var compVals = ; compVals[0] = ""; var i = 0; วาร์ errFlag = 0; // ข้อผิดพลาดในการแยกวิเคราะห์ค่าเป้าหมาย if (isNaN (target)) { outputStr = "Error check 'Target Value' input!" } // ข้อผิดพลาดในการแยกวิเคราะห์จำนวนส่วนประกอบอื่น if (isNaN (numComp))) { outputStr = "ตรวจสอบข้อผิดพลาด อินพุต 'จำนวนส่วนประกอบ'! " } // อย่างอื่นถ้าไม่มีข้อผิดพลาดในเป้าหมายหรือ numComp อื่น if (!isNaN (เป้าหมาย) && !isNaN (numComp)) { ในขณะที่ (compValsStr.indexOf (", ") != -1) { var comma = compValsStr.indexOf(", "); var newInt = parseFloat(compValsStr.substring(0, จุลภาค)); // ข้อผิดพลาดในการแยกวิเคราะห์รายการค่าส่วนประกอบ ตั้งค่าสถานะ if (isNaN (newInt)) { errFlag = 1; หยุดพัก; } compValsStr = compValsStr.substring(comma+1, compValsStr.length); compVals = newInt; ผม++; } var newInt = parseFloat(compValsStr); // ข้อผิดพลาดในการแยกวิเคราะห์รายการค่าส่วนประกอบ ตั้งค่าสถานะ if (isNaN (newInt)) { errFlag = 1; } compVals = newInt; if (errFlag == 0) { ถ้า (document.getElementById ("resRadio") ถูกตรวจสอบ) { ตัวต้านทาน (เป้าหมาย, numComp, compVals); } else if (document.getElementById("capRadio")).checked) { capacitor(target, numComp, compVals); } } // ข้อผิดพลาดในการแยกวิเคราะห์รายการค่าส่วนประกอบอื่น { outputStr = "ตรวจสอบข้อผิดพลาด 'รายการค่าส่วนประกอบ'! " } } calcOutput.innerHTML = outputStr; resultDisplay.style.display = "บล็อก"; exampleDisplay.style.display = "ดิ้น"; // เลื่อนลงไปที่ผลลัพธ์ window.scrollTo(0, exampleDisplay.scrollHeight); } /* ดึงและพิมพ์การกำหนดค่าตัวต้านทานที่ดีที่สุด * เป้าหมาย - ค่าความต้านทานเป้าหมาย * numComp - จำนวนตัวต้านทานทั้งหมดที่อนุญาตให้ใช้เพื่อให้ได้ค่าเป้าหมาย * compVals - อาร์เรย์ของค่าตัวต้านทาน */ ตัวต้านทานฟังก์ชัน (เป้าหมาย, numComp, compVals) { // ความยาวของค่าความต้านทาน var num_res = compVals.length; // เรียกใช้ส่วนประกอบที่เป็นไปได้ทั้งหมดสำหรับ (var i=1; i<=numComp; i++) { var data = ; resCombination (compVals, num_res, i, 0, data, เป้าหมาย); } หน่วย var = document.getElementById("selected_unit").value; // ผลการพิมพ์ outputStr = "ค่าที่ใกล้เคียงที่สุด: " + ค่าที่ใกล้เคียงที่สุด _val.toFixed(3) + " " + หน่วย + " "; outputStr += "ความแตกต่าง:" + ที่ใกล้เคียงที่สุด_diff.toFixed(3) + " " + หน่วย + " "; outputStr += "การกำหนดค่าตัวต้านทาน: "; สำหรับ (var i=0; i<numComp; i++) { if (i<closest.length) { outputStr += "R" + i + "=" + ใกล้เคียงที่สุด + " " + หน่วย + " "; if (i+1<closest.length) { if (ser_par_config[i+1]) outputStr += "|| "; อื่น outputStr += "+ "; } } อื่น ๆ แตก; } } /* คำนวณค่าผสมที่ดีที่สุดของตัวต้านทานเพื่อให้ได้ค่าเป้าหมาย * res - อาร์เรย์อินพุตของค่าตัวต้านทาน * num_res - ขนาดของอาร์เรย์อินพุตของค่าตัวต้านทาน * num_comb - จำนวนตัวต้านทานที่อนุญาต * ดัชนี - ดัชนีของหวี * หวี - อาร์เรย์ของชุดค่าผสมปัจจุบัน * เป้าหมาย - ค่าเป้าหมาย * ไม่มีค่าส่งคืน - ส่งชุดค่าผสมที่ดีที่สุดในปัจจุบันไปยังค่าส่วนกลาง */ ฟังก์ชั่น resCombination (res, num_res, num_comb, ดัชนี, หวี, เป้าหมาย) { // ชุดค่าผสมปัจจุบันจะสมบูรณ์หาก (index == num_comb) { var ser_par_size = Math.pow (2, num_comb); // 2^(จำนวนส่วนประกอบ) var ser_par = ; // อาร์เรย์บูลที่ระบุอนุกรมหรือขนานสำหรับแต่ละองค์ประกอบ var calc; // คำนวณค่าความต้านทานเทียบเท่า // ก้าวผ่านทุกอนุกรมที่เป็นไปได้/การกำหนดค่าแบบขนานของชุดค่าผสมปัจจุบันสำหรับ (var j=0; j
แนะนำ:
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: 5 ขั้นตอน
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: การตวัดเป็นวิธีง่ายๆ ในการสร้างเกม โดยเฉพาะอย่างยิ่งเกมปริศนา นิยายภาพ หรือเกมผจญภัย
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: 3 ขั้นตอน
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: ในคำแนะนำนี้ เราจะทำการตรวจจับใบหน้าบน Raspberry Pi 4 ด้วย Shunya O/S โดยใช้ Shunyaface Library Shunyaface เป็นห้องสมุดจดจำใบหน้า/ตรวจจับใบหน้า โปรเจ็กต์นี้มีจุดมุ่งหมายเพื่อให้เกิดความเร็วในการตรวจจับและจดจำได้เร็วที่สุดด้วย
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: 3 ขั้นตอน
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: ในบทช่วยสอนนี้ ฉันจะแสดงขั้นตอนสำคัญในการติดตั้งปลั๊กอิน WordPress ให้กับเว็บไซต์ของคุณ โดยทั่วไป คุณสามารถติดตั้งปลั๊กอินได้สองวิธี วิธีแรกคือผ่าน ftp หรือผ่าน cpanel แต่ฉันจะไม่แสดงมันเพราะมันสอดคล้องกับ
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): 8 ขั้นตอน
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): ตัวแปลงสัญญาณเสียงล้ำเสียง L298N Dc ตัวเมียอะแดปเตอร์จ่ายไฟพร้อมขา DC ตัวผู้ Arduino UNOBreadboardวิธีการทำงาน: ก่อนอื่น คุณอัปโหลดรหัสไปยัง Arduino Uno (เป็นไมโครคอนโทรลเลอร์ที่ติดตั้งดิจิตอล และพอร์ตแอนะล็อกเพื่อแปลงรหัส (C++)
เครื่อง Rube Goldberg 11 ขั้นตอน: 8 ขั้นตอน
เครื่อง 11 Step Rube Goldberg: โครงการนี้เป็นเครื่อง 11 Step Rube Goldberg ซึ่งออกแบบมาเพื่อสร้างงานง่ายๆ ในรูปแบบที่ซับซ้อน งานของโครงการนี้คือการจับสบู่ก้อนหนึ่ง