LED Matrix blink geschwindigkeit ändern

Hallo zusammen,

Ich habe einen sketch für eine LED Matrix geschrieben.
Es ist ein einfaches abwechselndes blinken, die blinkgeschwendigkeit regelich mit einem Poti.
Das funktioniert super von ganz langsam zu ganz schnell.

Wenn ich das ganze aber erweitere und ein keypad verwende bei dem ich verschieden anzeigen auf der Mnatrix anzeigen lassen kann, dann ist die regelbare blinkgeschwindigkeit wesentlich langsamer!

Was mache ich da falsch?
Warum ist das so?
Was muss ich verändern?

Ich hoffe hier kann mir jemand weiterhelfen.

Grüße

Weedling

Sketch ohne keypad:

#include <Adafruit_NeoPixel.h>
#define PIN 11
Adafruit_NeoPixel strip = Adafruit_NeoPixel(256, PIN, NEO_GRB + NEO_KHZ800);

const byte pot6        = A6;
unsigned long interval    = analogRead(pot6);
unsigned long previousMillis = 0; // speichert den Zeitpunkt an dem zuletzt geschalten wurde
byte counter = 0;
int bright      = 0;
int pot1        = A0;


                                       
int pot2        = A1;
int pot3        = A2;
int pot4        = A3;


int rot         = 0;
int gruen       = 0;
int blau        = 0;
void setup()
{
  strip.begin();
  strip.show();
}

void loop()
{
    rot       = analogRead(pot2);
  rot       = map(rot, 0, 1023, 0, 255);
  gruen     = analogRead(pot3);
  gruen     = map(gruen, 0, 1023, 0, 255);
  blau      = analogRead(pot4);
  blau      = map(blau, 0, 1023, 0, 255);
  unsigned long currentMillis = millis(); // Aktuelle Zeit wird in currentMillis gespeichert

  bright    = analogRead(pot1); // wir legen fest, dass die Variable pot1_wert für uns den Wert des Potis speichert
  bright    = map(bright, 0, 1023, 0, 250);



       if (currentMillis - previousMillis >= interval)  // Falls mehr als 1000 ms vergangen sind
        {
          previousMillis = currentMillis;
          interval      = analogRead(pot6);
          strip.clear();
          strip.show();
          if (counter == 0 || counter == 2 || counter == 4)
          {
            
            strip.setPixelColor(49, (strip.Color(255, 40, 0))); strip.setPixelColor(50, (strip.Color(255, 40, 0))); strip.setPixelColor(51, (strip.Color(255, 40, 0))); strip.setPixelColor(52, (strip.Color(255, 40, 0))); strip.setPixelColor(53, (strip.Color(255, 40, 0))); strip.setPixelColor(54, (strip.Color(255, 40, 0))); strip.setPixelColor(78, (strip.Color(255, 40, 0))); strip.setPixelColor(81, (strip.Color(255, 40, 0))); strip.setPixelColor(110, (strip.Color(255, 40, 0))); strip.setPixelColor(113, (strip.Color(255, 40, 0))); strip.setPixelColor(114, (strip.Color(255, 40, 0))); strip.setPixelColor(115, (strip.Color(255, 40, 0))); strip.setPixelColor(116, (strip.Color(255, 40, 0))); strip.setPixelColor(117, (strip.Color(255, 40, 0))); strip.setPixelColor(118, (strip.Color(255, 40, 0))); strip.setPixelColor(137, (strip.Color(255, 40, 0))); strip.setPixelColor(150, (strip.Color(255, 40, 0))); strip.setPixelColor(169, (strip.Color(255, 40, 0))); strip.setPixelColor(182, (strip.Color(255, 40, 0))); strip.setPixelColor(201, (strip.Color(255, 40, 0))); strip.setPixelColor(202, (strip.Color(255, 40, 0))); strip.setPixelColor(203, (strip.Color(255, 40, 0))); strip.setPixelColor(204, (strip.Color(255, 40, 0))); strip.setPixelColor(205, (strip.Color(255, 40, 0))); strip.setPixelColor(206, (strip.Color(255, 40, 0))); strip.setPixelColor(62, (strip.Color(255, 40, 0))); strip.setPixelColor(61, (strip.Color(255, 40, 0))); strip.setPixelColor(60, (strip.Color(255, 40, 0))); strip.setPixelColor(59, (strip.Color(255, 40, 0))); strip.setPixelColor(58, (strip.Color(255, 40, 0))); strip.setPixelColor(57, (strip.Color(255, 40, 0))); strip.setPixelColor(70, (strip.Color(255, 40, 0))); strip.setPixelColor(89, (strip.Color(255, 40, 0))); strip.setPixelColor(102, (strip.Color(255, 40, 0))); strip.setPixelColor(121, (strip.Color(255, 40, 0))); strip.setPixelColor(134, (strip.Color(255, 40, 0))); strip.setPixelColor(153, (strip.Color(255, 40, 0))); strip.setPixelColor(166, (strip.Color(255, 40, 0))); strip.setPixelColor(185, (strip.Color(255, 40, 0))); strip.setPixelColor(198, (strip.Color(255, 40, 0))); strip.setPixelColor(197, (strip.Color(255, 40, 0))); strip.setPixelColor(196, (strip.Color(255, 40, 0))); strip.setPixelColor(195, (strip.Color(255, 40, 0))); strip.setPixelColor(194, (strip.Color(255, 40, 0))); strip.setPixelColor(193, (strip.Color(255, 40, 0)));
            strip.setBrightness(bright);
            strip.show();
          }
          else if (counter == 6 || counter == 8 || counter == 10)
          {
              
            strip.fill(strip.Color(255, 40, 0), 0, 256);
            strip.setBrightness(bright);
            strip.show();
          }
          else
           
          { strip.show();
            strip.fill(strip.Color(0, 0, 0), 0, 128);
            
          }
          strip.show();
          if (++counter >= 12) counter = 0;
        }



}

