source: t29-www/physical-computing/Ziffernanzeige_mit_zweidim_Array/Ziffernanzeige_mit_zweidim_Array.ino @ 1358

Last change on this file since 1358 was 1358, checked in by heribert, 2 years ago

kl. Fehler korrigiert

File size: 2.1 KB
Line 
1
2// Hochzaehlen einer 7-Segment-Anzeige, Aufgabe 3, Blatt 4
3
4//zweidimensionales Array. Die Elemente des "aeusseren" Arrays sind selbst Arrays.
5
6int 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   dieses zweidimensionale Array hat 10 Zeilen....   
9                       {1, 1, 1, 1, 0, 0, 1},  // 3   ....und 7 Spalten, daher [10][7]
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                       
17int pinArray[] = {2, 3, 4, 5, 6, 7, 8};                       
18
19void setup(){                                 // ueberlege selbst, was das setup hier bewirkt
20  for(int i = 0; i < 7; i++)
21    pinMode(pinArray[i], OUTPUT); 
22}
23
24void loop(){                                 
25    for(int zeile = 0; zeile < 10; zeile++)   // zunaechst wird die Ziffer ausgewaehlt (Index "zeile")
26  {
27    for(int spalte = 0; spalte < 7; spalte++) // dann werden aus dem inneren Array nacheinander...
28    {                                         // ...die pinWerte ausgelesen. Dazu wurde eine neue Index-Variable "spalte"...
29      if(segmente[zeile][spalte]==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[spalte],LOW);   // Mit "LOW" leuchtet das entsprechende Segment (gemeinsame Anode = +5V)
32      }
33      else
34      {
35        digitalWrite(pinArray[spalte], HIGH);
36      }                                       
37    }                                         // Ende der Anweisungen der inneren Schleife   
38    delay(1000);                             
39  }                                           // Ende der Anweisungen der aeusseren Schleife
40}                                             // Loop
41 
42
Note: See TracBrowser for help on using the repository browser.
© 2008 - 2013 technikum29 • Sven Köppel • Some rights reserved
Powered by Trac
Expect where otherwise noted, content on this site is licensed under a Creative Commons 3.0 License