1 | |
---|
2 | |
---|
3 | // Hochzaehlen einer 7-Segment-Anzeige, Aufgabe 3f, Blatt 4, vorwaerts, rueckwaerts, auf Null stellen |
---|
4 | |
---|
5 | |
---|
6 | #include<Button.h> |
---|
7 | |
---|
8 | //************************Variable deklarieren (initialisieren)******************************** |
---|
9 | |
---|
10 | int segmente[10][7] = {{1, 1, 1, 1, 1, 1, 0}, // 0 Segmente in der Reihenfolge a,b,c,d,e,f,g |
---|
11 | {0, 1, 1, 0, 0, 0, 0}, // 1 |
---|
12 | {1, 1, 0, 1, 1, 0, 1}, // 2 dieses zweidimensionale Array hat 10 Zeilen.... |
---|
13 | {1, 1, 1, 1, 0, 0, 1}, // 3 ....und 7 Spalten, daher [10][7] |
---|
14 | {0, 1, 1, 0, 0, 1, 1}, // 4 |
---|
15 | {1, 0, 1, 1, 0, 1, 1}, // 5 |
---|
16 | {1, 0, 1, 1, 1, 1, 1}, // 6 |
---|
17 | {1, 1, 1, 0, 0, 0, 0}, // 7 |
---|
18 | {1, 1, 1, 1, 1, 1, 1}, // 8 |
---|
19 | {1, 1, 1, 1, 0, 1, 1}}; // 9 |
---|
20 | |
---|
21 | int pinArray[] = {2, 3, 4, 5, 6, 7, 8}; |
---|
22 | Button tasteHoch = Button(12, PULLUP); // woher? vergl. Button-Library "Examples" |
---|
23 | Button tasteRunter = Button(13, PULLUP); |
---|
24 | Button tasteNull = Button(11, PULLUP); |
---|
25 | int aktuelleZiffer = 0; // Zaehlvariable fuer die Ziffern |
---|
26 | |
---|
27 | //********************Pin-Modes festlegen************** |
---|
28 | |
---|
29 | void setup(){ |
---|
30 | for(int i = 0; i < 7; i++) |
---|
31 | pinMode(pinArray[i], OUTPUT); |
---|
32 | } |
---|
33 | |
---|
34 | //*******************Taster abfragen******************* |
---|
35 | void loop() |
---|
36 | { |
---|
37 | if(tasteHoch.uniquePress()) |
---|
38 | { |
---|
39 | aktuelleZiffer++; |
---|
40 | if(aktuelleZiffer> 9) |
---|
41 | { |
---|
42 | aktuelleZiffer = 0; |
---|
43 | } |
---|
44 | } |
---|
45 | |
---|
46 | if(tasteRunter.uniquePress()) |
---|
47 | { |
---|
48 | aktuelleZiffer--; |
---|
49 | if(aktuelleZiffer< 0) |
---|
50 | { |
---|
51 | aktuelleZiffer = 9; |
---|
52 | } |
---|
53 | } |
---|
54 | |
---|
55 | if(tasteNull.uniquePress()) |
---|
56 | { |
---|
57 | aktuelleZiffer = 0; |
---|
58 | } |
---|
59 | //*****************Ziffern anzeigen**************************** |
---|
60 | |
---|
61 | for(int segment = 0; segment< 7; segment++) |
---|
62 | { |
---|
63 | bool segmentAn = segmente[aktuelleZiffer][segment]; // "segmentAn" ist eine Hilfsvariable, damit der Sketch... |
---|
64 | // ...besser lesbar wird |
---|
65 | if(segmentAn) |
---|
66 | { |
---|
67 | digitalWrite(pinArray[segment], LOW); |
---|
68 | } |
---|
69 | else |
---|
70 | { |
---|
71 | digitalWrite(pinArray[segment], HIGH); |
---|
72 | } |
---|
73 | } // Ende Anweisungsblock "for" |
---|
74 | delay(30); |
---|
75 | } |
---|
76 | |
---|
77 | |
---|
78 | |
---|
79 | |
---|