User manual
25 26
4.7 Einfaches Lauicht
Unsere Schaltung kann auch zu einem Lauicht ausgebaut werden. Dazu wird hier noch ein weiterer Doppel-
LED-Brick dazugesetzt. Hier kommt noch ein Spezialbaustein zum Einsatz, der auch an der Unterseite Kontakte
hat. Diese bleiben aber in diesem Fall ungenutzt und dienen nur zur Weiterleitung der beiden LED Signale von
Port 6 und 7 auf der Oberseite.
Man beachte die Zuordnung von Port 6 und 7 über die Leitung. Wird das Doppel-T rechts anders eingebaut,
kann sich die Richtung des Lauichts für die beiden LED 6 und 7 umgekehren! Man beachte, dass LED 6 dem Bit
0 zugeordnet ist und LED 7 dem Bit 1. Dem Leser bleibt es hier überlassen, andere Reihenfolgen auszuprobie-
ren.
Downsi de
UP
+
-
9V
1A
LED
LED
LED
LED
LED
LED
// DE_7 Lauicht mit 6 LEDs
#dene PORTLED2 2 // Alle LEDs denieren
#dene PORTLED3 3 // Ports PD2 bis PD7
#dene PORTLED4 4 // werden verwendet
#dene PORTLED5 5 // Beim Brick auf die
#dene PORTLED6 6 // genaue Zuordnung achten
#dene PORTLED7 7
void setup() { // IO denieren
pinMode(PORTLED2,OUTPUT); // Port 2 als Ausgang schalten
pinMode(PORTLED3,OUTPUT); // Port 3 als Ausgang schalten
pinMode(PORTLED4,OUTPUT); // Port 4 als Ausgang schalten
pinMode(PORTLED5,OUTPUT); // Port 5 als Ausgang schalten
pinMode(PORTLED6,OUTPUT); // Port 6 als Ausgang schalten
pinMode(PORTLED7,OUTPUT); // Port 7 als Ausgang schalten
}
void loop() {
static int shiftreg = 1; // Lauicht Startbit 6 Bits werden verwendet
if (shiftreg & 1) { // Bit 0 pruefen bis Bit 5 diesmal
digitalWrite(PORTLED6,HIGH); // rechte LED
} else digitalWrite(PORTLED6,LOW); //
if (shiftreg & 2) { // Bit 1 pruefen
digitalWrite(PORTLED7,HIGH); // linke LED
} else digitalWrite(PORTLED7,LOW); //
if (shiftreg & 4) { // Bit 2 pruefen
digitalWrite(PORTLED4,HIGH); //
} else digitalWrite(PORTLED4,LOW); //
if (shiftreg & 8) { // Bit 3 pruefen
digitalWrite(PORTLED5,HIGH); //
} else digitalWrite(PORTLED5,LOW); //
if (shiftreg & 0x10) { // Bit 4 pruefen
digitalWrite(PORTLED3,HIGH); //
} else digitalWrite(PORTLED3,LOW); //
if (shiftreg & 0x20) { // Bit 5 pruefen
digitalWrite(PORTLED2,HIGH); //
} else digitalWrite(PORTLED2,LOW); //
//
delay(300); // 300 ms warten deniert die Geschwindigkeit
shiftreg = shiftreg << 1; // 1,2,4,8,16,32 Schiebebefehl C-Compiler
if (shiftreg > 32) shiftreg = 1; // dann wieder von Vorne. Damit es rund laeuft
} // Ende der Schleife
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
I²C
Was passiert? Von den 6 LEDs geht immer genau eine an, die andern sind dunkel. Dabei wandert
das Licht von rechts nach links durch. Der Wechsel zur nächsten LED geschieht alle 300ms. Danach
wiederholt sich der ganze Zyklus.