und das hier der sketch mit keypad:

#include <Keypad.h>
#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
#include <avr/power.h>
#endif
#include <SoftwareSerial.h>
#include <SPI.h>
#include <OneWire.h>
#include <DallasTemperature.h>

#define ONE_WIRE_BUS 52
#define van 53
#define PIN 11

OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);




int pot1        = A0;
int pot2        = A1;
int pot3        = A2;
int pot4        = A3;

int bright      = 0;
int rot         = 0;
int gruen       = 0;
int blau        = 0;


const byte pot6        = A6;
const byte ROWS = 4;
const byte COLS = 4;
const byte address[6] = "00001";


char keys[ROWS][COLS] = {
  {'1', '2', '3', 'A'},
  {'4', '5', '6', 'B'},
  {'7', '8', '9', 'C'},
  {'*', '0', '#', 'D'}
};



byte rowPins[ROWS] = {9, 8, 7, 6};
byte colPins[COLS] = {5, 4, 3, 2};
byte counter = 0;

Keypad kpd = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
Adafruit_NeoPixel strip = Adafruit_NeoPixel(256, PIN, NEO_GRB + NEO_KHZ800);


unsigned long interval    = analogRead(pot6);
unsigned long previousMillis = 0;




void setup()
{


  strip.begin();
  strip.show();
  Serial.begin(9600);
  pinMode(van, OUTPUT);

  sensors.begin();
}


void loop()
{
  bright    = analogRead(pot1);
  bright    = map(bright, 0, 1023, 0, 250);


  rot       = analogRead(pot2);
  rot       = map(rot, 0, 1023, 0, 255);
  gruen     = analogRead(pot3);
  gruen     = map(gruen, 0, 1023, 0, 255);
  blau      = analogRead(pot4);
  blau      = map(blau, 0, 1023, 0, 255);



  unsigned long currentMillis = millis();
  static char key;
  char keyIn = kpd.getKey();


  sensors.requestTemperatures();


  if (keyIn) key = keyIn;

  if (key)
  {
    switch (key)
    {


      case '1':
        //////////////////////        POLICE      //////////////////////
        strip.setBrightness(bright);
        strip.clear();
        strip.show();

        if (currentMillis - previousMillis >= interval)  // Falls mehr als 1000 ms vergangen sind
        {
          previousMillis = currentMillis;
          interval = analogRead(pot6);



          if (counter == 0 || counter == 2 || counter == 4)
          {
            strip.fill(strip.Color(0, 0, 255), 8, 8); strip.fill(strip.Color(0, 0, 255), 16, 8); strip.fill(strip.Color(0, 0, 255), 40, 8); strip.fill(strip.Color(0, 0, 255), 48, 8); strip.fill(strip.Color(0, 0, 255), 72, 8); strip.fill(strip.Color(0, 0, 255), 80, 8);  strip.fill(strip.Color(0, 0, 255), 104, 8); strip.fill(strip.Color(0, 0, 255), 112, 8);  strip.fill(strip.Color(0, 0, 255), 136, 8);  strip.fill(strip.Color(0, 0, 255), 144, 8); strip.fill(strip.Color(0, 0, 255), 168, 8); strip.fill(strip.Color(0, 0, 255), 176, 8); strip.fill(strip.Color(0, 0, 255), 200, 8); strip.fill(strip.Color(0, 0, 255), 208, 8); strip.fill(strip.Color(0, 0, 255), 232, 8); strip.fill(strip.Color(0, 0, 255), 240, 8);

          }
          else if (counter == 6 || counter == 8 || counter == 10)
          {
            strip.fill(strip.Color(255, 0, 0), 0, 8); strip.fill(strip.Color(255, 0, 0), 24, 8); strip.fill(strip.Color(255, 0, 0), 32, 8); strip.fill(strip.Color(255, 0, 0), 56, 8); strip.fill(strip.Color(255, 0, 0), 64, 8); strip.fill(strip.Color(255, 0, 0), 88, 8); strip.fill(strip.Color(255, 0, 0), 96, 8); strip.fill(strip.Color(255, 0, 0), 120, 8); strip.fill(strip.Color(255, 0, 0), 128, 8); strip.fill(strip.Color(255, 0, 0), 152, 8); strip.fill(strip.Color(255, 0, 0), 160, 8); strip.fill(strip.Color(255, 0, 0), 184, 8); strip.fill(strip.Color(255, 0, 0), 192, 8); strip.fill(strip.Color(255, 0, 0), 216, 8); strip.fill(strip.Color(255, 0, 0), 224, 8); strip.fill(strip.Color(255, 0, 0), 248, 8);
          }
          else
          {
            strip.fill(strip.Color(0, 0, 0), 0, 128);

          }
          strip.show();
          if (++counter >= 12) counter = 0;
        }
        break;
      ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

      case '2':
        //////////////////////        SC      //////////////////////
        if (currentMillis - previousMillis >= interval)  // Falls mehr als 1000 ms vergangen sind
        {
          previousMillis = currentMillis;
          interval      = analogRead(pot6);
          strip.clear();
          strip.show();
          if (counter == 0 || counter == 2 || counter == 4)
          {
            strip.setPixelColor(49, (strip.Color(255, 90, 0))); strip.setPixelColor(50, (strip.Color(255, 90, 0))); strip.setPixelColor(51, (strip.Color(255, 90, 0))); strip.setPixelColor(52, (strip.Color(255, 90, 0))); strip.setPixelColor(53, (strip.Color(255, 90, 0))); strip.setPixelColor(54, (strip.Color(255, 90, 0))); strip.setPixelColor(78, (strip.Color(255, 90, 0))); strip.setPixelColor(81, (strip.Color(255, 90, 0))); strip.setPixelColor(110, (strip.Color(255, 90, 0))); strip.setPixelColor(113, (strip.Color(255, 90, 0))); strip.setPixelColor(114, (strip.Color(255, 90, 0))); strip.setPixelColor(115, (strip.Color(255, 90, 0))); strip.setPixelColor(116, (strip.Color(255, 90, 0))); strip.setPixelColor(117, (strip.Color(255, 90, 0))); strip.setPixelColor(118, (strip.Color(255, 90, 0))); strip.setPixelColor(137, (strip.Color(255, 90, 0))); strip.setPixelColor(150, (strip.Color(255, 90, 0))); strip.setPixelColor(169, (strip.Color(255, 90, 0))); strip.setPixelColor(182, (strip.Color(255, 90, 0))); strip.setPixelColor(201, (strip.Color(255, 90, 0))); strip.setPixelColor(202, (strip.Color(255, 90, 0)));  strip.setPixelColor(203, (strip.Color(255, 90, 0))); strip.setPixelColor(204, (strip.Color(255, 90, 0))); strip.setPixelColor(205, (strip.Color(255, 90, 0))); strip.setPixelColor(206, (strip.Color(255, 90, 0))); strip.setPixelColor(62, (strip.Color(255, 90, 0))); strip.setPixelColor(61, (strip.Color(255, 90, 0))); strip.setPixelColor(60, (strip.Color(255, 90, 0))); strip.setPixelColor(59, (strip.Color(255, 90, 0)));  strip.setPixelColor(58, (strip.Color(255, 90, 0))); strip.setPixelColor(57, (strip.Color(255, 90, 0))); strip.setPixelColor(70, (strip.Color(255, 90, 0))); strip.setPixelColor(89, (strip.Color(255, 90, 0)));  strip.setPixelColor(102, (strip.Color(255, 90, 0))); strip.setPixelColor(121, (strip.Color(255, 90, 0))); strip.setPixelColor(134, (strip.Color(255, 90, 0))); strip.setPixelColor(153, (strip.Color(255, 90, 0))); strip.setPixelColor(166, (strip.Color(255, 90, 0))); strip.setPixelColor(185, (strip.Color(255, 90, 0))); strip.setPixelColor(198, (strip.Color(255, 90, 0))); strip.setPixelColor(197, (strip.Color(255, 90, 0))); strip.setPixelColor(196, (strip.Color(255, 90, 0))); strip.setPixelColor(195, (strip.Color(255, 90, 0))); strip.setPixelColor(194, (strip.Color(255, 90, 0))); strip.setPixelColor(193, (strip.Color(255, 90, 0)));
            strip.setBrightness(bright);
            strip.show();
          }
          else if (counter == 6 || counter == 8 || counter == 10)
          {
            strip.show();
            strip.fill(strip.Color(255, 90, 0), 0, 256);
          }
          else
          { strip.show();
            strip.fill(strip.Color(0, 0, 0), 0, 128);
          }
          strip.show();
          if (++counter >= 12) counter = 0;
        }
        break;
      ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////



      case '3':
        //////////////////////       TINA   TNS     //////////////////////

        if (currentMillis - previousMillis >= interval)  // Falls mehr als 1000 ms vergangen sind
        {
          previousMillis = currentMillis;
          interval      = analogRead(pot6);
          strip.clear();
          strip.show();
          if (counter == 0 || counter == 2 || counter == 4)
          {
            strip.setPixelColor(84, (strip.Color(139, 0, 139))); strip.setPixelColor(83, (strip.Color(139, 0, 139))); strip.setPixelColor(82, (strip.Color(139, 0, 139))); strip.setPixelColor(81, (strip.Color(139, 0, 139))); strip.setPixelColor(80, (strip.Color(139, 0, 139))); strip.setPixelColor(109, (strip.Color(139, 0, 139))); strip.setPixelColor(114, (strip.Color(139, 0, 139)));  strip.setPixelColor(141, (strip.Color(139, 0, 139))); strip.setPixelColor(146, (strip.Color(139, 0, 139))); strip.setPixelColor(89, (strip.Color(139, 0, 139))); strip.setPixelColor(86, (strip.Color(139, 0, 139))); strip.setPixelColor(102, (strip.Color(139, 0, 139))); strip.setPixelColor(104, (strip.Color(139, 0, 139))); strip.setPixelColor(105, (strip.Color(139, 0, 139))); strip.setPixelColor(120, (strip.Color(139, 0, 139))); strip.setPixelColor(121, (strip.Color(139, 0, 139))); strip.setPixelColor(118, (strip.Color(139, 0, 139))); strip.setPixelColor(134, (strip.Color(139, 0, 139))); strip.setPixelColor(137, (strip.Color(139, 0, 139))); strip.setPixelColor(150, (strip.Color(139, 0, 139))); strip.setPixelColor(153, (strip.Color(139, 0, 139))); strip.setPixelColor(93, (strip.Color(139, 0, 139))); strip.setPixelColor(92, (strip.Color(139, 0, 139))); strip.setPixelColor(91, (strip.Color(139, 0, 139))); strip.setPixelColor(94, (strip.Color(139, 0, 139))); strip.setPixelColor(95, (strip.Color(139, 0, 139))); strip.setPixelColor(100, (strip.Color(139, 0, 139))); strip.setPixelColor(123, (strip.Color(139, 0, 139))); strip.setPixelColor(124, (strip.Color(139, 0, 139))); strip.setPixelColor(125, (strip.Color(139, 0, 139))); strip.setPixelColor(126, (strip.Color(139, 0, 139))); strip.setPixelColor(127, (strip.Color(139, 0, 139))); strip.setPixelColor(128, (strip.Color(139, 0, 139))); strip.setPixelColor(155, (strip.Color(139, 0, 139))); strip.setPixelColor(156, (strip.Color(139, 0, 139))); strip.setPixelColor(157, (strip.Color(139, 0, 139))); strip.setPixelColor(158, (strip.Color(139, 0, 139))); strip.setPixelColor(159, (strip.Color(139, 0, 139)));
            strip.setBrightness(bright);
            strip.show();
          }
          else if (counter == 6 || counter == 8 || counter == 10)
          {
            strip.setPixelColor(83, (strip.Color(139, 0, 139))); strip.setPixelColor(82, (strip.Color(139, 0, 139))); strip.setPixelColor(81, (strip.Color(139, 0, 139))); strip.setPixelColor(107, (strip.Color(139, 0, 139))); strip.setPixelColor(110, (strip.Color(139, 0, 139))); strip.setPixelColor(113, (strip.Color(139, 0, 139)));  strip.setPixelColor(116, (strip.Color(139, 0, 139))); strip.setPixelColor(139, (strip.Color(139, 0, 139))); strip.setPixelColor(142, (strip.Color(139, 0, 139))); strip.setPixelColor(145, (strip.Color(139, 0, 139))); strip.setPixelColor(146, (strip.Color(139, 0, 139))); strip.setPixelColor(147, (strip.Color(139, 0, 139))); strip.setPixelColor(148, (strip.Color(139, 0, 139))); strip.setPixelColor(89, (strip.Color(139, 0, 139))); strip.setPixelColor(87, (strip.Color(139, 0, 139))); strip.setPixelColor(86, (strip.Color(139, 0, 139))); strip.setPixelColor(88, (strip.Color(139, 0, 139))); strip.setPixelColor(102, (strip.Color(139, 0, 139))); strip.setPixelColor(105, (strip.Color(139, 0, 139))); strip.setPixelColor(121, (strip.Color(139, 0, 139))); strip.setPixelColor(118, (strip.Color(139, 0, 139))); strip.setPixelColor(134, (strip.Color(139, 0, 139))); strip.setPixelColor(137, (strip.Color(139, 0, 139))); strip.setPixelColor(150, (strip.Color(139, 0, 139))); strip.setPixelColor(151, (strip.Color(139, 0, 139))); strip.setPixelColor(152, (strip.Color(139, 0, 139))); strip.setPixelColor(153, (strip.Color(139, 0, 139))); strip.setPixelColor(93, (strip.Color(139, 0, 139))); strip.setPixelColor(98, (strip.Color(139, 0, 139))); strip.setPixelColor(125, (strip.Color(139, 0, 139))); strip.setPixelColor(130, (strip.Color(139, 0, 139))); strip.setPixelColor(157, (strip.Color(139, 0, 139)));
            strip.setBrightness(bright);
            strip.show();
          }
          else
          {
            strip.show();
            strip.fill(strip.Color(0, 0, 0), 0, 128);
          }
          strip.show();
          if (++counter >= 12) counter = 0;
        }
        break;
      ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

      case 'A':
        ////////////////////////////////////////////      Ich   UNT     ////////////////////////////////////////////////////////////////////
        if (currentMillis - previousMillis >= interval)  // Falls mehr als 1000 ms vergangen sind
        {
          previousMillis = currentMillis;
          interval      = analogRead(pot6);
          strip.clear();
          strip.show();
          if (counter == 0 || counter == 2 || counter == 4)
          {
            strip.setPixelColor(84, (strip.Color(139, 0, 139))); strip.setPixelColor(81, (strip.Color(139, 0, 139))); strip.setPixelColor(107, (strip.Color(139, 0, 139))); strip.setPixelColor(110, (strip.Color(139, 0, 139))); strip.setPixelColor(113, (strip.Color(139, 0, 139))); strip.setPixelColor(116, (strip.Color(139, 0, 139))); strip.setPixelColor(139, (strip.Color(139, 0, 139))); strip.setPixelColor(142, (strip.Color(139, 0, 139))); strip.setPixelColor(145, (strip.Color(139, 0, 139))); strip.setPixelColor(146, (strip.Color(139, 0, 139))); strip.setPixelColor(147, (strip.Color(139, 0, 139))); strip.setPixelColor(148, (strip.Color(139, 0, 139))); strip.setPixelColor(89, (strip.Color(139, 0, 139))); strip.setPixelColor(86, (strip.Color(139, 0, 139))); strip.setPixelColor(102, (strip.Color(139, 0, 139))); strip.setPixelColor(104, (strip.Color(139, 0, 139))); strip.setPixelColor(105, (strip.Color(139, 0, 139))); strip.setPixelColor(120, (strip.Color(139, 0, 139))); strip.setPixelColor(121, (strip.Color(139, 0, 139))); strip.setPixelColor(118, (strip.Color(139, 0, 139))); strip.setPixelColor(134, (strip.Color(139, 0, 139))); strip.setPixelColor(137, (strip.Color(139, 0, 139))); strip.setPixelColor(150, (strip.Color(139, 0, 139))); strip.setPixelColor(153, (strip.Color(139, 0, 139)));  strip.setPixelColor(93, (strip.Color(139, 0, 139))); strip.setPixelColor(92, (strip.Color(139, 0, 139))); strip.setPixelColor(91, (strip.Color(139, 0, 139))); strip.setPixelColor(94, (strip.Color(139, 0, 139))); strip.setPixelColor(95, (strip.Color(139, 0, 139))); strip.setPixelColor(98, (strip.Color(139, 0, 139))); strip.setPixelColor(125, (strip.Color(139, 0, 139))); strip.setPixelColor(130, (strip.Color(139, 0, 139))); strip.setPixelColor(157, (strip.Color(139, 0, 139)));
            strip.setBrightness(bright);
            strip.show();
          }
          else if (counter == 6 || counter == 8 || counter == 10)
          {
            strip.setPixelColor(84, (strip.Color(139, 0, 139))); strip.setPixelColor(83, (strip.Color(139, 0, 139))); strip.setPixelColor(82, (strip.Color(139, 0, 139))); strip.setPixelColor(81, (strip.Color(139, 0, 139))); strip.setPixelColor(107, (strip.Color(139, 0, 139))); strip.setPixelColor(110, (strip.Color(139, 0, 139))); strip.setPixelColor(113, (strip.Color(139, 0, 139))); strip.setPixelColor(116, (strip.Color(139, 0, 139))); strip.setPixelColor(139, (strip.Color(139, 0, 139))); strip.setPixelColor(142, (strip.Color(139, 0, 139))); strip.setPixelColor(145, (strip.Color(139, 0, 139))); strip.setPixelColor(146, (strip.Color(139, 0, 139))); strip.setPixelColor(147, (strip.Color(139, 0, 139))); strip.setPixelColor(148, (strip.Color(139, 0, 139))); strip.setPixelColor(89, (strip.Color(139, 0, 139))); strip.setPixelColor(87, (strip.Color(139, 0, 139))); strip.setPixelColor(86, (strip.Color(139, 0, 139))); strip.setPixelColor(88, (strip.Color(139, 0, 139))); strip.setPixelColor(102, (strip.Color(139, 0, 139))); strip.setPixelColor(105, (strip.Color(139, 0, 139))); strip.setPixelColor(121, (strip.Color(139, 0, 139))); strip.setPixelColor(118, (strip.Color(139, 0, 139)));  strip.setPixelColor(134, (strip.Color(139, 0, 139))); strip.setPixelColor(137, (strip.Color(139, 0, 139))); strip.setPixelColor(150, (strip.Color(139, 0, 139))); strip.setPixelColor(151, (strip.Color(139, 0, 139))); strip.setPixelColor(152, (strip.Color(139, 0, 139))); strip.setPixelColor(153, (strip.Color(139, 0, 139))); strip.setPixelColor(93, (strip.Color(139, 0, 139))); strip.setPixelColor(98, (strip.Color(139, 0, 139))); strip.setPixelColor(125, (strip.Color(139, 0, 139))); strip.setPixelColor(130, (strip.Color(139, 0, 139))); strip.setPixelColor(157, (strip.Color(139, 0, 139)));
            strip.setBrightness(bright);
            strip.show();
          }
          else
          { strip.show();
            strip.fill(strip.Color(0, 0, 0), 0, 128);
          }
          strip.show();
          if (++counter >= 12) counter = 0;
        }
        break;
      ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

      case '4':
        ////////////////////  WEIß      ///////////////////////////
        strip.fill(strip.Color(255, 255, 255), 0, 256);
        strip.setBrightness(bright);
        strip.show();
        break;
      ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

      case '5':
        ////////////////////    RGB     ///////////////////////////
        strip.fill(strip.Color(rot, gruen, blau), 0, 256);
        strip.setBrightness(bright);
        strip.show();
        break;
      //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

      case '6':
        ////////////////////    RGB FLASH     ///////////////////////////
        if (currentMillis - previousMillis >= interval)  // Falls mehr als 1000 ms vergangen sind
        {
          previousMillis = currentMillis;
          interval      = analogRead(pot6);
          strip.clear();
          strip.show();
          if (counter == 0 )
          {
            strip.clear();
            strip.show();
          }
          else if (counter == 1 )
          {
            strip.fill(strip.Color(rot, gruen, blau), 0, 256);
            strip.setBrightness(bright);
            strip.show();
          }
          else
          { strip.show();
            strip.fill(strip.Color(0, 0, 0), 0, 128);
          }
          strip.show();
          if (++counter >= 2) counter = 0;
        }
        break;
      ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

      case 'B':
        ////////////////////    SC 2    ///////////////////////////
        if (currentMillis - previousMillis >= interval)  // Falls mehr als 1000 ms vergangen sind
        {
          previousMillis = currentMillis;
          interval      = analogRead(pot6);
          strip.clear();
          strip.show();
          if (counter == 0 || counter == 2 || counter == 4)
          {

            strip.setPixelColor(49, (strip.Color(255, 40, 0))); strip.setPixelColor(50, (strip.Color(255, 40, 0))); strip.setPixelColor(51, (strip.Color(255, 40, 0))); strip.setPixelColor(52, (strip.Color(255, 40, 0))); strip.setPixelColor(53, (strip.Color(255, 40, 0))); strip.setPixelColor(54, (strip.Color(255, 40, 0))); strip.setPixelColor(78, (strip.Color(255, 40, 0))); strip.setPixelColor(81, (strip.Color(255, 40, 0))); strip.setPixelColor(110, (strip.Color(255, 40, 0))); strip.setPixelColor(113, (strip.Color(255, 40, 0))); strip.setPixelColor(114, (strip.Color(255, 40, 0))); strip.setPixelColor(115, (strip.Color(255, 40, 0))); strip.setPixelColor(116, (strip.Color(255, 40, 0))); strip.setPixelColor(117, (strip.Color(255, 40, 0))); strip.setPixelColor(118, (strip.Color(255, 40, 0))); strip.setPixelColor(137, (strip.Color(255, 40, 0))); strip.setPixelColor(150, (strip.Color(255, 40, 0))); strip.setPixelColor(169, (strip.Color(255, 40, 0))); strip.setPixelColor(182, (strip.Color(255, 40, 0))); strip.setPixelColor(201, (strip.Color(255, 40, 0))); strip.setPixelColor(202, (strip.Color(255, 40, 0))); strip.setPixelColor(203, (strip.Color(255, 40, 0))); strip.setPixelColor(204, (strip.Color(255, 40, 0))); strip.setPixelColor(205, (strip.Color(255, 40, 0))); strip.setPixelColor(206, (strip.Color(255, 40, 0))); strip.setPixelColor(62, (strip.Color(255, 40, 0))); strip.setPixelColor(61, (strip.Color(255, 40, 0))); strip.setPixelColor(60, (strip.Color(255, 40, 0))); strip.setPixelColor(59, (strip.Color(255, 40, 0))); strip.setPixelColor(58, (strip.Color(255, 40, 0))); strip.setPixelColor(57, (strip.Color(255, 40, 0))); strip.setPixelColor(70, (strip.Color(255, 40, 0))); strip.setPixelColor(89, (strip.Color(255, 40, 0))); strip.setPixelColor(102, (strip.Color(255, 40, 0))); strip.setPixelColor(121, (strip.Color(255, 40, 0))); strip.setPixelColor(134, (strip.Color(255, 40, 0))); strip.setPixelColor(153, (strip.Color(255, 40, 0))); strip.setPixelColor(166, (strip.Color(255, 40, 0))); strip.setPixelColor(185, (strip.Color(255, 40, 0))); strip.setPixelColor(198, (strip.Color(255, 40, 0))); strip.setPixelColor(197, (strip.Color(255, 40, 0))); strip.setPixelColor(196, (strip.Color(255, 40, 0))); strip.setPixelColor(195, (strip.Color(255, 40, 0))); strip.setPixelColor(194, (strip.Color(255, 40, 0))); strip.setPixelColor(193, (strip.Color(255, 40, 0)));
            strip.setBrightness(bright);
            strip.show();
          }
          else if (counter == 6 || counter == 8 || counter == 10)
          {

            strip.fill(strip.Color(255, 40, 0), 0, 256);
            strip.setBrightness(bright);
            strip.show();
          }
          else

          { strip.show();
            strip.fill(strip.Color(0, 0, 0), 0, 128);

          }
          strip.show();
          if (++counter >= 12) counter = 0;
        }
        break;
      ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

      //case '7':

      ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


      case '8':
        ////////////////////    Posten    ///////////////////////////

        //{
        strip.clear();
        strip.setPixelColor(81, (strip.Color(255, 255, 255)));
        strip.setPixelColor(82, (strip.Color(255, 255, 255)));
        strip.setPixelColor(83, (strip.Color(255, 255, 255)));
        strip.setPixelColor(84, (strip.Color(255, 255, 255)));
        strip.setPixelColor(107, (strip.Color(255, 255, 255)));
        strip.setPixelColor(110, (strip.Color(255, 255, 255)));
        strip.setPixelColor(113, (strip.Color(255, 255, 255)));
        strip.setPixelColor(114, (strip.Color(255, 255, 255)));
        strip.setPixelColor(115, (strip.Color(255, 255, 255)));
        strip.setPixelColor(116, (strip.Color(255, 255, 255)));
        strip.setPixelColor(142, (strip.Color(255, 255, 255)));
        strip.setPixelColor(145, (strip.Color(255, 255, 255)));
        strip.setBrightness(bright);
        strip.show();
        //}
        //}
        break;
      ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
      //case '9':
      //{
      //}
      //}
      //break;
      ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
      //case 'c':
      //{
      //}
      //}
      //break;
      ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
      //case '*':
      //{
      //}
      //}
      //break;
      ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
      //case '0':
      //{
      //}
      //}
      //break;
      ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
      //case '#':
      //{
      //}
      //}
      //break;
      ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
      case 'D':
        ////////////////////    clear    ///////////////////////////
        strip.clear();
        strip.show();
      ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

      default:
        Serial.println(key);
    }

  }
}

