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
  Probleme mit DS3231 Geeros#18 2 33 Heute 20:11
Letzter Beitrag: Tommy56
  Serieller string zwischenspeichern und wieder ausgeben. Matt 11 362 12.02.2018 10:51
Letzter Beitrag: Tommy56
  Datei von SD Karte auf Display ausgeben dahans 30 620 06.02.2018 21:24
Letzter Beitrag: dahans
  Probleme mit der Software Thor Wallhall 8 462 31.12.2017 11:34
Letzter Beitrag: Tommy56
  Makeblock mit Scratch programmieren- Probleme Keinen Schimmer 17 4.020 30.12.2017 00:40
Letzter Beitrag: koma1965
  Probleme Serieller Kommunikation Arduino Nextero 13 666 12.12.2017 16:47
Letzter Beitrag: hotsystems
  Probleme mit multiplexing Thor Wallhall 50 2.525 01.11.2017 21:15
Letzter Beitrag: Thor Wallhall
  ASCII Zeichen Seriell ausgeben huber5093 3 596 07.10.2017 20:35
Letzter Beitrag: Tommy56
  Interrupt und I2C gibt das Probleme? Badger1875 5 559 03.10.2017 23:26
Letzter Beitrag: GuaAck
Big Grin Probleme mit pgm_read_word NoGi 9 1.839 23.04.2017 10:09
Letzter Beitrag: NoGi

Gehe zu:


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