Arts >> Művészet és szórakozás >  >> Mágia >> Bűvésztrükkök

Hogyan lehet visszaállítani a kapcsolót?

A kapcsoló visszapattanása egy kulcsfontosságú technika az elektronikában, amely megakadályozza, hogy egyetlen megnyomásra több kioldó is történjen. Íme egy lebontás, hogy mi ez, miért van szükség rá, és hogyan érhető el különböző módszerek:

A probléma értelmezése:

* Névjegy visszapattanása: A mechanikus kapcsolók lenyomásakor vagy elengedésekor nem váltanak át azonnal a nyitott és zárt állapotok között. A mechanikai rezgések és az érintkezési hibák miatt többször "pattannak".

* Több trigger: Ez a pattogás több elektromos jelet is generálhat, még akkor is, ha a felhasználó csak egyetlen megnyomásra gondolt. Ez nem kívánt viselkedést okozhat az áramkörökben, különösen azokban, amelyek érzékenyek az időzítésre.

Miért a Debounce?

* Pontos jelértelmezés: Megakadályozza, hogy a hamis jelek befolyásolják az áramkör logikáját vagy vezérlési funkcióit.

* Megbízható működés: Biztosítja, hogy az áramkör csak egyszer reagáljon egyetlen kapcsolónyomásra.

Kipattanási módszerek:

1. Hardveres visszapattanás:

* RC áramkör: A leggyakoribb módszer. Az ellenállás (R) és a kondenzátor (C) párhuzamosan csatlakozik a kapcsolón keresztül. A kondenzátor lassan tölt és kisül, kiszűrve a gyorsan visszapattanó jeleket.

* Hogyan működik: Amikor a kapcsoló zár, a kondenzátor az ellenálláson keresztül töltődik. A visszapattanó jelek túl gyorsak a kondenzátor teljes feltöltéséhez, ezért csak egyetlen tiszta jel halad át.

* Dióda alapú: Diódát használ, hogy megakadályozza a kondenzátor túl gyors kisülését. Ez tiszta jelet biztosít, még akkor is, ha a visszapattanás hosszan tartó.

2. Szoftver visszapattanása:

* Szoftver időzítő: A mikrokontroller programozható úgy, hogy a kapcsoló megnyomása után rövid ideig figyelmen kívül hagyja a bemeneti változásokat. Az ezen időn belüli bármilyen változás visszafordulásnak minősül.

* Hogyan működik: A kapcsoló első megnyomásakor elindul az időzítő. Az időzítő időtartamán belüli további változtatásokat figyelmen kívül hagyja. Az időzítő lejárta után az új kapcsolási állapot elfogadásra kerül.

* Állapotgép: Állapotgépet használ a kapcsoló állapotának nyomon követésére. A gép csak késleltetés után vált állapotot, kiszűri a visszapattanó jeleket.

3. Speciális visszapattanó IC-k:

* Visszatérő IC-k: Kifejezetten a jelek visszaverésére tervezték, robusztus és megbízható megoldásokat kínálva.

A megfelelő módszer kiválasztása:

* Hardveres visszapattanás: Legjobb egyszerű áramkörökhöz, és amikor a költséghatékonyság fontos.

* Szoftver visszapattanása: Nagyobb rugalmasságot kínál, és bonyolultabb forgatókönyveket is képes kezelni.

* Speciális visszapattanó IC-k: Ideális olyan alkalmazásokhoz, amelyek nagy pontosságot, sebességet igényelnek, vagy ha korlátozott a hely.

Főbb szempontok:

* Visszafordulási idő: A visszapattanáshoz használt késleltetésnek vagy időablaknak hosszabbnak kell lennie, mint a váltási visszapattanás időtartama, de rövidebbnek kell lennie, mint a felhasználó várható válaszideje.

* Az áramkör összetettsége: A választott visszacsatolási módszernek meg kell felelnie az áramkör összetettségének és a rendelkezésre álló erőforrásoknak.

Példakód (Szoftver visszapattanása Arduinoval):

``` c++

const int switchPin =2; // A kapcsolóhoz csatlakoztatott tű

int switchState =0; // A kapcsoló kezdeti állapota

unsigned long lastDebounceTime =0; // Legutóbbi alkalommal a kapcsoló állapotot váltott

const unsigned long debounceDelay =50; // Késleltetés ezredmásodpercben

void setup() {

pinMode(kapcsolóPin, INPUT_PULLUP); // Konfigurálja a PIN-kódot a bemenethez

Serial.begin(9600);

}

void loop() {

int olvasás =digitalRead(switchPin);

// Ha a kapcsoló megváltozott, állítsa vissza az időzítőt

if (olvasás !=switchState) {

lastDebounceTime =millis();

}

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

// Ha a késleltetés elég hosszú, tekintse érvényesnek a változtatást

switchState =olvasás;

// A kapcsoló állapotának feldolgozása

if (switchState ==LOW) {

Serial.println("Kapcsoló lenyomva!");

} másik {

Serial.println("A kapcsoló feloldva!");

}

}

}

```

Ez az Arduino kód úgy valósítja meg a szoftver visszapattanását, hogy ellenőrzi a kapcsoló állapotát, és összehasonlítja az előző állapottal. Ha változást észlel, visszaállítja az időzítőt. A módosítás csak bizonyos késleltetés (debounceDelay) után tekinthető érvényesnek és feldolgozottnak.

Bűvésztrükkök

Kapcsolódó kategóriák