Mike, you're right, my diagram was labelled wrong. It had been a long day.
Since your posts I have now moved the push buttons to pins 0-4 for a digitalRead and I have moved the switches and resistors around as you suggested. Why is this best practice? The pins now read HIGH until a button is pressed.
I've attached a new diagram in case you'd like to see my new setup.
Thanks Chagrin, here is my sketch. I'm thinking I need to write a function that has the states of each pin passed to it and then decides which LEDs should be turned on. Anyway, here's where I am which obviously doesn't work as I'd like... I had to start somewhere I guess.
// Basic stepping stone LED sketch
//
//
//
#define led1 8 // naming the LED pins
#define led2 9
#define led3 10
#define led4 11
#define led5 12
int trip1 = 0; // variables to store input states
int trip2 = 0;
int trip3 = 0;
int trip4 = 0;
int trip5 = 0;
int timedelay = 0;
void setup() {
Serial.begin(9600);
pinMode(led1, OUTPUT); // leds are OUTPUTs
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(led5, OUTPUT);
}
void loop() {
trip1 = digitalRead(0); // read state from push buttons
trip2 = digitalRead(1);
trip3 = digitalRead(2);
trip4 = digitalRead(3);
trip5 = digitalRead(4);
/*
Serial.print("trip1: ");
Serial.println(trip1, DEC);
Serial.print("trip2: ");
Serial.println(trip2, DEC);
Serial.print("trip3: ");
Serial.println(trip3, DEC);
Serial.print("trip4: ");
Serial.println(trip4, DEC);
Serial.print("trip5: ");
Serial.println(trip5, DEC);
delay(1000);
*/
// when first trip is triggered, illuminate LED on that step AND next step
if(!trip1) {
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
}
// when second trip is triggered, illuminate LED on that step AND next step
if(!trip2) {
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
}
// and so on...
if(!trip3) {
digitalWrite(led1, LOW);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
digitalWrite(led5, LOW);
}
if(!trip4) {
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
digitalWrite(led5, HIGH);
}
if(!trip5) {
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, HIGH);
digitalWrite(led5, HIGH);
}
// reset to original states and turn off all LEDs
if(trip1 && trip2 && trip3 && trip4 && trip5) {
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
}
}
Thanks for your help so far.
Ben