Arduino Anzeige 7-Segment tm1637 um 180° drehen

Gast #6018096
Lesenswert?

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
#6018109
Lesenswert?

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.
Gast #6018123
Lesenswert?

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]);
#6018150
Lesenswert?

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 ;-)
Gast #6018180
Lesenswert?

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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren