digitalelektronik:seven-segment-hello
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| digitalelektronik:seven-segment-hello [2015/03/05 09:17] – angelegt ros | digitalelektronik:seven-segment-hello [2020/10/13 14:25] (aktuell) – Externe Bearbeitung 127.0.0.1 | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| - | ====== "Hello" auf einer Siebensegmentanzeige ====== | + | ====== "HELLO" auf einer Siebensegmentanzeige ====== |
| + | |||
| + | Dieses Programm stellt nacheinander die Buchstaben " | ||
| + | |||
| + | Die Siebensegmentanzeige wird wie folgt angeschlossen: | ||
| + | |||
| + | ^ Segment ^ Pin ^ Bit ^ | ||
| + | | a | 8 | 6 | | ||
| + | | b | 7 | 5 | | ||
| + | | c | 6 | 4 | | ||
| + | | d | 5 | 3 | | ||
| + | | e | 4 | 2 | | ||
| + | | f | 3 | 1 | | ||
| + | | g | 2 | 0 | | ||
| <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 | ||
| B00110111, // H | B00110111, // H | ||
| B01001111, // E | B01001111, // E | ||
| Zeile 13: | Zeile 28: | ||
| B00000000, // Leerzeichen | B00000000, // Leerzeichen | ||
| }; | }; | ||
| - | const int CHARACTER_COUNT = 5; | + | const int CHARACTER_COUNT = 6; |
| byte number; | byte number; | ||
| Zeile 19: | 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 29: | 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 50: | Zeile 63: | ||
| } | } | ||
| + | // Kurz alle Segmente ausschalten | ||
| delay(DELAY_MS); | delay(DELAY_MS); | ||
| showByte(0); | showByte(0); | ||
digitalelektronik/seven-segment-hello.1425543435.txt.gz · Zuletzt geändert: 2020/10/13 14:25 (Externe Bearbeitung)