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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.