V prejšnjem primeru smo opazili, da lahko dobimo več izhodnih vrednosti, če pritisnemo tipko le enkrat. Branje na digitalni nožici PIN2 se izvaja z visoko frekvenco vzorčenja. Tako je prehodni pojav pri vzpostavitvi kontakta v tipki sicer pravilno odčitan, vendar pa želimo, da ob enkratnem pritisku dobimo na izhodu le eno vrednost. Hitro preklapljanje namreč pri večini naprav ne bi bilo zaželjeno.
V nadaljevanju bomo zapisali kodo za protiodboj ("debounce"), ki bo rešila problem s prehodnim pojavom ob pritisku tipke.
Vezava na prototipni ploščici je enaka kot v pri primeru 07.
board.digitalRead na nožici pin 2 se ves čas izvaja, t.j. bere. Ob vsaki spremembi iz 0->1 ali iz 1->0 se prebere stanje. Ob prehodnem pojavu vzpostavitve kontakta, ko vhod ni stabilen, se dogodi naslednje: 1.) spremenljivka timeout je postavljena na vrednost "false", 2.) timeout = setTimeout postavi vrednost timeout na "true", 3.) ob spremembi vhoda iz 0->1 ali iz 1->0 znotraj 50ms se timeout postavi na "false" z ukazom clearTimeout(timeout).
Tako se zagnani Timeout izbriše s stavkom clearTimeout(timeout), če se znotraj 50ms stanje spremeni.
V primeru, da je vhod stabilen, se upošteva časovnik, ki je nastavljen na 50ms: timeout = setTimeout(function() in po 50ms upoštevamo spremembo stanja in pošljemo sporočilo ter prižgemo oz. ugasnemo svetlečo diodo.