นี่ไม่ใช่วงจร 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