die Abfrage des Keypads sollte so keine spürbare Verzögerung verursachen. Ich befüchte eher, daß hier die Abfrage des Temperatur-Sensors zu lange dauert und das Programm dadurch blockiert wird. Zum Test einfach mal die Abfrage des Sensors weglassen? Falls das Erfolg bringt, soll es auch nicht-blockierende Abfragemethoden für den Sensor geben..

Anmerkung zur Benutzung der strip.setBrightness(..)-Funktion: die sollte nur einmal im Setup erfolgen und nicht im Programm selbst. Da sollten besser die übergebenen Farbwerte manipuliert werden..

Aus der NeoPixel-Library-Reference:

This was intended for one-time use in one's setup() function, not as an animation effect in itself. Because of the way this library "pre-multiplies" LED colors in RAM, changing the brightness is often a "lossy" operation – what you write to pixels isn't necessary the same as what you'll read back. Repeated brightness changes using this function exacerbate the problem. Smart programs therefore treat the strip as a write-only resource, maintaining their own state to render each frame of an animation, not relying on read-modify-write.

Ich schliesse mich @derGeppi an.
Das Sensor lesen nimmt Dir die Zeit.
Du könntest in den Beispielen vom dallasTemperature die beiden Sketche waitForConversation und waitForConversation2 mal überblicken.
Aber ich denke, das der erste für Dich aausreichend ist, wenn Du einfach nurjede Sekunde einmal liestund nach dem lesen eine neue Conversation anstösst und Dir dann die Zeit merkst, wann Du fertig warst.
Von dort ausgehend läuft der Sketch dann bis zum Ablauf des Intervall und das Ganze beginnt von vorn.,,,

Dankeschön!!!!

Ja das dallasTemperature war tatsächlich das problem :slight_smile:
Vielen herzlichen dank!!!

Aber das brauch ich eigentlich weil damit möchte ich einen lüfter zur kühlung der matrix temperatur abhänging ein und ausschalten....
Ich hoffe ich finde dazu noch eine passende lösung.

Lg

Weedling

Die Lösung hat Dir doch @my_xy_projekt in #3 bereits gegeben.

Gruß Tommy

Das stimmt :slight_smile:

ich meinte auch damit viel mehr es lernen und verstehen wie ich das umsetzen kann!

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.