1
2
3
4
5int PinErsteLED=2;
6
7
8int PinTaster=9;
9
10
11
12
13
14int wuerfelBild[8][7]=
15 {{0,0,0,0,0,0,0},
16 {0,0,0,0,0,0,1},
17 {0,1,0,0,1,0,0},
18 {1,0,0,0,0,1,1},
19 {1,1,0,0,1,1,0},
20 {1,1,0,0,1,1,1},
21 {1,1,1,1,1,1,0},
22 {1,1,1,1,1,1,1}};
23
24int lauflichtmax=6;
25int lauflicht[6]= { 1, 7, 6, 2, 7, 5};
26int lauflichtpause[6]={ 60,100,180,180,100, 60};
27
28
29void setup() {
30
31
32 for (int i=PinErsteLED;i<=PinErsteLED+6;++i)
33 pinMode(i,OUTPUT);
34
35
36 pinMode(PinTaster,INPUT);
37}
38
39
40void ZeigeZahl(int zahl) {
41 for (int i=0;i<=6;++i)
42 digitalWrite(i+PinErsteLED,wuerfelBild[zahl][i]?HIGH:LOW);
43}
44
45void loop() {
46
47int i,j,zufall;
48unsigned long spezial;
49
50 ZeigeZahl(7);
51 delay(1000);
52
53 i=0;
54 do {
55 i=i+1;
56 if (i>6) {i=1;}
57 delay(500);
58 ZeigeZahl(i);
59 } while (digitalRead(PinTaster)==HIGH);
60
61
62 do {
63
64 zufall=0;
65 i=0;
66 spezial=millis();
67 do {
68 zufall=zufall+1;
69 i=i+1;
70 if (i>=lauflichtmax) {i=0;}
71 delay(lauflichtpause[i]);
72
73 ZeigeZahl(0);
74 digitalWrite(PinErsteLED+lauflicht[i]-1,HIGH);
75
76 } while (digitalRead(PinTaster)==LOW);
77
78 zufall=zufall%6;
79 spezial=millis()-spezial;
80 if ((spezial>2000) and (spezial<3000)) {
81 if (zufall!=5) {zufall=millis()%6;}
82 }
83 ZeigeZahl(zufall+1);
84
85 while (digitalRead(PinTaster)==HIGH);
86 } while (1==1);
87}
88
89
90
91