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
  ArduinoDroid Probleme Brother Tak 1 206 10.09.2016 22:12
Letzter Beitrag: Brother Tak
  Roboter-Bau Probleme blebbens 8 381 12.07.2016 07:35
Letzter Beitrag: Binatone
  Probleme mit sprintf() und dtostrf() GMBU 11 818 22.06.2016 10:52
Letzter Beitrag: GMBU
  Makeblock mit Scratch programmieren- Probleme Keinen Schimmer 6 983 06.05.2016 18:34
Letzter Beitrag: arduinopeter
  Programme vom UNO auf nano , mini Pro portieren Probleme anwo 19 1.178 17.04.2016 21:12
Letzter Beitrag: hotsystems
  Probleme beim Auslesen eines IR Empfängers linuxpaul 7 577 06.03.2016 14:44
Letzter Beitrag: hotsystems
  I²C vom NANO zum PI Probleme mit High/Low Bit Tobias1984 4 334 29.02.2016 00:00
Letzter Beitrag: hotsystems
  Analogspannung ausgeben Rudi 6 640 24.02.2016 14:25
Letzter Beitrag: hotsystems
  Probleme beim auswählen des Ports Levi 11 838 21.02.2016 18:00
Letzter Beitrag: hotsystems
  IRemote probleme mit abfrage schnutzkurt 18 1.153 20.02.2016 01:30
Letzter Beitrag: SkobyMobil

Gehe zu:


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