ตัวเก็บประจุในวงจร debouncing ทำงานอย่างไร


13

ในวงจรต่อไปนี้ (ปุ่มกด debounce ที่เปิดไฟ LED):

แผนผัง

จำลองวงจรนี้ - แผนผังที่สร้างโดยใช้CircuitLab

ฉันพยายามที่จะเข้าใจว่าทำไม LED ไม่สว่างขึ้นเนื่องจากตัวเก็บประจุดูเหมือนว่าผ่านสวิตช์ เมื่อตัวเก็บประจุเต็มจะไม่ส่ง / นำไฟฟ้า?

คุณจะสังเกตเห็นว่าฉันเริ่มต้นมาก แต่หลังจาก 20 ชั่วโมงในการอ่านบทช่วยสอนต่าง ๆ ฉันยังไม่สามารถเข้าใจถึงสิ่งที่ง่าย ตัวเก็บประจุแบบเต็มทำหน้าที่อย่างไรแตกต่างจากลวดแบบง่าย ถ้าฉันเปลี่ยนคาปาซิเตอร์ด้วยลวดวางลวดแทนคาปาซิเตอร์ไฟก็จะติดอยู่เสมอ

แก้ไข: บางคนชี้ให้เห็นว่าวงจร debouncing ไม่มีเหตุผล (แรงดันไฟฟ้าต่ำ ฯลฯ ) นี่คือความพยายามครั้งที่สองของฉันที่จะทำให้เข้าใจได้มากขึ้น R5 และ R6 อาจเหมือนกัน แต่ฉันคิดว่าการแยกพวกมันออกจากกันจะช่วยให้ 1 งานกับแต่ละองค์ประกอบ

วงจรไฟฟ้า

คำตอบ:


14

นี่ไม่ใช่วงจร debounce ที่ดี

ปัญหาอย่างหนึ่งก็คือ (อย่างน้อยในอุดมคติ) สวิตช์และสายเชื่อมต่อที่มีความต้านทานเป็นศูนย์ ซึ่งหมายความว่าตัวเก็บประจุจะคายประจุทันทีเมื่อปิดสวิตช์ (ในทางปฏิบัติเช่นกันการปลดปล่อยอย่างรวดเร็วนี้อาจไม่ดีสำหรับสวิทช์สัมผัสหรือสายไฟหากมีแรงดันไฟฟ้าสูงพอที่ตัวเก็บประจุและมีความจุสูงพอ)

การหักล้างสวิตช์แบบ capacitive ควรชาร์จตัวเก็บประจุอย่างช้าๆเมื่อสวิตช์อยู่ในสถานะหนึ่งและค่อยๆคลายประจุเมื่ออยู่ในสถานะอื่น ค่าคงที่ RC ไม่จำเป็นต้องเหมือนกัน แต่ควรเป็นค่าที่ไม่ใช่ศูนย์ วงจรมีตัวต้านทานที่ควบคุมการชาร์จของตัวเก็บประจุ มันแค่ต้องการตัวต้านทานในสวิตช์ลูปเพื่อคายประจุได้อย่างสวยงาม

ปัญหาอีกประการของวงจรนี้คือ LED จะดับเฉพาะเมื่อมีการเปิดวงจรในบางครั้งเช่นถ้ามีวงจรอยู่ตั้งแต่ต้นเวลาด้วยแหล่งจ่ายแรงดันไฟฟ้าเดียวกัน แต่จะเกิดอะไรขึ้นถ้า ณ เวลาแหล่งกำเนิดแรงดันไฟฟ้าเป็น 0V และกระโดดไปที่แรงดันไฟฟ้าทันที ในเวลานั้นตัวเก็บประจุซึ่งต้องว่างเปล่าจะเริ่มชาร์จ ในขณะที่กำลังชาร์จกระแสไฟไหลและไฟ LED จะสว่างขึ้นชั่วครู่แล้วมืด (อาจจะไม่ใช่เพราะแหล่งที่มาของคุณมีเพียง 1V แต่เป็นอีกเรื่องหนึ่ง)t=0

ใน CircuitLab คุณสามารถแยกแยะสถานการณ์ทั้งสองนี้ในการจำลอง "Time Domain" คุณสามารถ "ข้ามค่าเริ่มต้น" หรือไม่ก็ได้ ผู้แก้ไขสามารถทำเป็นว่าวงจรนั้นมีอยู่ในสถานะที่กำหนดสำหรับนิรันดรทั้งหมดจนถึงเวลาและเริ่มแก้จากตรงนั้น หรือสามารถแก้ได้จากมุมมองว่าวงจรเพิ่งเกิดขึ้นที่และแหล่งกำเนิดแรงดันเกิดขึ้นในชีวิตตัวเก็บประจุจะว่างเปล่าและอื่น ๆt = 0t=0t=0

