INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Fragen zu TM1638
12.01.2016, 15:23
Beitrag #1
Fragen zu TM1638
Hallo
Ich hab ein paar Fragen zu TM1638.h
Es handelt sich dabei um eine Platine mit 8 7-Segment Anzeigen (incl. Dezimal-Punkt)
Dazu kommen 8 Taster und 8 Leuchtdioden.

Hier mal ein Link zu dem Produkt, damit sich alle etwas drunter vorstellen können:
http://www.amazon.de/dp/B0117BUAPU

Ich möchte mir mit dem Teil ein kleines Bedienermenü aufbauen.
Ein Touch Screen hätte zwar auch gegangen, aber um alle paar Monate mal ein paar Einstellungen zu ändern, reicht das Ding völlig aus Smile


So und nun zur Frage:
Ich möchte, das ein INT Wert angezeigt wird, OHNE die Nullen vorweg.

Heist im Klartext:
Wenn ich
Code:
Module.setDisplayToDecNumber(1234,0);
einsetze, erscheint "00001234" auf dem Display.
Ich möchte aber, das die 4 Nullen vorn dunkel bleiben und entweder linksbündig oder rechtsbündig NUR "1234" angezeigt wird.

Gibts dafür eine Möglichkeit ?


Folgende Funktionen der tm1638.h sind mir bisher bekannt:

Code:
clearDisplay();

setDisplayToDecNumber();
setDisplayToHexNumber();
setDisplayToBinNumber();
setDisplayToString();
setDisplayToError();


Natürlich kenn ich auch noch die paar Funktionen um die Buttons abzufragen und die LEDs zu schalten.
Mir geht jetzt aber nur um das Display.

Bleibt mir echt nix anderes übrig, als den INT Wert als String ins Display zu schicken?

Gruß!
Binatone
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
15.01.2016, 09:04 (Dieser Beitrag wurde zuletzt bearbeitet: 15.01.2016 09:07 von arduinofan.)
Beitrag #2
RE: Fragen zu TM1638
Ja, so mach ich es.
Was stört wenn man es in den String bringt ?
Damit hast du auch eine Möglichkeit die Ziffern unabhängig einzeln anzusprechen beim Zählen.

Gruss

Code:
#include <TM1638.h>
// define a module on data pin 22, clock pin 23 , strobe pin 24
TM1638 module(22,23, 24);

String str_i;

unsigned int zahl_i;

void setup()
{
  zahl_i=1234;
}

void loop()
{
str_i =  String(zahl_i,DEC);  

module.setDisplayToString("    "+str_i);

}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
16.01.2016, 14:11 (Dieser Beitrag wurde zuletzt bearbeitet: 16.01.2016 15:56 von arduinofan.)
Beitrag #3
RE: Fragen zu TM1638
Hallo.
Hiemit kann ich den Font auswählen und selber in die Anzeigen setzen von 1 -8 ohne diese Librarie .

Schau auch hier , die Beschreibung ohne die Librarie:
http://www.arduinoforum.de/arduino-Threa...ie-Buttons

Code:
#include "TM16XXFonts.h"
// NUMBER_FONT   -48
// FONT_DEFAULT  -32


const int strobe = 24;
const int clock = 23;
const int data = 22;

byte seg_nr_neu;
byte font_byte, inbyte;

void segment7(byte seg_nr, byte seg_zu);

void sendCommand(uint8_t value)
{
  digitalWrite(strobe, LOW);
  shiftOut(data, clock, LSBFIRST, value);
  digitalWrite(strobe, HIGH);
}

void reset()
{
  sendCommand(0x40);
  digitalWrite(strobe, LOW);
  shiftOut(data, clock, LSBFIRST, 0xc0);  
  for(uint8_t i = 0; i < 16; i++)
  {
    shiftOut(data, clock, LSBFIRST, 0x00);
  }
  digitalWrite(strobe, HIGH);
}

void setup()
{
  Serial.begin(9600);
  pinMode(strobe, OUTPUT);
  pinMode(clock, OUTPUT);
  pinMode(data, OUTPUT);

  sendCommand(0x8f);
  reset();
}

void loop()

{
  if (Serial.available())
  {
    inbyte = Serial.read();
    
    font_byte=FONT_DEFAULT[inbyte-32];
    segment7(1, font_byte);  // der Buchstabe wird in die 1. linke Anzeige abgebildet

    Serial.write("  ");
    Serial.println(inbyte);
  }
    
  delay(50);
}

void segment7(byte seg_nr, byte seg_zu) {
  sendCommand(0x44);

  if (seg_nr==1) {
    seg_nr_neu=0xc0;    
  }
  else if (seg_nr==2){
    seg_nr_neu=0xc2;
  }
  else if (seg_nr==3){
    seg_nr_neu=0xc4;
  }
  else if (seg_nr==4){
    seg_nr_neu=0xc6;
  }
  else if (seg_nr==5){
    seg_nr_neu=0xc8;
  }
  else if (seg_nr==6){
    seg_nr_neu=0xca;
  }
  else if (seg_nr==7){
    seg_nr_neu=0xcc;
  }
  else if (seg_nr==8){
    seg_nr_neu=0xce;
  }
  else {
    goto ende;
  }

  digitalWrite(strobe, LOW);
  shiftOut(data, clock, LSBFIRST,seg_nr_neu);
  shiftOut(data, clock, LSBFIRST, seg_zu);
  digitalWrite(strobe, HIGH);

  ende: ;
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Anfänger Fragen zum Thema Pc & Datenverarbeitung Hurdy 0 301 29.03.2016 12:36
Letzter Beitrag: Hurdy
  8 LED , 7-Segment-Elemente einzeln ansteuern beim tm1638 und die Buttons arduinofan 0 503 15.01.2016 22:37
Letzter Beitrag: arduinofan
  Fragen zu PID() scritch 12 965 18.11.2015 15:17
Letzter Beitrag: volvodani
Lightbulb Fragen zu Ablauf/Schrittmotor/Referenzfahrt Tom5000 4 1.752 09.09.2014 05:11
Letzter Beitrag: Corvus
  AlarmBit und weitere Fragen beim DS3231 itsy 0 1.060 19.06.2014 14:00
Letzter Beitrag: itsy
  Neueinsteiger mit Fragen Dietmar 9 4.173 18.12.2013 09:13
Letzter Beitrag: burgi650
  Arduino Mega 2560, 1000 Fragen zum Start.... alpenpower 7 5.951 06.09.2013 11:17
Letzter Beitrag: admin
  Fragen für Props aus Alien HartlMax 0 1.166 20.05.2013 19:05
Letzter Beitrag: HartlMax

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste