User manual

17 18
4.2 Doppelte LED 4.3 Taste & LED
Nun schliessen wir einen unserer Bricks direkt an den NANO an. Dazu gibt es im Set einen Baustein mit zwei
Leuchtdioden. Der NANO-Brick verwendet neben den üblichen Masseanschlüssen (die äußeren Kontakte des
Brick-Bausteins) die beiden inneren Kontakte getrennt. Es gibt beim diesem Brick auch Kontakte die unten
liegen, doch dazu später mehr. Die beiden LEDs sind mit den Portausgängen PD2 und PD3 verbunden, dies
entspicht auch der Nummerierung 2 und 3 im Sketch. Ist der Nano-Brick noch über den USB-Port mit dem PC
verbunden, kann der Netzteil-Brick auch weggelassen werden. Die LEDs blinken hier abwechseln, da immer
paarweise 2 auf high und 3 auf low und dannach 2 auf low und 3 auf high gesetzt werden. Die LEDs unter-
scheiden sich je nach Baustein in der Farbe.
Hier haben wir zusätzlich eine Taste eingebaut. Sie schließt einen Port auf 0V wenn man die Taste drückt. Bei
offener Taste, wäre der Zustand des Eingangs undeniert. Man kann da z.B. einen Pullup Widerstand an +5V
(nicht 9V!) schalten, oder was einfacher ist, es gibt beim Arduino Sketch einen INPUT_PULLUP Modus, der
bewirkt, dass ein im Prozessor vorhandener 20 kOhm Widerstand nach +5V geschaltet wird, und wir brauchen
nicht soviel Aufwand bei der Beschaltung, wie ohne einen solchen Befehl. Wenn man die Taste drückt, blinken
die LEDs abwechselnd, beim Loslassen wird ein Blinkzyklus noch abgeschlossen, dann bleibt der Status erhalten.
Den Tasten-Brick kann man nicht ohne weiteres direkt den freien Port 4 bzw 5 anschliessen, er würde norma-
lerweise nur die Kontakte auf der Oberseite kontaktieren. Dazu gibt es unseren Spezialbrick: Er verbindet die
Signale der Unterseite des Nano-Bricks auf die Oberseite entsprechend dem Schaltsymbol. Die Taste überbrückt
+
-
9V
1A
LED
LED
// DE_2 Doppelte LED
#dene PORTLED2 2 // deniert das Symbol PORTLED2 mit 2
#dene PORTLED3 3 // entsprechend fuer PORTLED3
// Ausführen am Anfang
void setup() {
pinMode(PORTLED2,OUTPUT); // Port 2 als Ausgang schalten
pinMode(PORTLED3,OUTPUT); // Port 3 als Ausgang schalten
}
// Schleife wird wiederholt ausgefuehrt:
void loop() {
digitalWrite(PORTLED2,HIGH); // Ausgang auf hohen Pegel schalten
digitalWrite(PORTLED3,LOW); // Ausgang auf niedrigen Pegel
schalten
delay(1000); // Eine weitere Sekunde warten (=1000 ms)
digitalWrite(PORTLED2,LOW); // Ausgang auf niedrigen Pegel
schalten
digitalWrite(PORTLED3,HIGH); // Ausgang auf hohen Pegel schalten
delay(1000); // Eine weitere Sekunde warten
}
// DE_3 Taste & LED
#dene PORTLED2 2 // Ausgang wird Port 2
#dene PORTLED3 3 // und Port 3 dort die LED
#dene PORTSWTTCH4 4 // SChalter an Port 4 (und
5)
void setup() {
pinMode(PORTLED2,OUTPUT); // Port 2 als Ausgang
schalten
pinMode(PORTLED3,OUTPUT); // Port 3 als Ausgang
schalten
pinMode(PORTSWTTCH4,INPUT_PULLUP); // Port 4
als Eingang mit internem Pull Up
}
void loop() {
if (digitalRead(PORTSWTTCH4)==LOW) { // nur bei
gedrückter Taste
digitalWrite(PORTLED2,HIGH); // Ausgang auf
hohen Pegel schalten
digitalWrite(PORTLED3,LOW); // Ausgang auf
niedrigen Pegel schalten
delay(1000); // Eine weitere Sekunde warten
digitalWrite(PORTLED2,LOW); // Ausgang auf
niedrigen Pegel schalten
digitalWrite(PORTLED3,HIGH); // Ausgang auf
hohen Pegel schalten
delay(1000); // Eine weitere Sekunde warten
} // ende Abfrage fuer gedrueckte Taste
} // Ende der Schleife
LED
LED
+
-
9V
1A
Downsi de
UP
SCLS DA
+9V
A0
A1
Tx
Rx
PD2
SCLKMOSI
PD3
PD 6
PD 4
PD 5
PD 7
A7
A3
A2
A6
NANO
to
Br ick`R`
3,3V 5V
USB
B0
SS
MISC
B1
C
SCLS DA
+9V
A0
A1
Tx
Rx
PD2
SCLKMOSI
PD3
PD 6
PD 4
PD 5
PD 7
A7
A3
A2
A6
NANO
to
Br ick`R`
3,3V 5V
USB
B0
SS
MISC
B1
C
Was passiert? Die beiden LEDs
blinken im Sekundentakt ab-
wechselnd.
Was passiert? Die beiden LEDs blinken im Sekundentakt
abwechselnd, während man die Taste gedrückt hält.
hier Ports PD4 und PD5 gleichzeitig, was aber nicht weiter stört. Wir verwenden Port
PD4 zur Abfrage. PD6 und PD7 werden hier nach oben weiter geführt.