digitalelektronik:seven-segment-hello
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende ÜberarbeitungLetzte ÜberarbeitungBeide Seiten der Revision | ||
digitalelektronik:seven-segment-hello [2015/03/05 09:19] – ros | digitalelektronik:seven-segment-hello [2015/03/18 07:57] – ros | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== "Hello" auf einer Siebensegmentanzeige ====== | + | ====== "HELLO" auf einer Siebensegmentanzeige ====== |
- | Dieses Programm stellt | + | Dieses Programm stellt |
Die Siebensegmentanzeige wird wie folgt angeschlossen: | Die Siebensegmentanzeige wird wie folgt angeschlossen: | ||
Zeile 16: | Zeile 16: | ||
<code c++> | <code c++> | ||
- | const int DELAY_MS = 1000; | + | const int DELAY_MS = 500; |
- | const int PIN[] = { 9, 8, 7, 6, 5, 4, 3, 2 }; | + | const int SEGMENT_PIN[] = { 8, 7, 6, 5, 4, 3, 2 }; |
- | const int PIN_COUNT | + | const int SEGMENT_PIN_COUNT |
const byte CHARACTER[] = { | const byte CHARACTER[] = { | ||
// abcdefg | // abcdefg | ||
B00110111, // H | B00110111, // H | ||
- | B01001111, // e | + | B01001111, // E |
- | B00001110, // l | + | B00001110, // L |
- | B00001110, // l | + | B00001110, // L |
- | B01111110, // o | + | B01111110, // O |
B00000000, // Leerzeichen | B00000000, // Leerzeichen | ||
}; | }; | ||
- | const int CHARACTER_COUNT = 5; | + | const int CHARACTER_COUNT = 6; |
byte number; | byte number; | ||
Zeile 34: | Zeile 34: | ||
void setup() { | void setup() { | ||
int i = 0; | int i = 0; | ||
- | while (i < PIN_COUNT) { | + | while (i < SEGMENT_PIN_COUNT) { |
- | pinMode(PIN[i], OUTPUT); | + | pinMode(SEGMENT_PIN[i], OUTPUT); |
i = i + 1; | i = i + 1; | ||
} | } | ||
Zeile 44: | Zeile 44: | ||
void showByte(byte b) { | void showByte(byte b) { | ||
byte i = 0; | byte i = 0; | ||
- | | + | while (i < SEGMENT_PIN_COUNT) { |
- | | + | if ((b & (1 << i)) != 0) { |
- | if ((b & mask) != 0) { | + | digitalWrite(SEGMENT_PIN[i], HIGH); |
- | digitalWrite(PIN[i], HIGH); | + | |
} | } | ||
else { | else { | ||
- | digitalWrite(PIN[i], LOW); | + | digitalWrite(SEGMENT_PIN[i], LOW); |
} | } | ||
i = i + 1; | i = i + 1; | ||
- | mask = mask << 1; | ||
} | } | ||
} | } | ||
Zeile 65: | Zeile 63: | ||
} | } | ||
+ | // Kurz alle Segmente ausschalten | ||
delay(DELAY_MS); | delay(DELAY_MS); | ||
showByte(0); | showByte(0); |
digitalelektronik/seven-segment-hello.txt · Zuletzt geändert: 2020/10/13 14:25 von 127.0.0.1