Display anzeige Timer DS1302

Hallo an euch,

ich habe mal eine bescheidene Frage und zwar, ich habe den Timer DS1302 und möchte ihn auf einem Display oder 7 Seg. ausgeben. Soweit klappt das auch. Nur habe ich das Problem das immer z.B. 01 angezeigt werden soll nur die 1 da ist. Wie bekomme ich das hin das er mir 01 anzeigt. Und wenn bei 59 Sec. er auf 00 wieder umspringt und nicht nur auf ein 0 so das hinten die 9 stehen bleibt.

Danke schon mal...

Kannst du die Null nicht manuell anzeigen?

if(Sekunden < 10){
  // Null manuell ausgeben
}

Aber ohne Sketch wird es schwierig, kannst du ihn vlt hochladen?

Grüße,
J3RE

Hi,

ich habe es jetzt so gemacht.

void test(){
char _hour[7];
char _min[7];
char _sec[7];
char _year[7];


  sprintf(_hour, "%02d", (t.hour));
  sprintf(_min, "-%02d", (t.min));
  sprintf(_sec, "-%02d", (t.sec));
  sprintf(_year, " %02d", (t.year));
    

module.setDisplayToString(_hour,0,0);
module.setDisplayToString(_min,0,2);
module.setDisplayToString(_sec,0,5);
module.setDisplayToString(_year,0,8);

  
}

was ich nur noch nicht ganz gerafft habe ist das char Arryer warum es umbeding [7] sein muss. sonst geht es nicht!

Welche library verwendest du denn?

Diese? https://github.com/msparks/arduino-ds1302

Grüße, J3RE

Sorry ich glaube ich habe nicht genug Infos gegeben.

Ich lasse die Uhr auf einem JY-LM1640 ausgeben. Mit der Lib http://code.google.com/p/tm1638-library/

und hier noch der komplette Code: ist aber noch alles zum Testen:

// DS1302_Serial_Hard (C)2010 Henning Karlsen
// web: http://www.henningkarlsen.com/electronics
//
// A quick demo of how to use my DS1302-library to 
// retrieve time- and date-date for you to manipulate.
//
// I assume you know how to connect the DS1302.
// DS1302:  CE pin    -> Arduino Digital 2
//          I/O pin   -> Arduino Digital 3
//          SCLK pin  -> Arduino Digital 4

#include <DS1302.h>
#include <TM1638.h> // required because the way arduino deals with libraries
#include <TM1640.h>

TM1640 module(7, 6);

// Init the DS1302
DS1302 rtc(2, 3, 4);

// Init a Time-data structure
Time t;

void setup()
{
  module.setupDisplay(true, 7);
  // Set the clock to run-mode, and disable the write protection
  rtc.halt(false);
  rtc.writeProtect(false);
  
  // Setup Serial connection
  Serial.begin(9600);

  // The following lines can be commented out to use the values already stored in the DS1302
//  rtc.setDOW(FRIDAY);        // Set Day-of-Week to FRIDAY
//  rtc.setTime(03, 05, 0);     // Set the time to 12:00:00 (24hr format)
//  rtc.setDate(31, 3, 2013);   // Set the date to August 6th, 2010
}

void loop()
{
 
  test();
  
  // Get data from the DS1302
  t = rtc.getTime();
  
  // Send date over serial connection
  Serial.print("Today is the ");
  Serial.print(t.date, DEC);
  Serial.print(". day of ");
 Serial.print(rtc.getMonthStr());


  Serial.print(" in the year ");
  Serial.print(t.year, DEC);
  Serial.println(".");
  
  // Send Day-of-Week and time
  Serial.print("It is the ");
  Serial.print(t.dow, DEC);
  Serial.print(". day of the week (counting monday as the 1th), and it has passed ");
  Serial.print(t.hour, DEC);
  Serial.print(" hour(s), ");
  Serial.print(t.min, DEC);
  Serial.print(" minute(s) and ");
  Serial.print(t.sec, DEC);
  Serial.println(" second(s) since midnight.");

  // Send a divider for readability
  Serial.println("  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -");
  
  // Wait one second before repeating :)
//  delay (4000);
}


void test(){
char _hour[7];
char _min[7];
char _sec[7];
char _year[7];


  sprintf(_hour, "%02d", (t.hour));
  sprintf(_min, "-%02d", (t.min));
  sprintf(_sec, "-%02d", (t.sec));
  sprintf(_year, " %02d", (t.year));
    

module.setDisplayToString(_hour,0,0);
module.setDisplayToString(_min,0,2);
module.setDisplayToString(_sec,0,5);
module.setDisplayToString(_year,0,8);

  
}