Hallo, ich habe ein kleines Programm auf dem Arduino laufen und steuere zur Anzeige ein 4-digit Tm1637 Display an. https://www.ebay.de/itm/TM1637-4-bits-Digital-Tube-LED-Display-Module-with-Clock-Display-Arduino-/111768489219 Auf dem Breadboard läuft es super. Jetzt habe ich eine Platine dafür geätzt. Leider hat die einen Fehler - das Display ist um 180° gedreht. Nun möchte ich keine neue Platine ätzen und versuche gerade die Freiluftverkabelung zu vermeiden. Die Segmente müssten jetzt "auf dem Kopf" und die erste Stelle an der vierten dargestellt werden. Ich verwende folgende Bibliothek https://github.com/avishorp/TM1637 Hat jemand eine Idee wie ich das bewerkstelligen kann bzw. hat einer von euch so etwas schon einmal gemacht. Gruß Erik
1 | //
|
2 | // A
|
3 | // ---
|
4 | // F | | B
|
5 | // -G-
|
6 | // E | | C
|
7 | // ---
|
8 | // D
|
9 | const uint8_t digitToSegment[] = { |
10 | // XGFEDCBA
|
11 | 0b00111111, // 0 |
12 | 0b00000110, // 1 |
13 | 0b01011011, // 2 |
14 | 0b01001111, // 3 |
15 | 0b01100110, // 4 |
16 | 0b01101101, // 5 |
17 | 0b01111101, // 6 |
18 | 0b00000111, // 7 |
19 | 0b01111111, // 8 |
20 | 0b01101111, // 9 |
21 | 0b01110111, // A |
22 | 0b01111100, // b |
23 | 0b00111001, // C |
24 | 0b01011110, // d |
25 | 0b01111001, // E |
26 | 0b01110001 // F |
27 | };
|
Man müsste doch an dieser Stelle die Segmente tauschen können... Also A mit D, B mit E,... Und dann noch die Reihenfolge der Ziffenr ändern. Könnte klappen.
:
Bearbeitet durch User
Sebastian R. schrieb: > Man müsste doch an dieser Stelle die Segmente tauschen können... ja natürlich geht das. aber wenn ich die frage schon lese, müsstest du noch erwähnen, dass das ein auszug aus der verwendeten library ist und man die dann entsprechend ändern müsste.
Ebenso die Schleife ändern und das Array rückwärts schreiben
1 | void TM1637Display::setSegments(const uint8_t segments[], uint8_t length, uint8_t pos) |
2 | {
|
3 | ...
|
4 | // Write the data bytes
|
5 | for (uint8_t k=0; k < length; k++) |
6 | writeByte(segments[k]); |
Sebastian R. schrieb: > Man müsste doch an dieser Stelle die Segmente tauschen können... > Also A mit D, B mit E,... > > Und dann noch die Reihenfolge der Ziffenr ändern. Könnte klappen. Der Teufel steckt im Detail. Das funktioniert nur, wenn er keinen Dezimalpunkt braucht. Ansonsten schon. Ich habe in einem Design bewußt die Einerstelle "auf den Kopf gestellt" und zeige dort ein C und den DP als °C an ;-)
Okay, danke für die Hilfe. Die Libary zu verbiegen hatte ich auch schon in erwägung gezogen - ich hatte gehofft es gibt etwas eleganteres. Ich werde es mal versuchen. Gerald B. schrieb: > Der Teufel steckt im Detail. Das funktioniert nur, wenn er keinen > Dezimalpunkt braucht. Das ist kein Problem, das verwendete Display hat keinen Dezimalpunkt nur einen Doppelpunkt Gruß Erik
Erik schrieb: > Die Libary zu verbiegen hatte ich auch schon in erwägung gezogen - ich > hatte gehofft es gibt etwas eleganteres. Wenn das Einfache zu einfach ist: nimm einen Designerspiegel - sehr elegant ;-)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.