User manual

2
5
10.
T
a
g
Heute im Adventskalender
•1x Taste
r
Tastendruck anzeige
n
Heute rea
g
iert Ihr IoT-Board au
f
einen mechanischen Tasten-
druck und gibt eine Meldung an die Funkschnittstelle weiter.
B
aute
il
e
: 1x Steckbrett, 1xTaster, 1xPotenziometer,
5xDrahtbrücken (unterschiedliche Län
g
en
)
Digita
l
e Pins
k
önnen nic
h
t nur Daten ausge
b
en, zum Beispie
l
ü
b
er LEDs, son
d
ern auc
h
zur Dateneinga
b
e verwen
d
et wer
d
en.
Zur Einga
b
e verwen
d
en wir im
h
eutigen Proje
k
t einen Taster,
der direkt au
f
die Steckplatine gesteckt wird. Der Taster hat
vier Anschlusspins, wobei je zwei gegenüberliegende (gro-
ßer Abstand) miteinander verbunden sind. Solange die Taste
gedrückt ist, sind alle vier Anschlüsse miteinander verbunden.
Im Gegensatz zu einem Schalter rastet ein Taster nicht ein. Die
V
erbindung wird beim Loslassen so
f
ort wieder getrennt
.
Liegt au
f
einem digitalen Eingang ein +5-V-Signal an, wird dieses als logisch w
ah
r ausgewer
t
e
t.
Bei offenem Taster hätte der Eingang keinen eindeutig defi nierten Zustand. Wenn ein Programm diesen
Pin abfragt, kann es zu zufälligen Ergebnissen kommen. Um das zu verhindern, schließt man einen ver
-
gleichsweise sehr hohen Widerstand gegen Masse. Dieser sogenannte Pull-down-Widerstand zieht den
Status des Eingangspins bei geöffnetem Taster wieder nach unten auf 0V. Da der Widerstand sehr hoch
ist, besteht, solange der Taster gedrückt ist, auch keine Kurzschlussgefahr. Im gedrückten Zustand des
Tasters sind +5V und die Masseleitung direkt über diesen Widerstand verbunden.
D
e
r
Sketch
Das Programm für diesen Tag trägt den Namen
T
a
g
10.ino und liegt im Verzeichnis Ta
g
1
0
.
Übe
r
de
n A
u
fr
u
f
von di
g
italRea
d
wird aus
g
ewertet, ob der Taster
g
edckt wurde
:
vo
i
d
lo
o
p()
{
int readin
g
= di
g
italRead(buttonPin);
if (readin
g
!= lastButtonState)
{
lastDebounceTime = millis()
;
}
if ((millis() – lastDebounceTime) > debounceDelay)
{
if
(
reading != buttonState
)
{
buttonState = read
i
n
g;
if
(
buttonState == HIGH
)
{
ledState = !ledState
;
}
}
}
d
igi
talWrite(LedPin
,
ledState)
;
Fa
ll
s
d
er Taster ge
d
rüc
k
t wur
d
e, wir
d
eine Nac
h
ric
h
t ü
b
er
d
ie Fun
k
sc
h
nittste
ll
e gesen
d
et
:
if
(
reading != lastButtonState
)
{
HC05.print
(
"Taste gedrückt\n"
)
;
}
Rea
k
tion
d
es IoT-Boar
d
s anzeige
n
Für die Anzeige des Tastendrucks au
f
dem Smartphone wird die bereits genutzte App Seria
l
B
l
uetoot
h
Termina
l
verwen
d
et. Nac
h
d
er Ver
b
in
d
ung mit
d
em IoT-Boar
d
wir
d
b
ei einem Tasten-
d
ruc
k
d
ann
d
ie Me
ld
ung
Taste gedrückt
angezeigt
.
t
D
as IoT-Board ist sehr lang, deswegen muss der Taster quer auf das Steckbrett gesteckt wer-
d
en, un
d
tei
l
weise müssen
d
ie Dra
h
t
b
rüc
k
en unter
d
em angesc
hl
ossenen USB-Ka
b
e
l
ver
l
egt
w
er
d
en.
Empfangene Meldungen werden in grüner Farbe ins
Terminalfenster geschrieben
.
10. Tag
15007-3 Conrad Adventskalender Internet of Things 2017_02.indd 2515007-3 Conrad Adventskalender Internet of Things 2017_02.indd 25 19.07.2017 14:15:1319.07.2017 14:15:13