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
RTC auf LCD ausgeben. Probleme mit der führenden Null
15.03.2015, 07:50
Beitrag #1
RTC auf LCD ausgeben. Probleme mit der führenden Null
Hallo,

ich möchte Uhrzeit und Datum auf ein LCD ausgeben. Das funtioniert soweit alles. Nun würde ich die Zahlen aber gerne mit führender Null ausgeben. Also nicht 7:40 Uhr sondern 07:40 Uhr.

Das bekomme ich nicht hin. Wie müsste der Befehl dafür lauten? Mein Versuch in Zeile 46 hat leider nicht geklappt. Ich weiß aber auch nicht, wo ich die Information her bekommen kann, was anstelle von "Zahl" dort stehen muss.

Ich hoffe ihr könnt mir helfen.

Code:
/*
* TimeRTC.pde
* example code illustrating Time library with Real Time Clock.
*
*/

#include <Time.h>
#include <Wire.h>
#include <DS1307RTC.h>  // a basic DS1307 library that returns time as a time_t
#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
void setup()  {
  lcd.begin(20, 4);



  Serial.begin(9600);
  setSyncProvider(RTC.get);   // the function to get the time from the RTC
  if(timeStatus()!= timeSet)
     Serial.println("Unable to sync with the RTC");
  else
     Serial.println("RTC has set the system time");
    
}

void loop()
{
   digitalClockDisplay();
   delay(1000);
}

void digitalClockDisplay(){
  // digital clock display of the time
  Serial.print(hour());
  printDigits(minute());
  printDigits(second());
  Serial.print(" ");
  Serial.print(day());
  Serial.print(" ");
  Serial.print(month());
  Serial.print(" ");
  Serial.print(year());
  Serial.println();

lcd.setCursor(2, 0);                                            // Set LCD cursor position (column, row)
//  if(zahl < 10)                                                         // wenn kleiner 10
//  lcd.print("0");                                                      // schreibe eine 0 davor
lcd.print(hour());
lcd.print(":");
lcd.print (minute());
lcd.print(" ");
lcd.print(second());
lcd.print(" ");
lcd.print("Uhr");
lcd.setCursor(3, 1);                                           // Set LCD cursor position (column,row)
lcd.print(day());
lcd.print(".");
lcd.print(month());
lcd.print(".");
lcd.print(year());

// Print text to LCD
                                     // Delay to read text
                               // Clear the display

}

