Civil & Strukturell teknik
Förstå och genomföra avstängning i Arduino Button Inputs
Table of Contents
Avstängning är en teknik som används i mikrokontrollprogrammering för att säkerställa tillförlitlig läsning av knappingångar. När en knapp trycks eller frigörs kan den generera flera signaler på grund av mekaniska vibrationer, vilket orsakar falska triggers. Genomförande avstängning hjälper till att filtrera bort dessa oönskade signaler och säkerställer korrekt upptäckt av knapptryckningar.
Vad är Debouncing?
Avstängning är processen att eliminera buller orsakad av den fysiska kontakt studs av en knapp. När en knapp trycks, kan kontakten snabbt ansluta och koppla bort flera gånger innan de ställs. Utan avstängning, dessa snabba signaler kan misstolkas som flera tryck.
Metoder för avstängning
Det finns två vanliga metoder för att genomföra avstängning i Arduino:
- Programvaran avstängning: Involverar att lägga till en fördröjning eller kontrollera knappstatusen över tiden för att bekräfta en stabil signal.
- Hardware Debouncing: Använder elektroniska komponenter som RC-filter eller Schmitt-utlösare för att släta ut signalen.
Implementera programvara avstängning
Programvaruavstängning används vanligen i Arduino-projekt. Det handlar om att läsa knappstatusen, väntar på en kort period och sedan verifiera om staten förblir oförändrad. Denna process minskar falska triggers orsakade av studsning.
Exempelkodsnippet:
] const int buttonPin = 2;]
] inte knappState = 0;
] osignerade långa sistaDebounceTime = 0;
] osignerade långa avstängningar Delay = 50;
void loop() {
int reading = digitalRead(buttonPin);]
om (läs != knappState) {]
) LastDebounceTime = millis(),
[[]
om ((millis() - lastDebounceTime) > debounceDelay) {]]
] knappState = läsning;
}
}