/* *This code is part of an instructable at "". *This code is public domain, you may use it for whatever you would like. *Code by: Adam Berger */ const byte led1 = 2, led2 = 0, led3 = 1, led4 = 4, button = 3; unsigned long pMillis = 0; byte mode = 0; void setup(){ pinMode(led1, OUTPUT); pinMode(led2, OUTPUT); pinMode(led3, OUTPUT); pinMode(led4, OUTPUT); pinMode(button, INPUT); digitalWrite(button, HIGH); } void loop(){ if(digitalRead(button)==LOW){ if(millis()-pMillis>500){ mode++; pMillis=millis(); } } if(mode>7){ mode=0; } switch(mode){ case 0: circle(200); break; case 1: circle(100); break; case 2: blink(200); break; case 3: blink(100); break; case 4: inOut(200); break; case 5: inOut(100); break; case 6: wave(200); break; case 7: wave(100); break; } } void circle(int d){ digitalWrite(led1, LOW); digitalWrite(led2, LOW); digitalWrite(led3, LOW); digitalWrite(led4, LOW); digitalWrite(led1, HIGH); if(digitalRead(button)==LOW) return; delay(d); digitalWrite(led1, LOW); digitalWrite(led2, HIGH); if(digitalRead(button)==LOW) return; delay(d); digitalWrite(led2, LOW); digitalWrite(led3, HIGH); if(digitalRead(button)==LOW) return; delay(d); digitalWrite(led3, LOW); digitalWrite(led4, HIGH); if(digitalRead(button)==LOW) return; delay(d); digitalWrite(led4, LOW); } void blink(int d){ digitalWrite(led1, HIGH); digitalWrite(led2, HIGH); digitalWrite(led3, HIGH); digitalWrite(led4, HIGH); if(digitalRead(button)==LOW) return; delay(d); digitalWrite(led1, LOW); digitalWrite(led2, LOW); digitalWrite(led3, LOW); digitalWrite(led4, LOW); if(digitalRead(button)==LOW) return; delay(d); } void inOut(int d){ digitalWrite(led1, LOW); digitalWrite(led2, LOW); digitalWrite(led3, LOW); digitalWrite(led4, LOW); digitalWrite(led2, HIGH); digitalWrite(led3, HIGH); if(digitalRead(button)==LOW) return; delay(d); digitalWrite(led2, LOW); digitalWrite(led3, LOW); digitalWrite(led1, HIGH); digitalWrite(led4, HIGH); if(digitalRead(button)==LOW) return; delay(d); digitalWrite(led1, LOW); digitalWrite(led4, LOW); if(digitalRead(button)==LOW) return; delay(d); } void wave(int d){ digitalWrite(led1, LOW); digitalWrite(led2, LOW); digitalWrite(led3, LOW); digitalWrite(led4, LOW); digitalWrite(led1, HIGH); if(digitalRead(button)==LOW) return; delay(d); digitalWrite(led1, LOW); digitalWrite(led2, HIGH); if(digitalRead(button)==LOW) return; delay(d); digitalWrite(led2, LOW); digitalWrite(led3, HIGH); if(digitalRead(button)==LOW) return; delay(d); digitalWrite(led3, LOW); digitalWrite(led4, HIGH); if(digitalRead(button)==LOW) return; delay(d); digitalWrite(led4, LOW); digitalWrite(led3, HIGH); if(digitalRead(button)==LOW) return; delay(d); digitalWrite(led3, LOW); digitalWrite(led2, HIGH); if(digitalRead(button)==LOW) return; delay(d); digitalWrite(led2, LOW); }