WordClock - SK6812 - NeoPixel

Wenn ich alles ohne Schleife mache geht es... Gibt halt mehr Code aber es Funktioniert so...
Erster Teil geschaft

Gruss
Philipp

#include <Adafruit_NeoPixel.h>
#include <Wire.h>
#include "RTClib.h"

RTC_DS3231 rtc;

#define BRIGHTNESSDAY 255 // full on
#define BRIGHTNESSNIGHT 150 // half on
#define PIN 5
#define NUMPIXELS 114

Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRBW + NEO_KHZ800);

int mm1 = 0;
int hh = 0;
int mm = 0;
int ss = 0;
int mm5erRest = 0;
int mm5er = 0;
int hhdisplay = 0;
int R = 0;
int G = 0;
int B = 0;
int W = 255;
int test = 0;

void setup() {
  pixels.setBrightness(BRIGHTNESSDAY);
  pixels.begin();
  pixels.clear();
  if (! rtc.begin()) {
    //Oben Links
    pixels.setPixelColor(112, 255, 0, 0, 0);
    // Oben Rechts
    pixels.setPixelColor(113, 255, 0, 0, 0);
    // Unten Rechts
    pixels.setPixelColor(110, 255, 0, 0, 0);
    // Unten Links
    pixels.setPixelColor(111, 255, 0, 0, 0);
  }
  if (rtc.lostPower()) {
    rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
    //Oben Links
    pixels.setPixelColor(112, 255, 0, 0, 0);
    // Oben Rechts
    pixels.setPixelColor(113, 0, 255, 0, 0);
    // Unten Rechts
    pixels.setPixelColor(110, 0, 0, 255, 0);
    // Unten Links
    pixels.setPixelColor(111, 0, 0, 0, 255);
  }
  pixels.show();
  delay(2000);
}
void loop() {
  DateTime now = rtc.now();
  hh = now.hour(), DEC;
  mm = now.minute(), DEC;
  ss = now.second(), DEC;
  if (mm != mm1 ) {
    if ((hh < 7) | (hh >= 19)) {
      pixels.setBrightness(BRIGHTNESSNIGHT);
    } else {
      pixels.setBrightness(BRIGHTNESSDAY);
    }

    mm5erRest = mm % 5;
    mm5er = mm - mm5erRest;
    if (hh >= 13) {
      hhdisplay = hh - 12;
    }
    if (mm5erRest == 0) {
      pixels.clear();
    }
    if (mm5erRest == 1) {
      //Oben Links
      pixels.setPixelColor(112, R, G, B, W);
    }
    else if (mm5erRest == 2) {
      //Oben Links
      pixels.setPixelColor(112, R, G, B, W);
      // Oben Rechts
      pixels.setPixelColor(113, R, G, B, W);
    }
    else if (mm5erRest == 3) {
      //Oben Links
      pixels.setPixelColor(112, R, G, B, W);
      // Oben Rechts
      pixels.setPixelColor(113, R, G, B, W);
      // Unten Rechts
      pixels.setPixelColor(110, R, G, B, W);
    }
    else if (mm5erRest == 4) {
      //Oben Links
      pixels.setPixelColor(112, R, G, B, W);
      // Oben Rechts
      pixels.setPixelColor(113, R, G, B, W);
      // Unten Rechts
      pixels.setPixelColor(110, R, G, B, W);
      // Unten Links
      pixels.setPixelColor(111, R, G, B, W);
    }
    if (mm5er == 5 || mm5er == 25 || mm5er == 35 || mm5er == 55) {
      //FÜF
      pixels.setPixelColor(0, R, G, B, W);
      pixels.setPixelColor(1, R, G, B, W);
      pixels.setPixelColor(2, R, G, B, W);
    }
    if (mm5er == 10 || mm5er == 50) {
      //ZÄÄ
      pixels.setPixelColor(19, R, G, B, W);
      pixels.setPixelColor(20, R, G, B, W);
      pixels.setPixelColor(21, R, G, B, W);
    }
    if (mm5er == 15 || mm5er == 45) {
      //VIERTU
      pixels.setPixelColor(11, R, G, B, W);
      pixels.setPixelColor(12, R, G, B, W);
      pixels.setPixelColor(13, R, G, B, W);
      pixels.setPixelColor(14, R, G, B, W);
      pixels.setPixelColor(15, R, G, B, W);
      pixels.setPixelColor(16, R, G, B, W);
    }
    if (mm5er == 20 || mm5er == 40) {
      //ZWÄNZG
      pixels.setPixelColor(27, R, G, B, W);
      pixels.setPixelColor(28, R, G, B, W);
      pixels.setPixelColor(29, R, G, B, W);
      pixels.setPixelColor(30, R, G, B, W);
      pixels.setPixelColor(31, R, G, B, W);
      pixels.setPixelColor(32, R, G, B, W);
    }
    if (mm5er == 25 || mm5er == 30 || mm5er == 35) {
      //HAUBI
      pixels.setPixelColor(36, R, G, B, W);
      pixels.setPixelColor(37, R, G, B, W);
      pixels.setPixelColor(38, R, G, B, W);
      pixels.setPixelColor(39, R, G, B, W);
      pixels.setPixelColor(40, R, G, B, W);
    }
    if (mm5er == 0) {
      //UHR
      pixels.setPixelColor(107, R, G, B, W);
      pixels.setPixelColor(108, R, G, B, W);
      pixels.setPixelColor(109, R, G, B, W);
    }
    if (mm5er == 5 || mm5er == 10 || mm5er == 15 || mm5er == 20 || mm5er == 35) {
      //AB
      pixels.setPixelColor(33, R, G, B, W);
      pixels.setPixelColor(34, R, G, B, W);
    }
    if (mm5er == 25 || mm5er == 40 || mm5er == 45 || mm5er == 50 || mm5er == 55) {
      //VOR
      pixels.setPixelColor(22, R, G, B, W);
      pixels.setPixelColor(23, R, G, B, W);
      pixels.setPixelColor(24, R, G, B, W);
    }
    hhdisplay = hh;
    if (mm >= 25) {                                       // ab der 25 Minuten ist es immer "vor" der nächsetn Stunde
      if (hh == 0 || hh == 12) {                          // bei 12 Uhr vor "Ein" Uhr
        hhdisplay = 1;
      }
      else
        hhdisplay = hh + 1;
    }

    switch (hhdisplay) {
      case 1:
      case 13:
        //EIS
        pixels.setPixelColor(52, R, G, B, W);
        pixels.setPixelColor(53, R, G, B, W);
        pixels.setPixelColor(54, R, G, B, W);
        break;
      case 2:
      case 14:
        //Zwöi
        pixels.setPixelColor(48, R, G, B, W);
        pixels.setPixelColor(49, R, G, B, W);
        pixels.setPixelColor(50, R, G, B, W);
        pixels.setPixelColor(51, R, G, B, W);
        break;
      case 3:
      case 15:
        pixels.setPixelColor(44, R, G, B, W);
        pixels.setPixelColor(45, R, G, B, W);
        pixels.setPixelColor(46, R, G, B, W);
        break;
      case 4:
      case 16:
        //Vieri
        pixels.setPixelColor(55, R, G, B, W);
        pixels.setPixelColor(56, R, G, B, W);
        pixels.setPixelColor(57, R, G, B, W);
        pixels.setPixelColor(58, R, G, B, W);
        pixels.setPixelColor(59, R, G, B, W);
        break;
      case 5:
      case 17:
        //Füfi
        pixels.setPixelColor(60, R, G, B, W);
        pixels.setPixelColor(61, R, G, B, W);
        pixels.setPixelColor(62, R, G, B, W);
        pixels.setPixelColor(63, R, G, B, W);
        break;
      case 6:
      case 18:
        //Sächsi
        pixels.setPixelColor(71, R, G, B, W);
        pixels.setPixelColor(72, R, G, B, W);
        pixels.setPixelColor(73, R, G, B, W);
        pixels.setPixelColor(74, R, G, B, W);
        pixels.setPixelColor(75, R, G, B, W);
        pixels.setPixelColor(76, R, G, B, W);
        break;
      case 7:
      case 19:
        //Sibni
        pixels.setPixelColor(66, R, G, B, W);
        pixels.setPixelColor(67, R, G, B, W);
        pixels.setPixelColor(68, R, G, B, W);
        pixels.setPixelColor(69, R, G, B, W);
        pixels.setPixelColor(70, R, G, B, W);
        break;
      case 8:
      case 20:
        //Achti
        pixels.setPixelColor(77, R, G, B, W);
        pixels.setPixelColor(78, R, G, B, W);
        pixels.setPixelColor(79, R, G, B, W);
        pixels.setPixelColor(80, R, G, B, W);
        pixels.setPixelColor(81, R, G, B, W);
        break;
      case 9:
      case 21:
        //Nüni
        pixels.setPixelColor(82, R, G, B, W);
        pixels.setPixelColor(83, R, G, B, W);
        pixels.setPixelColor(84, R, G, B, W);
        pixels.setPixelColor(85, R, G, B, W);
        break;
      case 10:
      case 22:
        //Zähni
        pixels.setPixelColor(95, R, G, B, W);
        pixels.setPixelColor(96, R, G, B, W);
        pixels.setPixelColor(97, R, G, B, W);
        pixels.setPixelColor(98, R, G, B, W);
        break;
      case 11:
      case 23:
        //Öufi
        pixels.setPixelColor(88, R, G, B, W);
        pixels.setPixelColor(89, R, G, B, W);
        pixels.setPixelColor(90, R, G, B, W);
        pixels.setPixelColor(91, R, G, B, W);
        break;
      case 0:
      case 12:
      case 24:
        //Zwöufi
        pixels.setPixelColor(99, R, G, B, W);
        pixels.setPixelColor(100, R, G, B, W);
        pixels.setPixelColor(101, R, G, B, W);
        pixels.setPixelColor(102, R, G, B, W);
        pixels.setPixelColor(103, R, G, B, W);
        pixels.setPixelColor(104, R, G, B, W);
        break;
    }
    //ES
    pixels.setPixelColor(9, R, G, B, W);
    pixels.setPixelColor(10, R, G, B, W);
    //ISCH
    pixels.setPixelColor(4, R, G, B, W);
    pixels.setPixelColor(5, R, G, B, W);
    pixels.setPixelColor(6, R, G, B, W);
    pixels.setPixelColor(7, R, G, B, W);

    pixels.show();
  }
  mm1 = mm;
 
}