การพิจารณาขั้นสุดท้ายที่นี่คือวงจรไฟ LED เท่านั้นดังนั้นการตีกลับสวิทช์เป็น moot โดยทั่วไปเว้นแต่ LED ส่องแสงในเครื่องตรวจจับแสงบางส่วนที่สวิทช์การตีกลับเปลี่ยนเป็นความผิดพลาดในสัญญาณ หากงานของ LED เป็นเพียงการให้แสงที่สวยตาของคุณก็จะไม่เร็วพอที่จะเห็นการเด้งสลับ


นี่คือการจำลองโดเมนเวลาของวงจร (หลังจากเปลี่ยน V1 เป็น 3V) สิ่งที่พล็อตคือกระแสไฟ LED สำคัญ: พารามิเตอร์ข้ามค่าเริ่มต้นถูกตั้งค่าเป็นใช่เพื่อให้เราเห็นว่าเกิดอะไรขึ้นเมื่อตัวเก็บประจุว่างเปล่าในตอนแรกและแหล่งจ่ายแรงดันไฟฟ้ารวมเป็น 3V นี่คือทั้งหมดที่มีสวิตช์ในสถานะเปิด

ป้อนคำอธิบายรูปภาพที่นี่

อย่างที่คุณเห็นกระแสไฟกระชากผ่าน LED แล้วตายลง หากเจตนาของคุณคือไฟ LED ควบคุมโดยผู้ควบคุมอย่างเคร่งครัดผ่านปุ่มกดแสดงว่าการออกแบบของคุณไม่ได้ใช้ความตั้งใจของคุณร้อยเปอร์เซ็นต์


สำหรับความคิดเห็นด้านล่างสมมติว่าจุดมุ่งหมายคือการผลักเข็มไมโครคอนโทรลเลอร์ (ทุกอย่างทำงานที่ 5V) ประการแรกเราสามารถทำได้โดยไม่ต้องมีความจุใด ๆ และจัดการกับการเดบิวต์ในซอฟต์แวร์โดยการสุ่มตัวอย่างพินในอัตราที่ต่ำพอสมควร

แผนผัง

จำลองวงจรนี้ - แผนผังที่สร้างโดยใช้CircuitLab

เมื่อสวิตช์เปิดสัญญาณออกจะถูกดึงไปที่ 0V โดยตัวต้านทานแบบดึงลง เมื่อเราปิดสวิตช์แรงดันไฟฟ้าที่ด้านบนของตัวต้านทานจะเพิ่มขึ้นเป็น 5V เอาท์พุทนี้ถือได้ว่าเป็นสัญญาณ เรามีความสนใจในองค์ประกอบความถี่ต่ำของสัญญาณ: กดสวิตช์ค่อนข้างช้า เราต้องการปฏิเสธความถี่สูงเช่นการตีกลับของสวิตช์ เพื่อจุดประสงค์นั้นเราสามารถเพิ่มตัวกรอง low-pass RC แบบพาสซีฟแบบพาสซีฟแบบพาสซีฟ:

แผนผัง

จำลองวงจรนี้

ตอนนี้เมื่อปิดสวิตช์แรงดันไฟฟ้าจะค่อยๆสูงขึ้นเมื่อประจุถูกประจุ คุณสามารถเห็นสิ่งนี้ในการจำลองโดเมนเวลา:

ปิดสวิตช์เรียบ

เมื่อสวิตช์เปิดขึ้นตัวเก็บประจุจะคายประจุผ่าน R1 และ R1 แล้วค่อยๆลดแรงดันกลับไปที่ศูนย์ โดยทั่วไปตัวเก็บประจุจะติดตามแรงดันไฟฟ้าของ R1 แต่ด้วยความล่าช้าเนื่องจากต้องชาร์จผ่าน R1 และปล่อยผ่าน R1 และ R2 (โปรดทราบว่าการคายประจุจะช้ากว่าประจุถึงสองเท่า!)

อินพุตไมโครโปรเซสเซอร์ตรวจจับแรงดันไฟฟ้าที่มีความต้านทานสูงดังนั้นเราจึงสามารถเพิกเฉยต่อผลการโหลดและไม่แสดงบนไดอะแกรม เราไม่สามารถทำสิ่งนี้ในกรณีของ LED เพราะต้องใช้กระแสที่วงจรของเราต้องจัดหา กระแสนั้นไหลผ่านตัวต้านทานของเราและพัฒนาแรงดันไฟฟ้าที่เราต้องคำนึงถึง: กล่าวอีกนัยหนึ่งมันมี "ผลการโหลด"

วงจรประเภทนี้จะทำงานได้ดียิ่งขึ้นถ้าเราป้อนข้อมูลไปยังทริกเกอร์ชมิดท์ ไกปืนชมิดท์เป็นบัฟเฟอร์ชนิดหนึ่งสำหรับสัญญาณดิจิตอลซึ่งแสดงให้เห็นฮิสเทรีซิสซึ่งคล้ายกับเทอร์โมมิเตอร์ เอาท์พุทมันจะสูงเมื่อบางเกินเกณฑ์การป้อนข้อมูลสูงและอยู่ในระดับต่ำเมื่อเกินเกณฑ์ต่ำที่แตกต่างกัน ตัวอย่างเช่นอาจสูงขึ้นเมื่ออินพุตสูงกว่า 3.5 โวลท์และต่ำลงเมื่ออินพุตต่ำกว่า 1.5

ดังนั้นแม้ว่าตัวเก็บประจุจะอนุญาตให้ผ่านเสียงรบกวนบางอย่างที่ยังอาจทำให้เกิดการพลิกกลับไปกลับมาใกล้กับการข้ามธรณีประตูของอินพุตทริกเกอร์ชมิดท์จะปฏิเสธสิ่งนั้น


สมมติว่าเราต้องการ debounce LED ด้วยตัวเก็บประจุ? ปัญหาคือค่าความต้านทานต่ำเกินไปเนื่องจากความต้องการจ่ายกระแสไฟ LED หากเราใช้วงจรเดียวกันและทำให้ตัวต้านทานมีขนาดเล็กลง (และตัวเก็บประจุมีขนาดใหญ่ขึ้นด้วยปัจจัยเดียวกัน) เราจะพบกับสิ่งที่สิ้นเปลืองพลังงาน วิธีการทำเช่นนี้คือการใช้ลูปสัญญาณขนาดเล็กเพื่อจัดการกับสวิทช์และ debounce มันแล้วใช้แรงดันไฟฟ้าเพื่อควบคุมทรานซิสเตอร์ที่ทิ้งกระแสไฟเข้าไปใน LED

แม้ว่าการเปิดตัว LED อาจไร้ประโยชน์หากเราทำให้ตัวต้านทานและ / หรือตัวเก็บประจุมีขนาดใหญ่พอเราสามารถรับพฤติกรรมที่ดีได้: ไฟ LED จะค่อยๆจางลงเมื่อกดปุ่มและค้างไว้และจะหายไปเมื่อปล่อย

แผนผัง

จำลองวงจรนี้

นี่เป็นวงจรเดียวกับก่อนหน้านี้: โหนด "out to microcontroller" ตอนนี้เชื่อมต่อกับฐานของ MOSFET แบบ n-channel ซึ่งขับเคลื่อนกระแสไปยัง LED MOSFET "บัฟเฟอร์" ตรรกะ debounce จากการขับขี่ LED วงจร debounce นั้นไม่ได้ถูกรบกวนจากความต้านทานต่ำของ LED และ LED ไม่ได้รับกระแสไฟฟ้าจากความต้านทานสูงในวงจร debounce


ครวญดังนั้นวิธีการแก้ปัญหาจะเป็นอย่างไร LED อาจเป็นอินพุตแบบ Arduino หรืออย่างอื่น คำถามของฉันเกี่ยวกับตัวเก็บประจุเพิ่มเติม ... ฉันพยายามคัดลอกวงจรการเดบิตที่มีอยู่เพื่อแสดงคำถามของฉันเกี่ยวกับตัวเก็บประจุ แรงดันไฟฟ้าจะเป็น 5V ไม่ใช่ 1
FMaz008

ฉันสามารถเพิ่มมันเข้าไปในคำตอบ
Kaz

