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
werte vergleichen
12.09.2019, 20:55
Beitrag #1
werte vergleichen
Hallo,
ich bin Holger und habe gerade das programmieren wieder angefangen.
Erstmal einen großen Dank an alle die die hier so viele gute Beiträge schreiben.
Ich bin seit ca. 4 Wochen nur am lesen und konnte mir immer weiter helfen.

Ich Arbeite nur noch mit dem NodeMCU da hat man gleich sehr einfach die Netzwerk Anbindung mit bei.

Aber jetzt zu meiner Frage.

Im folgenden Sketch lese ich den Uhr Sensor DS3231 aus und übergebe die Daten an ein Nextion Display das klappt auch sehr gut.
Aber ich möchte über eine if schleife die Uhrzeit vergleichen und das senden nur anstoßen wenn sich die Minuten ändern .

Code:
#include <Wire.h>       //I2C library
#include <RtcDS3231.h>  //RTC library
RtcDS3231<TwoWire> rtcObject(Wire);
//----------------------------------------
#include <SoftwareSerial.h>
SoftwareSerial mySerial(D7, D6);//RX, TX
//--------------------------------------
void setup()
{
//Serial.begin(115200);
mySerial.begin(9600);    
    rtcObject.Begin();     //Starts I2C
    RtcDateTime currentTime = RtcDateTime(__DATE__, __TIME__);
    rtcObject.SetDateTime(currentTime); //configure the RTC with object

}

void loop()
{
  RtcDateTime currentTime = rtcObject.GetDateTime();    //get the time from the RTC
  char str[20];   //declare a string as an array of chars
  sprintf(str, "%d.%d.%d %d:%d:%d",     //%d allows to print an integer to the string
          currentTime.Day(),    //get day method
          currentTime.Month(),   //get year method
          currentTime.Year(),  //get month method

          currentTime.Hour(),   //get hour method
          currentTime.Minute(), //get minute method
          currentTime.Second()  //get second method
         );
         char date[10];
  char zeit[10];
  
  sprintf(date, "%d.%",     //%d allows to print an integer to the string
          currentTime.Day(),   //get hour method
          currentTime.Month(), //get minute method
          currentTime.Year()  //get second method
         );
         sprintf(zeit, "%d:%d:%d",     //%d allows to print an integer to the string
          currentTime.Hour(),   //get hour method
          currentTime.Minute(), //get minute method
         );

  //Serial.println(str); //print the string to the serial port

  //delay(5000); //20 seconds delay
  //------------------------------------------
  mySerial.print("t0.txt=\"");
  mySerial.print(zeit);
  mySerial.print('"');
  mySerial.write(0xff);
  mySerial.write(0xff);
  mySerial.write(0xff);
}


Und wie schaffe ich es das er mir Minuten und Stunden kleiner 10 mit einer führungs Null darstellt ?

Gruß Holger
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.09.2019, 21:06
Beitrag #2
RE: werte vergleichen
Hallo,

hier findest du ein Beispiel dafür:
Einbau führende Null

Solch einfach Sachen findest du auch bei Google.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.09.2019, 21:24 (Dieser Beitrag wurde zuletzt bearbeitet: 12.09.2019 21:30 von Tommy56.)
Beitrag #3
RE: werte vergleichen
Das mit der Aktualisierung alle Minuten: Du musst Dir die alte Minute merken und wenn die aktuelle Minute != der alten Minute ist - anzeigen und alte Minute aktualisieren.

Da Du sowieso sprintf (Format) benutzt:
Code:
// entweder für ESP oder Softwareserial
void print2Digit(Stream s, byte zahl) {
  s.printf("%02d",zahl);
}

// oder z.B. für HW-Serial auf AVR (da ist printf nicht definiert)
char *to2Digit(byte zahl) {
  static char tmp[3];
  snprintf(tmp, sizeof(tmp),"%02d",zahl);
  return tmp;
}

// Verwendung:
Serial.print(to2Digit(3));  // ergibt 03

// oder in Deinem sprintf:
sprintf(str, "%02d.%02d.%04d %02d:%02d:%02d",...

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.09.2019, 22:27
Beitrag #4
RE: werte vergleichen
Hi,
Danke für die schnellen Antworten.
Komme hoffentlich Morgen Vormittag dazu sie zu testen.
Sonst gebe ich Montag eine Rückmeldung.

@hotsystems
ich bin mir auch sicher man hätte bei Google was gefunden aber mir gingen echt die Ideen aus wonach ich suchen soll. :-(.

00:00 sieht echt doof aus auf der Uhr :-)

Gruß Holger


Wäre das mal vor 10 Jahren so einfach gewesen
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.09.2019, 23:14
Beitrag #5
RE: werte vergleichen
(12.09.2019 20:55)becki schrieb:  Ich Arbeite nur noch mit dem NodeMCU da hat man gleich sehr einfach die Netzwerk Anbindung mit bei.

Dann soltest du deine Beiträge im Unterforum für den Esp.... posten!

Gruß Fips

Meine Esp8266 & ESP32 Projekte
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
13.09.2019, 07:18
Beitrag #6
RE: werte vergleichen
(12.09.2019 22:27)becki schrieb:  @hotsystems
ich bin mir auch sicher man hätte bei Google was gefunden aber mir gingen echt die Ideen aus wonach ich suchen soll. :-(.

00:00 sieht echt doof aus auf der Uhr :-)
Das kann ich nicht nachvollziehen.
Z.B. Arduino RTC führende Null
Das ist doch was du suchst.

Und wie das letztendlich aussieht, entscheidest doch du, oder ?

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
13.09.2019, 09:38
Beitrag #7
RE: werte vergleichen
Moin,

vielen Dank für die Hilfe jetzt ist es so wie ich es haben möchte.
War dann doch recht logisch und verständlich wie man es machen kann.

Man sieht manchmal den Wald vor lauter Bäumen nicht :-(

Gruß Holger
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
13.09.2019, 09:48
Beitrag #8
RE: werte vergleichen
(13.09.2019 09:38)becki schrieb:  Moin,

vielen Dank für die Hilfe jetzt ist es so wie ich es haben möchte.
War dann doch recht logisch und verständlich wie man es machen kann.

Man sieht manchmal den Wald vor lauter Bäumen nicht :-(

Gruß Holger
Prima und danke für die Rückmeldung.

Für die Nachwelt ist es angebracht (üblich hier im Forum) wenn du dein Ergebnis auch hier postest.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  NodeMCU und Nano über I2C verbinden Werte sind falsch Franzel007 6 2.534 21.09.2019 17:09
Letzter Beitrag: Franzel007
  NodeMCU Werte übertragen Gian-Luca 11 3.716 16.04.2018 16:57
Letzter Beitrag: Tommy56
  ESP8266 esp-12e development board & BME280 falsche Werte Lurchi 8 6.040 25.03.2018 07:34
Letzter Beitrag: Fips

Gehe zu:


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