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 stellen per Taster
14.08.2014, 23:38
Beitrag #1
RTC stellen per Taster
Hallo, erstmal kurz was ich vor habe, dann ein paar Worte über meine Probleme.
Also ich nutze den Arduino Mega 2560, ein RTC DS1307 ein paar Taster mehrere Counter und der Rest ist hierfür unwichtig. Ich hätte gerne die Möglichkeit, die Uhrzeit der RTC über die Taster zu ändern. Also zumindest die Stunden und wenn möglich auch die Minuten.
Ich habe da schon viel ausprobiert, war aber wohl alles total falsch und jetzt habe ich auch noch versehentlich meinen Sketch gelöscht, an dem ich schon einige Tage hing.
Mir fehlt auf jeden Fall der richtige Ansatz.
Ich habe die RTClib.h genutzt und versucht die Werte für Stunden und Minuten mit jeweils ein Variablen zu bearbeiten. Sowas wie now.hour() + x .
Das funktioniert aber nicht, hat sicherlich auch seinen Grund, warum es nicht geht aber den kenn ich leider nicht.
Also meine Frage ist eigentlich erstmal ob es geht und wenn ja, ob es für jemanden mit 2 Monaten Erfahrung auch möglich ist sowas zu schreiben?
Die Möglichkeit die Uhr wenn sie nicht mehr Richtig geht am PC zu stellen ist nicht möglich, da ich das ganze für jmd. mache, der das auf jeden Fall nicht hinbekommen wird Smile Wie immer jetzt schon vielen Dank an alle die ihr Zeit für mich opfern.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
15.08.2014, 08:14
Beitrag #2
RE: RTC stellen per Taster
Moin Sascha,

soweit ich das verstanden habe kannst du die Zeit nur über .adjust() setzen. Diese Funktion erwartet aber immer die komplette Angabe aller Datums- und Zeitelemente.
Wenn du also Stunden, Minuten ändern möchtest, müsstest du zuvor mit now.year(),now.day() etc. die aktuellen Werte in Variablen lesen, per Taster die gewünschten Elemente/Variablen ändern und dann wieder geschlossen zurückschreiben.
Ich würde eher die Time Library benutzen. Die spricht auch mit der DS1307 und bietet mehr Möglichkeiten zum selektiven setzen der Elemente. Im example-Ordner der Time Lib gibts dazu auch ein Beispiel.
Grüße Ricardo

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
15.08.2014, 14:16 (Dieser Beitrag wurde zuletzt bearbeitet: 15.08.2014 14:26 von Sascha.)
Beitrag #3
RE: RTC stellen per Taster
Hi Ricardo

Ich habe zu deinen beiden Ansätzen noch einmal eine Frage.
rtc.begin(DateTime(F(__DATE__), F(__TIME__)));
Könnte ich hier für DATE und TIME einfach Variablen einsetzen?

Andere Frage, die time lib habe ich auch, aber welches Beispiel meinst du?

Danke

Ich glaube auch eins meine Probleme ist der Mega, ich habe die RTC zuerst am UNO getestet, dort konnte ich die Zeit manuelle stellen, also über den Sketch.
Jetzt am Mega habe ich zwar die Pins 20 und 21 angeschlossen aber es Lässt sich die Zeit nicht mehr über adjust() stellen .
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
15.08.2014, 14:54
Beitrag #4
RE: RTC stellen per Taster
Naja, __DATE__ und __TIME__ sind vordefinierte Konstanten und an dem Code
Code:
rtc.begin(DateTime(F(__DATE__), F(__TIME__)));
sieht man ja schon, dass es sich jeweils um einen String handeln müsste.
Bei __DATE__ sieht der zB. so aus: "Dec 22 2013" (ohne Anführungszeichen)
__TIME__ sollte wie "12 00 00" aussehen. Du kannst ja über den SerialMonitor einfach mal beide Konstanten printen. Da es Strings sind sollte man die Bestandteile leicht über die Funktionen der String-Klasse mit Variablen belegen können.
Zitat:... aber welches Beispiel meinst du?
Ich meinte TimeRTCSet und das Processing - Beispiel. Beide arbeiten zusammen. Wenn du auf einer Linux-Kiste arbeitest, kannst du anstatt des Processing-Sketch auch "date +T%s > /dev/ttyACM0" (ohne Anführungszeichen) benutzen. Die "0" musst du an deinen Arduino - Port in der IDE anpassen. Beides zusammen setzt dann die RTC auf die Zeit des PC.

Grüße RK

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
15.08.2014, 15:07
Beitrag #5
RE: RTC stellen per Taster
Haha,
Also so ca. 50% von dem was du geschrieben hast verstehe ich.
Die Sache mit den Strings ist, dass zwar schon einiges darüber gelesen habe, aber richtig verstehen werde ich es erst, wenn ich damit arbeite und selbst welche erstelle. So weit bin ich leider noch nicht.
Danke trotzdem, aber mit mir muss man noob deutsch reden Wink
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
15.08.2014, 15:51
Beitrag #6
RE: RTC stellen per Taster
Sorry,

ein gutes Beispiel wie man per SerialMonitor Datum und Uhrzeit setzen kann (zwar nicht mit Variablen, aber durch Eingaben am Monitor) ist hier zu finden:
http://www.instructables.com/id/Setting-...the-Seria/
Dabei wird keine spezielle Lib für die DS1307 gebraucht.
Die Anpassung an die Übergabe von Variablen sollte aber unkompliziert sein.
Grüße Ricardo

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
15.08.2014, 16:04 (Dieser Beitrag wurde zuletzt bearbeitet: 15.08.2014 16:06 von Sascha.)
Beitrag #7
RE: RTC stellen per Taster
Danke, also ich habe die Uhrzeit auf dem SerialMonitor und auf dem lcd, soweit passt alles, nur das anpassen geht nicht.
Ich habe es gerade so versucht
Setup().......
rtc.adjust(DateTime(2014, 1, 21, x, y, 0));
..............
void Loop()..........
buttonState = digitalRead(t1);
if (buttonState == HIGH)
{
buttonStateHIGH = 1;
}
if (buttonState == LOW && buttonStateHIGH == 1)
{
x++;
buttonStateHIGH = 0;
}
...........
den kompletten Code poste ich lieber nicht, da dort auch noch die Zeitschaltuhr, Temperatur, Luftfeucht usw. drin sind und der ca. 14 Seiten hat.

Problem hierbei ist, dass ich zwar die Zeit per Taster stellen kann, aber die Uhr selbst nicht weiter läuft.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
15.08.2014, 16:12
Beitrag #8
RE: RTC stellen per Taster
Wenn man in der RTClib.h nachschaut, sieht man, dass DateTime folgendes erwartet:
Zitat:DateTime (uint16_t year, uint8_t month, uint8_t day,
uint8_t hour =0, uint8_t min =0, uint8_t sec =0);
Du müsstest also schon deine Werte auf entsprechend deklarierte Variablen legen und diese Variablen dann an DateTime übergeben.
RK

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  mehrere Taster entprellen Kitt 15 524 24.10.2016 21:17
Letzter Beitrag: georg01
  Taster für mehrere Funktionen matthias3579 5 350 16.08.2016 16:00
Letzter Beitrag: StephanBuerger
  Steuern von 4 Servo mittels eines Taster und eines Potis Jackie09 17 757 16.07.2016 11:43
Letzter Beitrag: Binatone
  Serial.printeln, Stellen verschwinden Mathias 6 259 27.05.2016 17:44
Letzter Beitrag: Mathias
  Schwellwert mit Taster ändern malsehen 16 1.414 12.04.2016 20:11
Letzter Beitrag: malsehen
  3 Schrittmotoren, 2 LED's 1 Taster cichla 0 392 31.03.2016 15:21
Letzter Beitrag: cichla
  Arduino Alarmanlage mit Taster erweitern Vengance 0 524 22.03.2016 17:54
Letzter Beitrag: Vengance
  Druckanzeige hat zu viele Stellen Rob-LE 2 366 19.03.2016 08:56
Letzter Beitrag: Rob-LE
  Taster abfragen Rudi 3 690 25.02.2016 14:03
Letzter Beitrag: hotsystems
  digitalOutputpin mit Taster an- oder ausschalten Raptor 2 572 26.12.2015 20:59
Letzter Beitrag: torsten_156

Gehe zu:


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