Arts >> Sztuka i rozrywka >  >> Magia >> Sztuczki magiczne

Jak odbić przełącznik?

Odbijanie przełącznika jest kluczową techniką w elektronice, która pozwala zapobiegać niechcianym wielokrotnym włączeniom po jednym naciśnięciu. Oto zestawienie tego, co to jest, dlaczego jest to konieczne i różne metody osiągnięcia tego celu:

Zrozumienie problemu:

* Przełącz odbijanie kontaktu: Przełączniki mechaniczne po naciśnięciu lub zwolnieniu nie przechodzą natychmiastowo między stanem otwartym i zamkniętym. Wielokrotnie „odbijają się” z powodu wibracji mechanicznych i niedoskonałości styku.

* Wiele wyzwalaczy: To odbijanie może generować wiele sygnałów elektrycznych, nawet jeśli użytkownik zamierzał tylko jedno naciśnięcie. Może to powodować niezamierzone zachowanie obwodów, szczególnie tych wrażliwych na synchronizację.

Dlaczego zdemaskować?

* Dokładna interpretacja sygnału: Zapobiega wpływowi fałszywych sygnałów na logikę lub funkcje sterujące obwodu.

* Niezawodne działanie: Zapewnia, że obwód zareaguje tylko raz na pojedyncze naciśnięcie przełącznika.

Metody odrzucania:

1. Odbijanie sprzętu:

* Obwód RC: Najpopularniejsza metoda. Rezystor (R) i kondensator (C) są połączone równolegle w przełączniku. Kondensator ładuje się i rozładowuje powoli, odfiltrowując szybko odbijające się sygnały.

* Jak to działa: Kiedy przełącznik się zamyka, kondensator ładuje się przez rezystor. Sygnały odbicia są zbyt szybkie, aby w pełni naładować kondensator, dlatego przechodzi tylko pojedynczy, czysty sygnał.

* Oparte na diodach: Wykorzystuje diodę, aby zapobiec zbyt szybkiemu rozładowaniu kondensatora. Zapewnia to czysty sygnał, nawet jeśli odbicie jest długotrwałe.

2. Odrzucanie oprogramowania:

* Licznik programowy: Mikrokontroler można zaprogramować tak, aby ignorował zmiany sygnału wejściowego przez krótki czas po naciśnięciu przełącznika. Wszelkie zmiany w tym czasie uznawane są za odrzucenie.

* Jak to działa: Odliczanie czasu zostaje uruchomione po pierwszym naciśnięciu przełącznika. Wszelkie dalsze zmiany w czasie trwania timera są ignorowane. Po upływie czasu timera nowy stan przełącznika zostaje zaakceptowany.

* Maszyna stanu: Używa maszyny stanu do śledzenia stanu przełącznika. Maszyna zmienia stany dopiero z opóźnieniem, odfiltrowując odbijające się sygnały.

3. Specjalistyczne układy scalone odbijające:

* Odrzucanie układów scalonych: Zaprojektowane specjalnie do tłumienia sygnałów, zapewniając solidne i niezawodne rozwiązania.

Wybór właściwej metody:

* Odbijanie sprzętu: Najlepsze do prostych obwodów i gdy ważna jest opłacalność.

* Debouncing oprogramowania: Oferuje większą elastyczność i może obsługiwać bardziej złożone scenariusze.

* Specjalistyczne układy scalone odbijające: Idealny do zastosowań wymagających dużej dokładności, szybkości lub gdy przestrzeń jest ograniczona.

Kluczowe kwestie:

* Czas odbicia: Opóźnienie lub okno czasowe używane do odbicia powinno być dłuższe niż czas trwania odbicia przełącznika, ale krótsze niż oczekiwany czas reakcji użytkownika.

* Złożoność obwodu: Wybrana metoda usuwania odbić powinna być odpowiednia do złożoności obwodu i dostępnych zasobów.

Przykładowy kod (debouncing oprogramowania z Arduino):

```c++

stała int przełącznikPin =2; // Pin podłączony do przełącznika

int stanprzełączenia =0; // Stan początkowy przełącznika

unsigned long lastDebounceTime =0; // Ostatni raz, gdy przełącznik zmienił stan

const unsigned long debounceDelay =50; // Opóźnienie w milisekundach

unieważnij konfigurację() {

pinMode(przełącznikPin, INPUT_PULLUP); // Skonfiguruj pin dla wejścia

Serial.begin(9600);

}

pusta pętla() {

int czytanie =digitalRead(switchPin);

// Jeśli przełącznik się zmienił, zresetuj licznik czasu

if (czytanie!=stanprzełączenia) {

lastDebounceTime =millis();

}

if ((millis() - lastDebounceTime)> opóźnienie debounce) {

// Jeśli opóźnienie jest wystarczająco duże, uznaj zmianę za ważną

switchState =odczyt;

// Przetwórz stan przełącznika

if (stanprzełączenia ==NISKI) {

Serial.println("Przełącznik wciśnięty!");

} jeszcze {

Serial.println("Przełącznik zwolniony!");

}

}

}

```

Ten kod Arduino implementuje odrzucanie oprogramowania poprzez sprawdzenie stanu przełącznika i porównanie go z poprzednim stanem. Jeśli zostanie wykryta zmiana, resetuje licznik czasu. Dopiero po pewnym opóźnieniu (debounceDelay) zmiana zostaje uznana za ważną i przetworzoną.

Sztuczki magiczne

Powiązane kategorie