Avstängning är en teknik som används i digital elektronik för att säkerställa att endast en enda signal registreras när en switch eller knapp trycks. Mekaniska switchar genererar ofta flera signaler på grund av kontaktstuds, vilket kan orsaka fel i digitala system. Genomförande avstängning hjälper till att förbättra tillförlitligheten av ingångsavläsningar.
Förstå Switch Bounce
När en mekanisk switch trycks eller frigörs, kontakterna inte ändra staten rent. Istället, de snabbt göra och bryta kontakt flera gånger innan de lägger sig. Detta fenomen, känd som studs, kan vara från några mikrosekunder till millisekunder, vilket leder till flera oönskade signaler.
Praktiska avstängningstekniker
Flera metoder används för att avvisa digitala ingångar, inklusive hårdvaru- och mjukvarumetoder. Hårdvara avstängning innebär ofta RC-filter eller Schmitt-utlösare, medan programvara avstängning använder timingalgoritmer för att ignorera snabba statliga förändringar.
Implementera programvara avstängning
Programvara som avstänger innebär vanligtvis att provtagning av ingången med jämna mellanrum och bekräftar statsändringen endast om den förblir stabil under en viss varaktighet. Denna metod är flexibel och lätt att genomföra i mikrokontrollkod.
Om en knappingång läser var tionde millisekunder kan systemet till exempel kontrollera att inmatningen förblir i det nya tillståndet i minst 50 millisekunder innan ändringen registreras. Detta minskar falska triggers orsakade av studs.
Beräkna Debounce Time
Avstängningstiden beror på omkopplarens egenskaper och systemkrav. Ett vanligt tillvägagångssätt är att välja ett avstängningsintervall mellan 5 till 20 millisekunder. Beräkningen innebär att mäta maximal studslängd och lägga till en säkerhetsmarginal.
Om växeln studsar för upp till 10 millisekunder, ställer en avstängningstid på 20 millisekunder säkerställer tillförlitlig detektering utan signifikant fördröjning.
- Identifiera maximal studslängd
- Välj ett avstängningsintervall något längre än studsa tid
- Implementera periodisk provtagning i kod
- Bekräfta stabilt tillstånd innan du registrerar inmatning