Uhrzeit vom PC holen

Hi community!

Hat jemand eine Routine programmiert, die im void setup() die Zeit des Laptops ausliest?

Grundsätzlich habe ich die Notwendigkeit nicht, über DS1307 oder RTC die Zeit permanent und ultragenau zu synchronisieren.

Es würde also reichen, wenn beim Reset oder Upload von Arduino UNO die Zeit des Laptops gelesen wird (sofern er Verbindung hat).

Und selbst bei der Verwendung von DS1307 muss die Zeit erst einmal dort eingetragen werden. (siehe meinen code)

Danke für eure Tipps :slight_smile:

// variable zur Zeitbestimmung aus dem Modul DS1307
  byte Std =   14; //0-23
  byte Min =   59; //0-59
  byte Sek =   50; //0-59
  byte W_Tag =  6; //1-7 1 = Mon | 2 = Die | 3 = Mit | 4 = Don | 5 = Fre | 6 = Sam | 7 = Son
  byte Tag =   17; //1-31
  byte Mon =   02; //1-12
  word Jahr  = 17; //0-99

void setDateTime(){
  
  Wire.beginTransmission(DS1307_ADDRESS);
  Wire.write(zero); //stop Oscillator

  // Arbeitsvariable setzen
  Wire.write(decToBcd(Sek));
  Wire.write(decToBcd(Min));
  Wire.write(decToBcd(Std));
  Wire.write(decToBcd(W_Tag));
  Wire.write(decToBcd(Tag));
  Wire.write(decToBcd(Mon));
  Wire.write(decToBcd(Jahr));
  Wire.write(zero); //start 
  Wire.endTransmission();
  

  // Arduino Uhrzeit setzen
  setTime(Std,Min,Sek,Tag,Mon,Jahr);
}

Dazu brauchst Du auf dem PC ein Programm, das auf Anforderung durch den Arduino die Zeit z.B. über eine serielle Schnittstelle (USB/TTL-Wandler) bereit stellt. Wenn Du dafür die Serial nehmen willst, gibt das Probleme, weil darüber programmiert wird.
Wenn Du das Ganze übers Netzwerk machen willst, dann kannst Du Dir auch gleich über NTP die Zeit holen und sparst Dir das PC-Programm.
Du kannst die RTC auch mit der Compilezeit des Sketches setzen, das bringt aber nichts beim Neustart ohne neuen Sketch.

In diesem Thread sind einige Varianten diskutiert.

Gruß Tommy

Edit: Link vergessen

Also ich bin selbst absoluter Noob, aber bin auch gerade dabei sämtliche Tutorials etc. durchzuarbeiten :slight_smile:
Ich habe in meinem Aufbau die DS3231.h verwendet.
Im Setup hab ich folgende Zeilen rein.

// Zeile nur einkommentieren, um die aktuelle Uhrzeit zu setzen.
// RTC Uhr wird auf die compilierte Uhrzeit des Sketches gestellt. ...also JETZT :-)

//  clock.setDateTime(__DATE__, __TIME__);

Und man muss daran denken, die Zeile wieder auszukommentieren und nochmal hochzuladen, sonst geht´s beim nächsten Reset, wenn er nicht am Rechner hängt, schief :wink:

Hoffe, dass das vielleicht weiterhilft.

Danke für die Tipps :slight_smile: