Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
boebot-public
/
eriala-2024
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
f375a445
authored
Sep 24, 2025
by
Risto Heinsar
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Added complete debounce demo with time of click
parent
3a560d19
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
68 additions
and
0 deletions
lab4/lab4_demo_debounce/lab4_demo_debounce.ino
lab4/lab4_demo_debounce/lab4_demo_debounce.ino
0 → 100644
View file @
f375a445
#define BUTTON_PIN 2
const
unsigned
long
debounceDelay
=
30
;
void
setup
()
{
// put your setup code here, to run once:
Serial
.
begin
(
9600
);
pinMode
(
BUTTON_PIN
,
INPUT
);
}
void
loop
()
{
// put your main code here, to run repeatedly:
if
(
ButtonRead
())
{
Serial
.
print
(
"Nupp vajutati "
);
Serial
.
print
(
millis
()
/
1000.0
);
Serial
.
println
(
" s käivitusest"
);
}
}
bool
ButtonRead
(
void
)
{
/* Nupu olek eelnevast funktsiooni käivitamisest, kasutame stabiliseerimiseks */
static
bool
lastButtonState
=
LOW
;
/* Viimase nupu oleku muutuse tuvastatud aeg, kasutame stabiliseerimiseks */
static
uint32_t
lastDebounceTime
=
0
;
/* Eelmine stabiilne nupu olek, vajalik nupu all hoidmisel korduste vältimiseks */
static
bool
buttonState
=
LOW
;
/* Vaikimisi eeldame, et nupp pole vajutatud enne kui kontrollime */
bool
returnVal
=
LOW
;
/* Loeme nupu oleku */
bool
btnReadValue
=
digitalRead
(
BUTTON_PIN
);
/* Tuvastame kui nupu väärtus on muutunud eelmisest korrast */
if
(
btnReadValue
!=
lastButtonState
)
{
/* Uuendame millal viimati nupu olek muutus */
lastDebounceTime
=
millis
();
}
/* Kui nupu olek on piisavalt kaua olnud stabiilne (muutusteta, ei "võngu") */
if
((
millis
()
-
lastDebounceTime
)
>
debounceDelay
)
{
/* Väldib uue nupuvajutuse saatmise kuniks nupp pole lahti lastud vahepeal */
if
(
btnReadValue
!=
buttonState
)
{
/* Uuendame viimast stabiilset nupu olekut */
buttonState
=
btnReadValue
;
/* Tagab, et kui nupp on vajutatud, siis tagastatakse HIGH väärtus ehk vajutatud
* Lihtsustatud kujult: if (buttonstate == HIGH) returnVal = HIGH
*/
returnVal
=
buttonState
;
}
}
/* Funktsiooni korduse jaoks vajalik, et tuvastada nupu oleku muutus järgmisel korral */
lastButtonState
=
btnReadValue
;
return
returnVal
;
}
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment