PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : TinyRTC und Arduino UNO zeigt komisches Verhalten



oderlachs
30.05.2015, 08:10
Hallo Kenner des Fach's !

Wieder einmal stehe ich vor einem Rätsel. Ich habe eine Ventilsteuerung mit Arduino gebaut. Als Zeitnormal dient ein Tiny-RTC per I2C . Leider vergisst das RTC immer die Zeit wenn ich es seriell zur Kontrolle anfrage. Es fängt dann immer wieder mit der Zeit an an, mit der es gesetzt wurde.
Ich habe zu Testzwecken eine Minuten und 30sec. Ledkontrolle eingebaut und in der Testversion als Kontrolle programmiert. Da läuft alles richtig den die optische Anzeige wechselt im gewollten Modus. Starte ich am PC jetzt ein ser. Terminal PUTTY o.ä. so fängt die Anzeige wieder bei der anfangs gesetzten Zeit an und läuft weiter. Ich habe die Pufferbatterie schon geprüft und auch gewechselt...kann nix Negatives feststellen...

Den Code kann man hier downloaden (http://robot.oderlachs.de/forum/sketchbook.zip) , ich denke das ich ihn genügend kommentiert habe. Den Dateikopf schreibt GEANY selber, damit erstelle ich unter Linux meinen Code, also ist das nicht "auf meinem Mist gewachsen" ;)

Vielleicht hat jemand einen Rat für mich, wofür ich mich jetzt schon bedanken möchte ?

Beste Grüsse

Gerhard

Nachtrag 1: Heute um 9.30 habe ich das Board nochmals ser. Abgefragt und siehe da es war ein anderer Effekt sichtbar...Das RTC ging ca 30 min. nach :o
Nun erzählt mir mal einer was von "KwartzUhren" ... :mad: ;)

Rabenauge
30.05.2015, 19:26
Ich glaube, das Problem kenne ich.
Es _kann_ vorkommen, dass die RTC 's (ich benutz nicht die grottig ungenaue 1307) stehen bleiben- wenn man die externe Stromversorgung trennt.
Offenbar reicht dann _manchmal_ der Saft nicht zum umschalten, oder so...
Und: meine macht das längst nich immer, sondern nur ab und zu mal. Dann läuft sie einfach nicht weiter auf Batterie.
Irgend wer hatte mir mal nen Tipp gegeben, nen kleinen Stützkondensator in die Stromversorgung zu basteln, der das Problem angeblich behebt.
Weiss aber nicht mehr, ob ich das gemacht hatte oder nicht...

oderlachs
31.05.2015, 08:44
Danke Rabenauge für die Hinweise !

Ja bei einem TinyRTC hatt der Batteriehalter Schuld, da hatte man zu sehr am Material gespart , so das sich die Pufferbatterie fast selbständig aus der Halterung sprang ;)
Dann hatte ich mir selber ein Eigentor geschossen. ich benutzte ja set_time() zum einmaligen Stellen in der Setup-Routine...bei jedem neuen seriellen Zugriff, wer weiss warum, machte der Arduino ein Reset...also wieder die Zeit gesetzt wurde wie beim ersten Start...
Nachdem ich das neu gesetzt hatte und dann den Aufruf von "set_time()" deaktiviert habe, dann das noch mal geflasht habe läuft alles OK.
In richtigen Garduino Programm wird das Zeitsetzen per Tastendruck aufgerufen und die über Tastaur eingegeben Zeit übernommen...

So ist es aber dann wenn man mal schnell ne Notlösung für zwischendurch benötigt...

Danke nochmals fürs Mitdenken!

Gruss
Gerhard

Rabenauge
31.05.2015, 16:36
Mal ehrlich: ne Bibliothek für das bissel RTC braucht kein Mensch...
Im Arduino-Forum hatte User Jurs mal die nötigen paar Zeilen Code veröffentlicht, viel isses echt nicht.

Stellfunktion inklusive- das kann man sich easy zurecht stricken, wie mans braucht: Uhrzeit vom PC holen, manell mittels Knöppen eingeben, vom GPS holen-wie mans halt will.

oderlachs
01.06.2015, 09:58
Hallo Rabenauge,

natürlich, für das bisschen was da an Code zu sehen ist braucht man nicht extra eine Bibliothek, aber das eigentlich Programm hat ein wenig mehr im "Bauch" Alarmanlage, Klimasteuerung, Bewässerungsteuerung etc. , da ackert dann auch ein ArduMega2560 und mehr in der Zentrale, und auch noch einige Wirless-Kontrollpunkte im Umfeld (Garten, Bungalow usw.).
Ich habe mir angewöhnt mit Bibliotheken zu arbeiten wegen der Übersicht, weil fast immer aus kleinen Programmfetzen noch später was Größeres wird.

Damit ich mir nicht wieder irgendwelche Kuckuckseier ins eigene Nest lege, habe ich mir diesen Programmierstil vorbehalten...


Gerhard

Rabenauge
01.06.2015, 10:44
Grad dann würd es eigentlich lohnen, weniger Bibliotheken zu benutzen.
Das spart nämlich: Speicher und Rechenleistung.
Die meisten Libs verfügen ja über recht viele, kaum benötigte Funktionen.
Ich bin grade bei, mir die Nutzung der Arduino-IDE-Tabs anzugewöhnen. Auch das bringt enorm Übersicht rein, und da jeder Tab nachher ne eigene Datei ist, hat man quasi irgendwann ne eigene Bücherei...die einzelnen Tabs kann man ja später leicht in anderen Projekten wieder verwenden.
So lässt sich z.B. eine Datei erzeugen, die einfach nur Datum und Uhrzeit von der RTC holt, oder eine andere, die beides setzt, eine für Sommer/Winterzeitumschaltung oder auch alles zusammen in einer.

oderlachs
02.06.2015, 13:29
Du meinst es bestimmt gut mir mir, ich kenne das "Speichersparen" noch aus Assembler und C-64er Zeiten. Aber die Bibliotheken die ich ja selber schreibe, beinhalten auch nur das was ich brauche...da ist es mir egal womit der Speicher befüllt wird durch die PDE/INO Datei oder der Librarie...

Gruss und Danke

Gerhard