Ja der TX blinkt nach den 300milliSekunden.
Mess mall mit Multimeter ob sich der SQW Pin ändert wenn nicht ist was mit der RTC, nach dem Sketch wird das 1Herz Signal gebraucht. Gegen GND messen.
Das scheint der Fehler zu sein. Nix los am Ausgang. Habe leider keinen Ersatz, dauert also.
Danke für Deine Mühe und Unterstützung, so habe ich wieder was gelernt.
Ich habe dies hier noch gefunden.
https://www.mikrocontroller.net/topic/304143
Kann das aber noch nicht umsetzen.
Dan nimm die die DS3231, die musst Du nur ein mal im Jahr paar Sekunden korrigieren.
Die 1607 ist ein Schätzeisen so ungenau ist die, manchmal sogar Minuten innerhalb 24 Stunden
Also nach dem Beitrag hat der ein PullUP eingebaut.
Der SQW/OUT-Pin ist ein Open-Drain-Pin, der einen externen Pullup Widerstand ...
Ja, das mit der Ungenauigkeit habe ich auch schon gelesen. Ich werde mal entsprechend ordern.
So ihr beiden...
Warum braucht es eigentlihc den SQW-Pin?
@fony warum schreibst Du nicht den originalen Sketch um, dass der auf den Quatsch mit dem Pin verzichtet?
Lies die Sekunden aus und wenn die sich geändert haben, toggle. Fertig.
Ach vielleicht mach ichs auch selbst..
Ne, mach ich nicht, weil das Unsinn ist:
Im RTC-Tab:
void TimeRead(){
Wire.beginTransmission(RTC_ADDRESS);
Wire.write(0x00); // Pointer auf Sekunden
Wire.endTransmission();
Wire.requestFrom(RTC_ADDRESS, 3);
ss= bcdToDec(Wire.read());
mm= bcdToDec(Wire.read());
hh= bcdToDec(Wire.read());
}
Im loop();
sec = digitalRead(RTCIN); // Read the RTC SQWPulse
digitalWrite(13, sec);
if (sec == true && lsec == false)
{
++ss; // Sekunden Zähler aufadieren
if (ss == 60) // Bei 60 Sekunden eine Minute weiter
{
ss = 0;
mm = mm + 1;
}
das Ding ist vollkommen vermurkst.
edit 2: @feinkist sag mal kurz, was Du da mit den tasten machen kannst/willst.
Und was Du für Wörter hast.
Ich glaub es geht schneller das neu zu bauen, als sich mit dem bestehendem rumzuärgern.
Danke für das Interesse,
Die Tasterbezeichnungen sind "stellen", "Minus", "Plus" und Sekunden.
Mit dem Taster Stellen kann ich quasi durchzappen:
"Anzeige", "irgendwas", "irgendwas", "Blau", "Grün", " Rot"
Irgendwas bezieht sich darauf, dass ich die LEDs noch nicht geordnet habe sondern nur der Streifen vor mir liegt.
In den beiden Positionen "irgendwas" dann ich dann mithilfe der "Plus" und "Minus" Taste die Anzeige verstellen und mit "Sekunden" speichern.
In den Farbpositionen kann ich die RGB Farben einstellen und mischen, für die Anzeige.
Ich habe gerade alles wieder verstaut und hole das mal später wieder raus und ordne den Streifen ein bisschen.
Den RTC habe ich reklamiert, eine Erstattung erhalten und gleich den anderen bestellt.
Dauert also etwas. der makershop ist da wirklich auf Zack.
Grüße
Ok, also Uhr stellen und Farben ist ja nun kein Thema - das koennte man sogar schon machen, bevor das Uhrenmodul da ist.
Ich überleg mal, ob es das Wert ist.
Was hast Du für Wörter in der Uhr? -> Danach richtet sich das was da reinprogrammiert werden muss.
Achso, es gibt ja eine Menge Anleitungen, ich suche allerdings eine mit RTC ohne WLAN-anbindung.
Das Ganze soll recht simpel und einfach sein, so dachte ich. Die Idee ist einen Bausatz für Kitas oder Horte zu erstellen wo die Probanden einfach eine Uhr zum ablesen basteln können. Die Front können die ja selbst bauen, es soll ja die Kreativität ankurbeln. Die Kosten sollen dabei sehr niedrig bleiben.
Ich komm an das Bild nicht ran - das liegt auf einem Fremdserver.
Du kannst mit dem hochladen-Button
Das BIld auch hier rein hängen, wichtiger wären mir aber die Worte.
Es Ist fünf zehn zwanzig drei(viertel) nach vor halb zwölf zweinssieben (also Kombination aus zwei ein eins sieben) drei funf elf neun vier acht zehn sechs uhr.
Wobei ich mir durchaus zutraue einen vorhandenen Sketch anzupassen. Zumindest in deutsch, andere Sprachen wären zu testen, will ich aber nicht.
Ich schau mal. Ich hatte die Tage grade einen, der hatte aber eine eigenartige Fomulierung.
Ansonsten bau ich das mal zu morgen mit den Zeiten und für Deine Farben findet sich auch was.
Jedenfalls werden es nicht solche Handstände, wie mit dem was es war...
Wann kommt die?
20 nach UM (xx:20) und 20 vor UM (xx:40)?
Klasse, Farben müssen nicht unbedingt sein, da hat es doch bunte Folie.
Mit der zwanzig, ja genau so. "Es ist Zwanzig nach drei" und "es ist zwanzig vor sechs.
Mit "Dreiviertel" habe ich es nicht so, da kann die Drei eigentlich weg und es soll heißen: es ist viertel vor sieben, anstatt dreiviertel sieben.
Bin davon ausgegangen das @feinkist das so will haben, es gibt so viele Wortuhren sogar hier im Forum. da war ich der Meinung es muss so sein.
Hol Deinen Controller raus.
Ganz ohne alles.
Ich habe eine Simualtion drin.
Da kommt hoffentlich alle paar millisekunden auf dem Seriellen Monitor eine Ausgabe.
Geplant ist, dass vorne die Zeit in Zahlen und dahinter als Text angezeigt wird.
Drauf achten, dass der SerMon genauso eingestellt ist wie im Sketch
Wenn Die Texte mit deiner Vorstellung übereinstimmen, dann müssen wir Deinen LED-Streifen auszählen, welche LED's welches Wort anzeigen sollen.
Also z.B.
1 - 3
-> "Es"
5 - 7
-> " ist"
und so weiter...
Wenn Du das hast, gibt es zu den Texten die passende Anzeige
// Forensketch Neue Wortclock
// https://forum.arduino.cc/
constexpr byte ledPin {LED_BUILTIN};
constexpr char stundenText[][7] {"Null", "Ein", "Zwei", "Drei", "Vier", "Fünf", "Sechs", "Sieben", "Acht", "Neun", "Zehn", "Elf", "Zwölf"};
uint8_t hour;
uint8_t minute;
uint8_t lastMinute = 60;
uint8_t lastSecond = 60;
uint8_t myHour;
uint8_t myMinute;
uint8_t mySecond;
uint32_t lastTick;
const uint32_t tickTime = 200;
void setup()
{
Serial.begin(115200);
Serial.println(F("\r\nStart...\r\n"));
pinMode(ledPin, OUTPUT);
}
void test()
{
if (millis() - lastTick > tickTime)
{
minute++;
if (minute > 59)
{
minute = 0;
hour++;
if (hour > 23)
{ hour = 0; }
}
lastTick = millis();
}
myMinute = minute;
}
//
void giveTime()
{
vornull(myHour);
Serial.print(myHour);
Serial.print(':');
vornull(myMinute);
Serial.print(myMinute);
Serial.print(F(" -> "));
}
void loop()
{
checkTime();
test();
}
//
void checkTime()
{
if (lastSecond != mySecond)
{
digitalWrite(ledPin, !digitalRead(ledPin));
lastSecond = mySecond;
}
if (lastMinute != myMinute)
{
giveTime();
esIst();
setHour();
setMinute();
lastMinute = myMinute;
uhr();
}
}
//
void setHour()
{
switch (myMinute)
{
case 0 ... 22:
myHour = hour;
break;
case 23 ... 59:
myHour = hour + 1;
break;
}
}
//
void setMinute()
{
switch (myMinute)
{
case 3 ... 7: // 5 nach um
case 23 ... 27: // 5 vor halb
case 33 ... 37: // 5 nach halb
case 53 ... 57: // 5 vor um
fuenf();
break;
case 8 ... 12: // 10 nach um
// case 18 ... 22: // 10 vor halb
// case 38 ... 42: // 10 nach halb
case 48 ... 52: // 10 vor um
zehn();
break;
// Ersetzt 10 vor/nach halb!
case 18 ... 22: // 20 nach um
case 38 ... 42: // 20 vor um
zwanzig();
break;
case 13 ... 17: // viertel nach
case 43 ... 47: // viertel vor
viertel();
break;
/*
case 0 ... 2: // um
case 58 ... 60:
um();
*/
}
switch (myMinute)
{
case 3 ... 22: // 5 bis 20 nach um
case 33 ... 37: //
nach();
break;
case 23 ... 27: // 5 vor halb
case 38 ... 57: // 20 bis 5 vor um
vor();
break;
}
switch (myMinute)
{
case 23 ... 37: // halb
halb();
break;
}
stunde();
}
void esIst()
{
Serial.print(F("Es ist "));
}
//
void fuenf()
{
Serial.print(F("Fünf "));
}
//
void zehn()
{
Serial.print(F("Zehn "));
}
//
void zwanzig()
{
Serial.print(F("Zwanzig "));
}
//
void viertel()
{
Serial.print(F("Viertel "));
}
//
void nach()
{
Serial.print(F("nach "));
}
//
void vor()
{
Serial.print(F("vor "));
}
//
void halb()
{
Serial.print(F("halb "));
}
//
void stunde()
{
Serial.print(stundenText[myHour]);
}
void uhr()
{
Serial.println(F(" Uhr"));
}
void vornull(uint8_t number)
{
if (number < 10)
{ Serial.print(0); }
}
Wenn die Anzeige zu schnell ist, kannst Du die Zeit in der Konstanten tikTime höher stellen...
Vielen Dank für Deine Mühe fony, es ist nicht so, dass ich unbedingt diese Version haben möchte. Ich habe mit den Stichworten Arduino, Wortuhr und RCT dieses Projekt gefunden und für mich als nachbaubar empfunden.
Hier im Forum habe ich ehrlich gesagt nicht gesucht.
Ja, dauert noch etwas. Es ist mal wieder essenszeit.