panbachi / wordclock

DIY WordClock
https://www.panbachi.de/eigene-word-clock-bauen/
MIT License
108 stars 47 forks source link

Frage zu Minuten LED´s #7

Closed obkram closed 4 years ago

obkram commented 4 years ago

Hallo lieber Entwickler,

vorab bedanke ich mich bei Ihnen für die Möglichkeit dieses tolle Projekt nachbauen zu dürfen.

Hierbei handelt es sich weniger um einen Issue sondern mehr um eine Anfrage.

Mein Aufbau: In meinem Fall habe ich ein Grid von 11x11 LEDs, Minutenposition after und Start LED unten links bei Draufsicht gewählt. Auf vier zusätzliche LED habe ich wegen der schmalen Bauform des RIBBA Rahmens verzichtet.

Meine Frage wäre nun ob ich evtl. in der Konfiguration die Position der Minuten LEDs selbst ändern kann und wenn ja wo. Bei dem von Ihnen vorgegebenen Grid Layout besteht bei einer LED Bestückung von 11x11 LEDs die unterste Zeile aus der Buchstabenreihe "E-V-F-X-R-N-Z-S-L-P-I". Dies scheint ja ein optischer Platzhalter zu sein da sich hieraus keine Wörter Bilden lassen. Ich hatte mir vorgestellt hier die Positionen "F R Z L" für die Minuten zu missbrauchen.

Sollte dies möglich sein dann würde ich mich über einen Hinweis freuen. Ansonsten Anfrage bitte einfach ignorieren und schliessen. Vielen Dank im Voraus.

LG Sven O.

obkram commented 4 years ago

Hallo nochmal,

ich habe es für mich jetzt zumindest schon einmal soweit eingegrenzt das ich bei Änderung der ersten Minuten-LED-Position in der Zeile 62 in der Datei de_DE.cpp die Minutenanzeige an die Position 112 bekomme. Vielleicht hat ja jemand eine Idee wie ich die Formel ...

_for(int s = (NUMLEDS - "neue LED POSITION"_); s < (NUMLEDS "neue LED POSITION" + singleMinute); s++)

...so abändern kann das die singleMinute nicht an der Position bspw. 112-115 angezeigt werden sondern an den Positionen 112, 114, 116 und 118. Also immer eine singleMinute + ein Platzhalter für die folgende LED.

Nachrichten-Bild(3586913851)

LG Sven O.

napsio commented 4 years ago

Hi,

du kannst mal folgendes probieren (ungetestet):

  if(GRID_SINGLE_MINUTES == 1) {
    // single minutes
        if(singleMinute >= 1) {
      Led::ids[112].setRGB(Config::color_fg.r, Config::color_fg.g, Config::color_fg.b);
        }
        if(singleMinute >= 2) {
      Led::ids[114].setRGB(Config::color_fg.r, Config::color_fg.g, Config::color_fg.b);
        }
        if(singleMinute >= 3) {
      Led::ids[116].setRGB(Config::color_fg.r, Config::color_fg.g, Config::color_fg.b);
        }
        if(singleMinute >= 4) {
      Led::ids[118].setRGB(Config::color_fg.r, Config::color_fg.g, Config::color_fg.b);
        }
  } else {
    for(int s = 0; s < singleMinute; s++) {
      Led::ids[s].setRGB(Config::color_fg.r, Config::color_fg.g, Config::color_fg.b);
    }
  }

Ist zwar nicht die schönste Lösung, müsste aber funktionieren :)

obkram commented 4 years ago

Hallo napsio,

vielen Dank für die schnelle Antwort. Ich habe es sofort getestet und es funktioniert einwandfrei. Ich musste lediglich die LED IDs auf 2,4,6 und 8 abändern. Dies hat scheinbar seinen Ursprung darin, das ich von unten links anfangen muss zu zählen, da dort mein Einspeisepunkt ist. Vielleicht könnte das ja mit den Auswahloptionen wie unten angegeben von panbachi in den Master mit aufgenommen werden.

Vielen Dank für die Hilfe napsio.

LG Sven O.

obkram commented 4 years ago

Hallo napsio,

anbei sende ich dir ein Bild wie die Darstellung bei mir nun aussieht. Danke nochmal. EDF2A85E-B3F9-4948-91A5-2BAE84EF430C

LG Sven O.