That's excellent news.
Confirming the changes my side were removing the Serial.begin() and these pin assignments
int switchPin = 3; // IC leg 2 (PB3)
int led1Pin = 0; // IC leg 5 (PB0)
int led2Pin = 1; // IC leg 6 (PB1)
int led3Pin = 4; // IC leg 3 (PB4)
Also, here's how it would look modified to use the internal pull-up resistor on the switch (as mentioned earlier). For this circuit you'd not have any additional resistors on the switch circuit, just wire to the switch and from there to ground.
/*
* Night Lite, final version
*/
int switchPin = 3; // IC leg 2 (PB3)
int led1Pin = 0; // IC leg 5 (PB0)
int led2Pin = 1; // IC leg 6 (PB1)
int led3Pin = 4; // IC leg 3 (PB4)
int val; // variable for reading the pin status
int val2; // variable for reading the delayed status
int buttonState; // variable to hold the button state
int lightMode = 0; // What mode is the light in?
void setup() {
pinMode(switchPin, INPUT); // Set the switch pin as input
digitalWrite(switchPin, HIGH); // set internal pull-up resistor
pinMode(led1Pin, OUTPUT);
pinMode(led2Pin, OUTPUT);
pinMode(led3Pin, OUTPUT);
buttonState = digitalRead(switchPin); // read the initial state
}
void loop(){
val = digitalRead(switchPin); // read input value and store it in val
delay(10); // 10 milliseconds is a good amount of time
val2 = digitalRead(switchPin); // read the input again to check for bounces
if (val == val2) { // make sure we got 2 consistant readings!
if (val != buttonState) { // the button state has changed!
if (val == LOW) { // check if the button is pressed
if (lightMode == 0) { // if its off
lightMode = 1; // turn lights on!
}
else {
if (lightMode == 1) { // if its all-on
lightMode = 2; // make it blink!
}
else {
if (lightMode == 2) { // if its blinking
lightMode = 3; // make it wave!
}
else {
if (lightMode == 3) { // if its waving,
lightMode = 4;
}
else{
if (lightMode == 4){
lightMode =0;
} // turn light off!
}
}
}
}
}
buttonState = val; // save the new state in our variable
}
// Now do whatever the lightMode indicates
if (lightMode == 0) { // all-off
digitalWrite(led1Pin, LOW);
digitalWrite(led2Pin, LOW);
digitalWrite(led3Pin, LOW);
}
if (lightMode == 1) { // Blue On
digitalWrite(led1Pin, HIGH);
digitalWrite(led2Pin, LOW);
digitalWrite(led3Pin, LOW);
}
if (lightMode == 2) { // Blue off, Green On
digitalWrite(led1Pin, LOW);
digitalWrite(led2Pin, HIGH);
digitalWrite(led1Pin, LOW);
}
if (lightMode == 3) { // Red On Green Off
digitalWrite(led1Pin, LOW);
digitalWrite(led2Pin, LOW);
digitalWrite(led3Pin, HIGH);
}
if (lightMode == 4) { // Flame
analogWrite(led1Pin, random(120)+135);
analogWrite(led2Pin, random(120)+135);
analogWrite(led3Pin, random(120)+135);
delay(random(100));
}
}
}
Cheers ! Geoff