sigh
Still going at it eh?
Well, you're persistent.
Alright, i tired to keep some of your old code, but use better coding practice but still simple by using flags and what not. Try this one on and see how you go:
int ledPin1 = 2;
int ledPin2 = 3;
int ledPin3 = 4;
int ledPin4 = 5;
int ledPin5 = 6;
int ledPin6 = 7;
int ledPin7 = 8;
int inputPin = 10; // switch wired between input and ground
boolean running = true;
boolean pressed = false;
int val = 0;
int num = 0;
int delaytime = 500;
void setup() {
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
pinMode(ledPin3, OUTPUT);
pinMode(ledPin4, OUTPUT);
pinMode(ledPin5, OUTPUT);
pinMode(ledPin6, OUTPUT);
pinMode(ledPin7, OUTPUT);
pinMode(inputPin, INPUT);
}
void loop () {
if(running){ //increment num if were running
if(num == 10) // this makes num count from 0 to 10.
num = 0;
else
num++;
}
display_num(num); // display current number
val = millis() + delaytime; //essentially delays for 'delaytime' and checks the button
while(millis() < val){
while(digitalRead(inputPin) == HIGH) //set pressed flag if button pressed and hold
pressed = true;
if (pressed) { //toggle running and reset pressed if button pressed
running = !running;
pressed = false;
}
}
}
void display_num(int num){
switch (num){
case 0:
digitalWrite(ledPin1, LOW); // number 0
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin3, HIGH);
digitalWrite(ledPin4, LOW);
digitalWrite(ledPin5, LOW);
digitalWrite(ledPin6, LOW);
digitalWrite(ledPin7, LOW);
case 1:
digitalWrite(ledPin1, HIGH); // number 1
digitalWrite(ledPin2, HIGH);
digitalWrite(ledPin3, HIGH);
digitalWrite(ledPin4, HIGH);
digitalWrite(ledPin5, LOW);
digitalWrite(ledPin6, LOW);
digitalWrite(ledPin7, HIGH);
case 2:
digitalWrite(ledPin1, LOW); // number 2
digitalWrite(ledPin2, HIGH);
digitalWrite(ledPin3, LOW);
digitalWrite(ledPin4, LOW);
digitalWrite(ledPin5, LOW);
digitalWrite(ledPin6, HIGH);
digitalWrite(ledPin7, LOW);
case 3:
digitalWrite(ledPin1, LOW); // number 3
digitalWrite(ledPin2, HIGH);
digitalWrite(ledPin3, LOW);
digitalWrite(ledPin4, HIGH);
digitalWrite(ledPin5, LOW);
digitalWrite(ledPin6, LOW);
digitalWrite(ledPin7, LOW);
case 4:
digitalWrite(ledPin1, HIGH); // number 4
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin3, LOW);
digitalWrite(ledPin4, HIGH);
digitalWrite(ledPin5, LOW);
digitalWrite(ledPin6, LOW);
digitalWrite(ledPin7, HIGH);
case 5:
digitalWrite(ledPin1, LOW); // number 5
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin3, LOW);
digitalWrite(ledPin4, HIGH);
digitalWrite(ledPin5, HIGH);
digitalWrite(ledPin6, LOW);
digitalWrite(ledPin7, LOW);
case 6:
digitalWrite(ledPin1, HIGH); // number 6
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin3, LOW);
digitalWrite(ledPin4, LOW);
digitalWrite(ledPin5, HIGH);
digitalWrite(ledPin6, LOW);
digitalWrite(ledPin7, LOW);
case 7:
digitalWrite(ledPin1, LOW); // number 7
digitalWrite(ledPin2, HIGH);
digitalWrite(ledPin3, HIGH);
digitalWrite(ledPin4, HIGH);
digitalWrite(ledPin5, LOW);
digitalWrite(ledPin6, LOW);
digitalWrite(ledPin7, HIGH);
case 8:
digitalWrite(ledPin1, LOW); // number 8
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin3, LOW);
digitalWrite(ledPin4, LOW);
digitalWrite(ledPin5, LOW);
digitalWrite(ledPin6, LOW);
digitalWrite(ledPin7, LOW);
case 9:
digitalWrite(ledPin1, LOW); // number 9
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin3, LOW);
digitalWrite(ledPin4, HIGH);
digitalWrite(ledPin5, LOW);
digitalWrite(ledPin6, LOW);
digitalWrite(ledPin7, HIGH);
}
}
Now, assuming you've wired up the button correctly, that should work like you want it to.
I suggest you go to http://arduino.cc/en/Tutorial/Button to check.
As for your old code, you were using delay in an odd way i dont think you can do. which would have caused your code to cycle through as fast as the arduino can process it which is far too fast for you to see it counting from 0-9 so it looked like they were all on.
Also, try to use function in your code, it makes it much easier to read and edit.
Hope that solves all your problems now...
EDIT:
Tweaked the code slightly.
Also forgot to say, if you used an interrupt for the button, it would have been SO much easier...