hello, I am trying to figure out how to loop code inside of a case statement. In the attached code i am trying to loop "case'4'":
code:
#include <Keypad.h>
#define REDPIN 10
#define GREENPIN 11
#define BLUEPIN 9
#define FADESPEED 10
const byte ROWS = 4; //four rows
const byte COLS = 4; //four columns
char keys[ROWS][COLS] = {
{'1','2','3','4'},
{'5','6','7','8'},
{'9','0','A','B'},
{'C','D','E','F'}
};
byte rowPins[ROWS] = {6,7,8,12};
byte colPins[COLS] = {2,3,4,5};
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
void setup(){
Serial.begin(9600);
// keypad.addEventListener(keypadEvent);
pinMode(REDPIN, OUTPUT);
pinMode(GREENPIN, OUTPUT);
pinMode(BLUEPIN, OUTPUT);
analogWrite(REDPIN, 0);
analogWrite(GREENPIN, 0);
analogWrite(BLUEPIN, 0);
}
void loop(){
char key = keypad.getKey();
if(key)
{
switch(key)
{
case '1':
analogWrite(REDPIN, 255);
analogWrite(GREENPIN, 0);
analogWrite(BLUEPIN, 0);
break;
case'2':
analogWrite(GREENPIN, 255);
analogWrite(REDPIN, 0);
analogWrite(BLUEPIN, 0);
break;
case'3':
analogWrite(BLUEPIN, 255);
analogWrite(GREENPIN, 0);
analogWrite(REDPIN, 0);
break;
case'4' :
int r, g, b;
// fade from blue to violet
for (r = 0; r < 256; r++) {
analogWrite(REDPIN, r);
delay(FADESPEED);
}
// fade from violet to red
for (b = 255; b > 0; b--) {
analogWrite(BLUEPIN, b);
delay(FADESPEED);
}
// fade from red to yellow
for (g = 0; g < 256; g++) {
analogWrite(GREENPIN, g);
delay(FADESPEED);
}
// fade from yellow to green
for (r = 255; r > 0; r--) {
analogWrite(REDPIN, r);
delay(FADESPEED);
}
// fade from green to teal
for (b = 0; b < 256; b++) {
analogWrite(BLUEPIN, b);
delay(FADESPEED);
}
// fade from teal to blue
for (g = 255; g > 0; g--) {
analogWrite(GREENPIN, g);
delay(FADESPEED);
}
break;
}
}}
Keypad_controlled_LEDstrip_NEWLOOP.ino (1.96 KB)