const int LED_COUNT = 5;
const int LED_PINS[LED_COUNT] = {8,9,10,11,12}; // Connect LEDs to these pins
const int blinkDelay = 150; // Time each LED stays on/off during blink
const int stepDelay = 400; // Time between moving to next LED
int x;
int y;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
// Initialize LED pins
for (int j = 0; j< LED_COUNT; j++) {
pinMode(LED_PINS[j], OUTPUT);
}
}
void allOff() {
for (int i = 0; i < LED_COUNT; i++) {
digitalWrite(LED_PINS[i], LOW);
}
}
void allON() {
for (int i = 0; i < LED_COUNT; i++) {
digitalWrite(LED_PINS[i], HIGH);
}
}
void runmode1()
{
// put your main code here, to run repeatedly:
for (int i = 0; i < LED_COUNT; i++) {
allOff();
digitalWrite(LED_PINS[i], HIGH);
delay(x);
}
}
void runmode2() {
// put your main code here, to run repeatedly:
for (int i = LED_COUNT - 1; i >= 0; i--) {
allOff();
digitalWrite(LED_PINS[i], HIGH);
delay(x);
}
}
void runmode3(){
for (int i = 0; i < LED_COUNT; i++) {
allON();
digitalWrite(LED_PINS[i], LOW);
delay(x);
}
}
void runmode4() {
// put your main code here, to run repeatedly:
for (int i = LED_COUNT - 1; i >= 0; i--) {
allON();
digitalWrite(LED_PINS[i], LOW);
delay(x);
}
}
void runmode5(){
allON();
delay(x);
allOff();
delay(x);
}
void runmode6(){
digitalWrite(LED_PINS[0], HIGH);
delay(x);
digitalWrite(LED_PINS[1], HIGH);
delay(x);
digitalWrite(LED_PINS[2], HIGH);
delay(x);
digitalWrite(LED_PINS[3], HIGH);
delay(x);
digitalWrite(LED_PINS[4], HIGH);
delay(x);
allOff();
}
void runmode7(){
allON();
delay(x);
digitalWrite(LED_PINS[4], LOW);
delay(x);
digitalWrite(LED_PINS[3], LOW);
delay(x);
digitalWrite(LED_PINS[2], LOW);
delay(x);
digitalWrite(LED_PINS[1], LOW);
delay(x);
digitalWrite(LED_PINS[0], LOW);
delay(x);
}
void runmode8(){
digitalWrite(LED_PINS[4], HIGH);
digitalWrite(LED_PINS[3], HIGH);
digitalWrite(LED_PINS[2], HIGH);
delay(x);
digitalWrite(LED_PINS[2], LOW);
digitalWrite(LED_PINS[1], LOW);
digitalWrite(LED_PINS[0], LOW);
delay(x);
digitalWrite(LED_PINS[4], LOW);
digitalWrite(LED_PINS[3], LOW);
digitalWrite(LED_PINS[2], LOW);
delay(x);
digitalWrite(LED_PINS[2], HIGH);
digitalWrite(LED_PINS[1], HIGH);
digitalWrite(LED_PINS[0], HIGH);
delay(x);
}
void runmode9(){
allOff();
delay(x);
digitalWrite(LED_PINS[4], HIGH);
digitalWrite(LED_PINS[0], HIGH);
delay(x);
digitalWrite(LED_PINS[1], HIGH);
digitalWrite(LED_PINS[3], HIGH);
delay(x);
digitalWrite(LED_PINS[2], HIGH);
delay(x);
}
void runmode10(){
allOff();
delay(x);
digitalWrite(LED_PINS[2], HIGH);
delay(x);
digitalWrite(LED_PINS[1], HIGH);
digitalWrite(LED_PINS[3], HIGH);
delay(x);
digitalWrite(LED_PINS[4], HIGH);
digitalWrite(LED_PINS[0], HIGH);
delay(x);
}
void animateLED(int ledIndex) {
// Blink the current LED three times
for (int blinkCount = 0; blinkCount < 3; blinkCount++) {
digitalWrite(LED_PINS[ledIndex], HIGH);
delay(blinkDelay);
digitalWrite(LED_PINS[ledIndex], LOW);
delay(blinkDelay);
}
delay(stepDelay); // Pause before moving to next LED
}
void runmode11() {
// Run from left to right
for (int i = 0; i < LED_COUNT; i++) {
animateLED(i);
}
// Run from right to left
for (int i = LED_COUNT - 1; i >= 0; i--) {
animateLED(i);
}
}
void loop() {
x=analogRead(A0);
x=map(x,0,1023,0,1000);
Serial.println(x);
y=analogRead(A1);
y=map(y,0,1023,0,10);
Serial.println(y);
for (int i = 0; i <y; i++){
runmode1();
}
for (int i = 0; i <y; i++){
runmode2();
}
for (int i = 0; i <y; i++){
runmode3();
}
for (int i = 0; i <y; i++){
runmode4();
}
for (int i = 0; i <y; i++){
runmode5();
}
for (int i = 0; i <y; i++){
runmode6();
}
for (int i = 0; i <y; i++){
runmode7();
}
for (int i = 0; i <y; i++){
runmode8();
}
for (int i = 0; i <y; i++){
runmode9();
}
for (int i = 0; i <y; i++){
runmode10();
}
for (int i = 0; i <y; i++){
runmode11();
}
}