Debouncing
Debouncing
Debounce adalah Usaha pencegahan penutupan palsu suatu kunci atau saklar yang
telah dikenali sebagai satu cara untuk menguci sinyal masuk. Debounce juga berarti
mengenalkan waktu tunggu yang memberi jeda sebelum dilakukan proses transmisi
data kembali.
Saat Anda menekan tombol pada keyboard komputer Anda, Anda mengharapkan
satu kontak dicatat oleh komputer Anda. Namun, sebenarnya, ada kontak awal,
sedikit memantul atau meringankan kontak, kemudian kontak lain ketika bounce
berakhir, namun yang lain bangkit kembali, dan seterusnya. Efek serupa terjadi
ketika saklar yang dibuat menggunakan kontak logam dibuka. Solusi yang biasa
adalah perangkat debouncing atau perangkat lunak yang memastikan bahwa hanya
satu sinyal digital dapat didaftarkan dalam ruang waktu tertentu (biasanya
milidetik).
Switch yg sederhana seringkali menimbulkan bouncing seperti tampak pada gambar berikut:
Untuk menghilangkan sinyal bouncing dari sebuah switch kita bisa menggunakan 2 cara : secara
hardware dan software.
atau
B . SOFTWARE
int buttonState = LOW; //this variable tracks the state of the button, low if not pressed, high
if pressed
int ledState = -1; //this variable tracks the state of the LED, negative if off, positive if on
long lastDebounceTime = 0; // the last time the output pin was toggled
long debounceDelay = 50; // the debounce time; increase if the output flickers
void setup() {
pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT);
void loop() {
buttonState = digitalRead(buttonPin);
//if the button has been pressed, lets toggle the LED from "off to on" or "on to off"
ledState = -ledState; //now the LED is on, we need to change the state
ledState = -ledState; //now the LED is off, we need to change the state
}//close if/else