void printDigits(int digits){
  // utility function for digital clock display: prints preceding colon and leading 0
  Serial.print(":");
  if(digits < 10)
    Serial.print('0');
  Serial.print(digits);
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
15.03.2015, 08:33 (Dieser Beitrag wurde zuletzt bearbeitet: 15.03.2015 08:36 von Bitklopfer.)
Beitrag #2
RE: RTC auf LCD ausgeben. Probleme mit der führenden Null
(15.03.2015 07:50)Gelegenheitsbastler schrieb:  Hallo,

ich möchte Uhrzeit und Datum auf ein LCD ausgeben. Das funtioniert soweit alles. Nun würde ich die Zahlen aber gerne mit führender Null ausgeben. Also nicht 7:40 Uhr sondern 07:40 Uhr.

Das bekomme ich nicht hin. Wie müsste der Befehl dafür lauten? Mein Versuch in Zeile 46 hat leider nicht geklappt. Ich weiß aber auch nicht, wo ich die Information her bekommen kann, was anstelle von "Zahl" dort stehen muss.

Ich hoffe ihr könnt mir helfen.

Moin,
da es an der Stelle um die Stunden geht mußt du eben die Variable "hour" zu diesem Vergleich abfragen.
Also:
if(hour < 10){ // wenn kleiner 10 schreibe eine 0 davor
lcd.print("0");
} // irgendwie klappt das mit dem Einrücken heute nicht...

Ohne das nun nachgeprüft zu haben müßte das dann funktionieren.
Und bei den anderen Werten mußte genau so verfahren.
lg
bk

1+1 = 10 Angel ...und ich bin hier nicht der Suchmaschinen-Ersatz Dodgy...nur mal so als genereller Tipp..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
15.03.2015, 09:07 (Dieser Beitrag wurde zuletzt bearbeitet: 15.03.2015 09:18 von Gelegenheitsbastler.)
Beitrag #3
RE: RTC auf LCD ausgeben. Probleme mit der führenden Null
Guten Morgen!

Ich hatte "hour" und "digit" schon in anderen Sketchen gefunden und getestet, aber das hat leider auch nicht geklappt. Wenn ich Deinen Vorschlag übernehme gibt er folgendes aus:


Code:
sketch_mar15a.ino: In function ‘void digitalClockDisplay()’:
sketch_mar15a:47: error: invalid operands of types ‘<unresolved overloaded function type>’ and ‘int’ to binary ‘operator<’

edit: Ich habs endlich gelöst. Es war eine fehlende Klammer:

Code:
if(hour() < 10){ // wenn kleiner 10 schreibe eine 0 davor
lcd.print("0");
} // irgendwie klappt das mit dem Einrücken heute nicht...

Nun wird es so angezeigt, wie ich es mir vorstelle.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
15.03.2015, 09:59
Beitrag #4
RE: RTC auf LCD ausgeben. Probleme mit der führenden Null
ja die liebe Sytnax bringt einen schon manchmal um den Verstand...Sad

1+1 = 10 Angel ...und ich bin hier nicht der Suchmaschinen-Ersatz Dodgy...nur mal so als genereller Tipp..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
15.03.2015, 10:38 (Dieser Beitrag wurde zuletzt bearbeitet: 15.03.2015 11:45 von tito-t.)
Beitrag #5
RE: RTC auf LCD ausgeben. Probleme mit der führenden Null
Zahlen zu strings formatieren mit führenden Nullen ist ganz einfach mit sprintf:

char str[20];
int h,m,s;
sprintf(str, "%02d",h);

formatiert dir 3 zu "03", und 15 bleibt "15" (immer zweistellig).
(edit, getestet: 0 wird zu "00" )

du kannst es sogar in 1 Rutsch machen:
sprintf(str, "%02d:%02d:%02d",h,m,s);

formatiert dir h=6 Uhr m=0 Minuten s=11 Sekunden zu
str = "06:00:11"

(und täglich grüßt das Murmeltier... Big Grin )
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
15.03.2015, 12:00
Beitrag #6
RE: RTC auf LCD ausgeben. Probleme mit der führenden Null
Wow, was es alles gibt... Für mich sieht das aus, als hätte jemand einen Sack Scrabble-Steine ausgeschüttet und willkürlich zusammen gesetzt. Ich werde irgendwann noch an dieser verdammten Programmiererei verzweifeln. Aber trotzdem danke für die Info.

Hat vielleicht jemand einen simplen Sketch parat, mit dem sich die Temperatur eines DS18s20 auf dem Display anzeigen lässt? Die ganzen Infos, die in den Beispiel-Sketchen mit angezeigt werden, benötige ich nicht. Ich brauche nur die Temperatur in Grad Celsius.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
15.03.2015, 12:18 (Dieser Beitrag wurde zuletzt bearbeitet: 15.03.2015 12:37 von tito-t.)
Beitrag #7
RE: RTC auf LCD ausgeben. Probleme mit der führenden Null
C ist eben C - nicht unbedingt gut lesbar, aber irrsinnig mächtig! Cool

http://www.cplusplus.com/reference/cstdio/sprintf/

http://www.cplusplus.com/doc/

das hat schon was an Scrabble Steinchen zu bieten ... Big Grin

(schließlich wurde C mal entwicklelt, weil es nichts genügend mächtiges an Programmiersprachen gab, um ein ganz neues Betriebssystem schreiben zu können.
Als man dann endlich C hatte, konnte man sich ans UNIX programmieren wagen... Wink )
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
Big Grin Probleme mit pgm_read_word NoGi 9 1.303 23.04.2017 10:09
Letzter Beitrag: NoGi
  Char Werte ausgeben Scotch 5 451 31.03.2017 15:37
Letzter Beitrag: Scotch
  Probleme mit einem Sketch für einen LED Cube 5x5x5 Frank1234 5 400 13.03.2017 12:12
Letzter Beitrag: Tommy56
  Zählerstand nur einmal ausgeben Fliega 11 584 21.02.2017 11:21
Letzter Beitrag: SkobyMobil
  Blinkcode in Klartext ausgeben Borderwalker310 20 1.054 09.02.2017 22:14
Letzter Beitrag: Tommy56
  Probleme bei Countdown ferdi 0 260 23.01.2017 10:45
Letzter Beitrag: ferdi
  ArduinoDroid Probleme Brother Tak 1 416 10.09.2016 22:12
Letzter Beitrag: Brother Tak
  Roboter-Bau Probleme blebbens 8 632 12.07.2016 07:35
Letzter Beitrag: Binatone
  Probleme mit sprintf() und dtostrf() GMBU 11 1.640 22.06.2016 10:52
Letzter Beitrag: GMBU
  Makeblock mit Scratch programmieren- Probleme Keinen Schimmer 6 2.067 06.05.2016 18:34
Letzter Beitrag: arduinopeter

Gehe zu:


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