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
  Differenz untereinander gestaffelter Werte an Steppermotor vermitteln Snekels 3 481 22.10.2018 12:34
Letzter Beitrag: Tommy56
  Pointer auf Struct-Werte im PROGMEM rkuehle 2 525 30.09.2018 18:15
Letzter Beitrag: rkuehle
  Mehrere Werte "ungefähr" vergleichen DL1AKP 8 1.563 06.09.2018 14:48
Letzter Beitrag: ardu_arne
  Analog Eingang _ Werte verfälscht Traktor 16 2.737 30.03.2018 08:36
Letzter Beitrag: Bitklopfer
  String vergleichen georg01 15 4.171 18.07.2017 20:35
Letzter Beitrag: Tommy56
  Countdown - Werte ändern am Touchscreen ElAleMaNo 2 1.261 04.07.2017 18:43
Letzter Beitrag: Tommy56
  Motor Steuerung durch Sensoren Werte Zerebrator 14 3.061 12.06.2017 14:36
Letzter Beitrag: Franz54
  Arduino Sensor zeigt falsche Werte an Sandro2504 4 1.713 04.06.2017 09:03
Letzter Beitrag: hotsystems
  Char Werte ausgeben Scotch 5 3.159 31.03.2017 15:37
Letzter Beitrag: Scotch
  Gewichteten Durchschnitt berechnen, 20 Werte in fortlaufender Variable speichern TimeMen 10 7.838 03.07.2016 09:00
Letzter Beitrag: Binatone

Gehe zu:


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