Go Down

Topic: Zähler (Read 214 times) previous topic - next topic

Andiii

Hallo alle zusammen,

Ich habe mein Arduino ganz neu seit diesem Wochenende..

Habe einen Arduino Mini Pro
und einen OLED SSD1306_128X32 angeschlossen.

Nun bin ich auf der Suche nach einen einfachen Zähler der mir nur die Tage zählt, also immer die vollen 24 Stunden zusammen rechnet. Gibt es hierfür einen fertigen Code oder kann mir jemand mit einem Helfen ?


Das soll ein kleines Geschenk werden an dem ich tüftel.
Vielen Dank im Vorraus :)
Liebe Grüße

michael_x

Quote
Gibt es hierfür einen fertigen Code oder kann mir jemand mit einem Helfen ?
Bis du rauskriegst, was dir an einem fertigen Code nicht passt, hast du es schneller selbst geschrieben.

Tip: Ein Tag hat 86400 Sekunden, und eine Sekunde hat 1000 Millisekunden. Aber das ist nicht das Problem.

Wie stellst du sicher, dass der Arduino garantiert viele Tage ohne Unterbrechung durchläuft, oder --wenn nicht-- , dass er weiterzählt ?
Und wenn er weiterzählt, wie kannst du den Zähler dann wieder zurücksetzen?

Übrigens unheimlich spannend, das Teil einen ganzen Tag lang anzustarren, wie es 0 anzeigt. Und was machst du, wenn es das nach einem Tag immer noch macht?

Andiii

#2
Nov 13, 2017, 11:01 pm Last Edit: Nov 14, 2017, 12:31 am by uwefed Reason: add code TAG </>
Ja da hast du recht, bin gerade dabei , mit null ahnung schritt für schritt zu lernen :D

Also Reseten kann ich ihn ja über die Reset taste direkt am Arduino momentan..Das würde ich haber später gerne über eine extra Taste machen. Und ja du hast recht ich glaube das ist wirklich blöd wenn ich warte bis ein Tag zu ende geht :D Ich sollte es mit Stunden und Minuten erweitern die Anzeige. Sekunden müssen nicht unbedingt sein.

Naja weiter zählen soll er erstmal nicht bei ausfall, wenn dann soll er einfach wieder von vorne Anfangen.
Will erstmal noch simpel bleiben.

Also das hier habe ich mal zusammen.. zählt mir aber nur die Sekunden hoch. Ja ich weiß , das noch garnichts :D aber wie gesagt ich habe noch null Erfahrung .. aber ich bin schon mega stolz,so was kleines auf die Beine gestellt zuhaben :)
Code: [Select]
#include <Arduino.h>
#include <U8g2lib.h>
#include <SPI.h>
#include <Wire.h>


U8G2_SSD1306_128X32_UNIVISION_F_HW_I2C u8g2(U8G2_R0);

void setup(void) {
  u8g2.begin();
  
}

void loop(void) {
  u8g2.clearBuffer();          // clear the internal menory
  u8g2.setFont(u8g2_font_logisoso32_tr);  // choose a suitable font
  u8g2.setCursor (0, 32);
  u8g2.print(millis()/1000);
  u8g2.sendBuffer();

}

combie

Tipp: RTC DS3231 Modul
"Freiheit, Gleichheit, Brüderlichkeit!"
Aber wie gelangen wir zu den Tätigkeitswörtern?
Quelle: Stanislaw Jerzy Lec

Klaus_ww

Quote
Zähler der mir nur die Tage zählt
Also ich hab's immer noch nicht begriffen was Du genau anzeigen willst.

Nur die Tage (oder halt mittlerweile eben auch Stunden und Minuten) seit dem letzten Reset?
Oder die vergangene Zeit seit Ereignix X?

RTC ist sicher die richtige Wahl für beides und kostet auch nix - außer bissel Hirnschmalz, aber das meiste bekommst Du ja vorgekocht serviert.
Wenn ich hier sehr knapp antworte dann wegen der elenden Tipperei auf dem Tablet.

michael_x

#5
Nov 14, 2017, 11:57 am Last Edit: Nov 14, 2017, 11:59 am by michael_x
Quote
aber ich bin schon mega stolz,so was kleines auf die Beine gestellt zuhaben
Herzlichen Glückwunsch! Das allermeiste hast du geschafft. (Ehrlich)
Statt der Sekunden seit Reset das ganze als Tage / Stunden / Minuten anzuzeigen ist nicht schwer:

Dazu gibt es Division und Modulo (Rest der Division)

Code: [Select]
unsigned long SekSeitStart = millis() /1000;
int Minuten = SekSeitStart / 60;
int Sekunden = SekSeitStart % 60;
u8g2.print(Minuten); u8g2.print(":"); u8g2.print(Sekunden);
Das ist jetzt absichtlich nicht genau das was du willst, ich will dir ja den Spass nicht verderben.



Wenn die Anzeige nicht flackert, ist sonst schon alles OK.

Bei deiner Aufgabenstellung ( "Zeit seit Start" ) brauchst du keinen   RTC DS3231 Modul
Sollte dich aber interessieren, was das Teil ist und kann.

Andiii

Vielen Dank @Michael_x ,werde mich heut Abend wieder dran setzten , damit kann ich schon sehr viel anfangen :)

Go Up