Hallo zusammen,
ich habe eine 16x16 LED Matrix ich hatte eigentlich ganz normale switch schalter on/off da war es einfach. schalter einschalten die matrix blinkt so wie ich es will und so lange bis ich den schalter ausschalte.
Aber jetzt habe ich heute mal eine button matrix bzw eig so ein keypad 4x4 nachgebaut. Weil so habe ich wesentlich mehr schalter mit wesentlich weniger kabel.
Aber jetzt habe ich das problem dass ich zum beispiel den button 1 drücke und der eine case fall läuft einmal durch und das wars. erst wenn ich den button wieder drücke läuft der ablauf wieder einmal ab.
Ich möchte aber gerne das es so lange durchläuft bis ich einen anderen knopf drücke bzw. den "D" Button.
Was mache ich falsch oder was muss ich anders schreiben??
#include <Keypad.h>
#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
#include <avr/power.h>
#endif
#define PIN 11
int pot1 = A0;
int pot2 = A1;
int pot3 = A2;
int pot4 = A3;
int pot5 = A4;
int pot6 = A5;
int del1 = 0;
int del2 = 0;
int bright = 0;
int rot = 0;
int gruen = 0;
int blau = 0;
const byte ROWS = 4; // Four rows
const byte COLS = 4; // Three columns
char keys[ROWS][COLS] = { // Define the Keymap
{'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};
Keypad kpd = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );// Create the Keypad
Adafruit_NeoPixel strip = Adafruit_NeoPixel(256, PIN, NEO_GRB + NEO_KHZ800);
void setup()
{
strip.begin();
strip.show();
Serial.begin(9600);
}
void loop()
{
bright = analogRead(pot5); // wir legen fest, dass die Variable pot1_wert für uns den Wert des Potis speichert
bright = map(bright, 0, 1023, 0, 240);
del1 = analogRead(pot1);
del2 = analogRead(pot6);
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);
char key = kpd.getKey();
if (key) // Check for a valid key.
{
switch (key)
{
case '1':
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);
strip.setBrightness(bright);
strip.show();
delay(del2);
strip.clear();
strip.show();
delay(del2);
break;
case '2':
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();
delay(del1);
strip.clear();
strip.show();
delay(del1);
break;
case '3':
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);
delay(del1);
strip.show();
strip.clear();
delay(del1);
break;
case 'A':
strip.fill(strip.Color(255, 255, 255), 0, 256);
strip.setBrightness(bright);
strip.show();
break;
case '4':
strip.fill(strip.Color(rot, gruen, blau), 0, 256);
strip.setBrightness(bright);
strip.show();
break;
//case '5':
//break;
//case '6':
//break;
//case 'B':
//break;
//case '7':
//case '8':
//case '9':
//case 'C':
//case '*':
//case '0':
//case '#':
case 'D':
strip.clear();
strip.show();
default:
Serial.println(key);
}
}
}