ดังนั้นสิ่งที่คุณพูดคือฉันควรเพิ่มความต้านทาน 100olm ระหว่าง V1 และ SW1 ฉันเดาว่าฉันสับสนเพราะฉันยังไม่เห็นวงจร debounce ปุ่มกดที่เกี่ยวข้องกับการต้านทานมากกว่า 1 ครั้งในการสอนทั้งหมดที่ฉันได้เห็น แต่ส่วนใหญ่ไม่ได้วาดวงจรที่สมบูรณ์ (ไปยังออกไปยัง Arduino ฯลฯ ) ดังนั้นมันจึงยากที่จะเข้าใจสำหรับฉัน ดังนั้นมันจะไม่ดี? : digital.ni.com/public.nsf/8e0a9cd1e264dced86256a100082b910/ …
FMaz008

แปลกแล้วคุณอธิบายฉันว่าฉันไม่สามารถกดปุ่มที่สว่างขึ้น LED ด้วยวงจร debouncing อย่างไรก็ตามนี่ตอบคำถามเริ่มต้นฉันจะทำวิจัยเพิ่มเติมสำหรับส่วนที่เหลือ: p ฉันแค่ไม่ชอบที่จะพูดว่า 'the arduino จะทำ': ฉันรู้ว่าฉันสามารถเพิ่มความล่าช้า 20ms และไม่ทำการ debouncing แต่ฉันพยายามที่จะเข้าใจว่าเวทมนตร์คืออะไรเบื้องหลัง ... นั่นคือสาเหตุที่ฉันต้องการวงจรที่สมบูรณ์
FMaz008

คุณสามารถ debounce ปุ่ม push ที่ขับ LED แต่ไม่มีประโยชน์เพราะสวิตช์เด้งไม่ทำให้ LED ทำงานผิดปกติ สำหรับวงจรที่สมบูรณ์ลองจินตนาการว่าคุณมี Arduino ที่ขับเคลื่อนด้วย + 5V และกราวด์ จากนั้นโหนด "ออก" จะเชื่อมต่อกับหมุดอินพุตที่คุณต้องการขับ
Kaz

2

ผลกระทบนี้เกิดขึ้นเนื่องจากเมื่อตัวเก็บประจุคงที่ตัวเก็บประจุจะบล็อกกระแสไฟฟ้าจาก DC อย่างมีประสิทธิภาพ สิ่งนี้สามารถเห็นได้โดยการทำความเข้าใจสมการ

I = C * (dV / dt)

ที่ DC คำที่แตกต่างคือ 0 ดังนั้นกระแสเป็น 0 ดังนั้นกระแสผ่านตัวเก็บประจุจะเป็นศูนย์ที่สถานะคงที่

ถ้าคุณทำสิ่งนั้นเพื่อรับมันควรจะค่อนข้างชัดเจนว่าทำไมวงจรนี้ทำงาน หากคุณต้องการรายละเอียดที่มากกว่านั้นวิดีโอนี้อาจจะทำงานได้ดีขึ้นในการแสดงให้เห็นว่าฟิสิกส์ของตัวเก็บประจุเล่นได้ดีกว่าเพื่อให้ได้ผลลัพธ์ที่เหนือกว่าคำอธิบายของฉัน


วิดีโอนี้ดีมากยกเว้นว่ามันให้ฉัน: p ขอบคุณ :)
FMaz008

1

ตัวเก็บประจุสามารถใช้เป็นแบตเตอรี่แบบชาร์จไฟได้ขนาดเล็กมาก มันจะผ่านกระแสขณะชาร์จหรือคายประจุเท่านั้น

LED ส่วนใหญ่ต้องการแสงอย่างน้อย 2 โวลท์ - เพื่อให้วงจรของคุณทำงานได้ทั้งหมดแหล่งกำเนิดแรงดันควรมีอย่างน้อย 3 โวลต์ จากนั้นคุณอาจเห็นไฟ LED ส่องสว่างต่อไปอีกเสี้ยววินาทีหลังจากที่คุณเปิดสวิตช์เนื่องจากประจุประจุ


ฉันไม่ได้กำหนดค่าแรงดันไฟฟ้าจริง ๆ และทั้งหมดยกเว้นความต้านทาน เป็นการใช้งานห้องปฏิบัติการวงจรครั้งแรกของฉันดังนั้นฉันแค่ "วางองค์ประกอบที่มีค่าเริ่มต้น" ถ้าฉันจะทำให้เป็นจริงมันจะเป็น 5V
FMaz008

1
"When the capacitor is full, it doesn't transmit/conduct electricity"

ใช่. มันไม่ใช่สายไฟมันเป็น (เหมือนสัญลักษณ์) สองแผ่นขนานกัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.