1 | |
---|
2 | // Hochzaehlen einer 7-Segment-Anzeige, Aufgabe 1, Blatt 4 |
---|
3 | |
---|
4 | //zweidimensionales Array. Die Elemente des "aeusseren" Arrays sind selbst Arrays. |
---|
5 | |
---|
6 | int segmente[10][7] = {{1, 1, 1, 1, 1, 1, 0}, // 0 Segmente in der Reihenfolge a,b,c,d,e,f,g |
---|
7 | {0, 1, 1, 0, 0, 0, 0}, // 1 |
---|
8 | {1, 1, 0, 1, 1, 0, 1}, // 2 |
---|
9 | {1, 1, 1, 1, 0, 0, 1}, // 3 |
---|
10 | {0, 1, 1, 0, 0, 1, 1}, // 4 |
---|
11 | {1, 0, 1, 1, 0, 1, 1}, // 5 |
---|
12 | {1, 0, 1, 1, 1, 1, 1}, // 6 |
---|
13 | {1, 1, 1, 0, 0, 0, 0}, // 7 |
---|
14 | {1, 1, 1, 1, 1, 1, 1}, // 8 |
---|
15 | {1, 1, 1, 1, 0, 1, 1}}; // 9 |
---|
16 | |
---|
17 | int pinArray[] = {2, 3, 4, 5, 6, 7, 8}; |
---|
18 | |
---|
19 | void setup(){ // ueberlege selbst, was das setup hier bewirkt |
---|
20 | for(int i = 0; i < 7; i++) |
---|
21 | pinMode(pinArray[i], OUTPUT); |
---|
22 | } |
---|
23 | |
---|
24 | void loop(){ |
---|
25 | for(int i = 0; i < 10; i++) // zunaechst wird die Ziffer ausgewaehlt (Index "i") |
---|
26 | { |
---|
27 | for(int pin = 0; pin < 7; pin++) // dann werden aus dem inneren Array nacheinander |
---|
28 | { // die pinWerte ausgelesen. Dazu wurde eine neue Index-Variable "pin" |
---|
29 | if(segmente[i][pin]==1) // eingefuehrt. Die Elemente von Arrays beginnen immer mit "0", |
---|
30 | { // also steht Pin2 auf dem Nullten Platz, Pin3 auf dem ersten usw. |
---|
31 | digitalWrite(pinArray[pin],LOW); // Mit "LOW" leuchtet das entsprechende Segment (gemeinsame Anode = +5V) |
---|
32 | } |
---|
33 | else |
---|
34 | { |
---|
35 | digitalWrite(pinArray[pin], HIGH); |
---|
36 | } |
---|
37 | } |
---|
38 | delay(1000); // Pause von einer Sekunde |
---|
39 | } |
---|
40 | } |
---|
41 | |
---|
42 | |
---|
43 | |
---|