//segments
int segments[8] = {2,3,4,5,7,8,9,10};
int one[2] = {3,7};
int two[5] = {8,7,10,5,4};
int three[5] = {8,7,10,3,4};
int four[4] = {9,10,7,3};
int five[5] = {8,9,10,3,4};
int six[6] = {3,4,8,5,9,10};
int seven[3] = {3,7,8};
int eight[7] = {3,4,7,8,5,9,10};
int nine[5] = {9,8,10,3,7};
int deploytime = 1;
const int button = 6;
int buttonState = 0;
int lastButtonState = 0;
void setup() {
// put your setup code here, to run once:
pinMode(button,INPUT);
for(int i; i<8; i++){pinMode(segments[i], OUTPUT);}
Serial.begin(9600);
}
void loop() {
timechange();
}
void timechange(){
buttonState = digitalRead(button);
if(buttonState != lastButtonState){
if (buttonState == HIGH) {
deploytime++;
//for(int i; i<8; i++){
// digitalWrite(segments[i],LOW);
Serial.print(deploytime);
//}
clear();
}
}
lastButtonState = buttonState;
switch (deploytime){
case 1 :;for(int i; i<2; i++){digitalWrite(one[i],HIGH);}break;
case 2 :;for(int i; i<5; i++){digitalWrite(two[i],HIGH);}break;
case 3 :;for(int i; i<5; i++){digitalWrite(three[i],HIGH);}break;
case 4 :;for(int i; i<4; i++){digitalWrite(four[i],HIGH);}break;
case 5 :;for(int i; i<5; i++){digitalWrite(five[i],HIGH);}break;
case 6 :;for(int i; i<6; i++){digitalWrite(six[i],HIGH);}break;
case 7 :;for(int i; i<3; i++){digitalWrite(seven[i],HIGH);}break;
case 8 :;for(int i; i<7; i++){digitalWrite(eight[i],HIGH);}break;
case 9 :;for(int i; i<5; i++){digitalWrite(nine[i],HIGH);}break;
default:deploytime=1;
}
////loop();
}
void clear(){
digitalWrite(segments[0],LOW);
digitalWrite(segments[1],LOW);
digitalWrite(segments[2],LOW);
digitalWrite(segments[3],LOW);
digitalWrite(segments[4],LOW);
digitalWrite(segments[5],LOW);
digitalWrite(segments[6],LOW);
digitalWrite(segments[7],LOW);
return;
}
After it cycles through once it doesn't go round again. The actual variable 'deploytime' go's back to one but the switch case doesn't go through again.This is code for a water rocket timer to deploy the parachute its not finished. Just need this done.