Arts >> Kunst og underholdning >  >> Magi >> Trylletriks

Hvordan fjerner du en bryter?

Å slå ut en bryter er en avgjørende teknikk innen elektronikk for å forhindre uønskede flere triggere fra et enkelt trykk. Her er en oversikt over hva det er, hvorfor det er nødvendig, og ulike metoder for å oppnå det:

Forstå problemet:

* Bytt kontaktsprett: Mekaniske brytere, når de trykkes eller slippes, går ikke umiddelbart mellom åpen og lukket tilstand. De "spretter" flere ganger på grunn av mekaniske vibrasjoner og kontaktfeil.

* Flere utløsere: Denne sprettende kan generere flere elektriske signaler selv om brukeren bare hadde til hensikt ett enkelt trykk. Dette kan forårsake utilsiktet oppførsel i kretser, spesielt de som er følsomme for timing.

Hvorfor debounce?

* Nøyaktig signaltolkning: Forhindrer falske signaler fra å påvirke kretsens logikk eller kontrollfunksjoner.

* Pålitelig drift: Sikrer at kretsen din bare reagerer én gang på et enkelt brytertrykk.

Debouncing-metoder:

1. Maskinvareavvisning:

* RC-krets: Den vanligste metoden. En motstand (R) og kondensator (C) er koblet parallelt over bryteren. Kondensatoren lader og utlades sakte, og filtrerer ut de raske sprettsignalene.

* Slik fungerer det: Når bryteren lukkes, lades kondensatoren gjennom motstanden. Sprettsignalene er for raske til å lade kondensatoren helt, så bare et enkelt, rent signal går gjennom.

* Diodebasert: Bruker en diode for å hindre at kondensatoren utlades for raskt. Dette sikrer et rent signal, selv om sprett er forlenget.

2. Programvareavvisning:

* Programvaretimer: En mikrokontroller kan programmeres til å ignorere inngangsendringer i en kort periode etter et brytertrykk. Eventuelle endringer innen den tiden regnes som sprett.

* Slik fungerer det: En timer startes når bryteren trykkes inn første gang. Eventuelle ytterligere endringer innenfor tidtakerens varighet ignoreres. Etter at tidtakeren utløper, aksepteres den nye brytertilstanden.

* State maskin: Bruker en tilstandsmaskin for å spore brytertilstanden. Maskinen endrer tilstand kun etter en forsinkelse, og filtrerer ut sprettsignalene.

3. Spesialiserte debouncing-ICer:

* Debouncing ICs: Designet spesielt for å avvise signaler, og gir robuste og pålitelige løsninger.

Velge riktig metode:

* Debouncing av maskinvare: Best for enkle kretser og når kostnadseffektivitet er viktig.

* Programvareavvisning: Tilbyr større fleksibilitet og kan håndtere mer komplekse scenarier.

* Spesialiserte debouncing IC-er: Ideell for applikasjoner som krever høy nøyaktighet, hastighet, eller når plassen er begrenset.

Nøkkelhensyn:

* Utkoblingstid: Forsinkelsen eller tidsvinduet som brukes for avhopping skal være lengre enn varigheten av brytersprett, men kortere enn brukerens forventede responstid.

* Kretskompleksitet: Den valgte debouncing-metoden bør være passende for kompleksiteten til kretsen og de tilgjengelige ressursene.

Eksempelkode (programvare som debouncing med Arduino):

```c++

const int switchPin =2; // Pin koblet til bryteren

int switchState =0; // Starttilstand for bryteren

unsigned long lastDebounceTime =0; // Sist gang bryteren endret tilstand

const unsigned long debounceDelay =50; // Forsinkelse i millisekunder

void setup() {

pinMode(switchPin, INPUT_PULLUP); // Konfigurer pinnen for input

Serial.begin(9600);

}

void loop() {

int lesing =digitalRead(switchPin);

// Hvis bryteren endret seg, tilbakestill tidtakeren

if (leser !=switchState) {

lastDebounceTime =millis();

}

if ((millis() - lastDebounceTime)> debounceDelay) {

// Hvis forsinkelsen er lang nok, anser endringen som gyldig

switchState =lesing;

// Behandle brytertilstanden

if (switchState ==LAV) {

Serial.println("Bytter trykket!");

} annet {

Serial.println("Switch utgitt!");

}

}

}

```

Denne Arduino-koden implementerer programvaredebouncing ved å sjekke brytertilstanden og sammenligne den med forrige tilstand. Hvis en endring oppdages, tilbakestiller den en tidtaker. Først etter en viss forsinkelse (debounceDelay) anses endringen som gyldig og behandlet.

Trylletriks

Relaterte kategorier