Hallo zusammen, ich versuche eine einfache Einzeigerwanduhr mit 24 Stunden Zifferblatt zu bauen (falls jemand sehen will was ich meinen https://www.uhren-sheriff.de/images/product_images/popup_images/24_stunden_einzeiger_uhr_von_botta.jpg). Dafür möchte ich einen 28-BYJ48 am ULN2003 Board mit der CheapStepper Bibliothek benutzen. Mit einem einfachen delay Sketch funktioniert das soweit auch halbwegs genau. Da ich aber gerne zusätzlich über einen NTP Server einmal am Tag (um 0 Uhr) die Zeit abfragen möchte (auch das geht schon) und dann den Zeiger per Hall Sensor auf 0 Stellung bringen will (keine Ahnung wie das funktionieren wird) kann ich kein delay verwenden.
Ich hab mich mal am "BlinkWithoutDelay" versucht, aber da mach ich irgendwas falsch. Ist sicher nur so ein typischer Anfängerfehler, aber da hänge ich jetzt schon ein paar Tage dran und hab rumprobiert.
Bei Versuchen gestern hat er einmal getickt aber das wars dann auch, den Sketch hab ich aber leider nicht gespeichert.
Ich wäre für jede Hilfe dankbar.
Der momentane Sketch sieht so aus:
#include <CheapStepper.h>
CheapStepper stepper (5,6,7,8);
// Der Motor macht 4096 Stepps
// geteilt durch 4 weil einzelne Stepps nicht nötig sind macht 1024
// 86400 Sekunden (24Std.) /1024 = 4 Stepps alle 84,375 Sekunden
unsigned long alteZeit = 0;
const unsigned long ZeitbisTick = 1000; //zum testen 1000 //84375; //84,375 Sekunden
void setup()
{
stepper.setRpm(12);
stepper.newMoveCW(4);
}
void loop()
{
unsigned long Zeit = millis();
if (Zeit - alteZeit >= ZeitbisTick)
{
alteZeit = Zeit;
stepper.run();
}
// stepper.off();
}
Gruß Rene