Сборка гирлянды

int ledPin1 = 13;
int ledPin2 = 12;
int ledPin3 = 11;
int ledPin4 = 10;
int ledPin5 = 9;

int sensorValue = 0; 
int sensorPin = A0;

void setup() {       
  pinMode(ledPin1, OUTPUT);  
  pinMode(ledPin2, OUTPUT);
  pinMode(ledPin3, OUTPUT);
  pinMode(ledPin4, OUTPUT);
  pinMode(ledPin5, OUTPUT);

  Serial.begin(9600);
  randomSeed(analogRead(A1)); // Инициализация генератора случайных чисел
}

// 1. Все светодиоды мигают одновременно
void mode1() {
  for (int i = 0; i < 5; i++) {
    digitalWrite(ledPin1, HIGH);
    digitalWrite(ledPin2, HIGH);
    digitalWrite(ledPin3, HIGH);
    digitalWrite(ledPin4, HIGH);
    digitalWrite(ledPin5, HIGH);
    delay(200);
    digitalWrite(ledPin1, LOW);
    digitalWrite(ledPin2, LOW);
    digitalWrite(ledPin3, LOW);
    digitalWrite(ledPin4, LOW);
    digitalWrite(ledPin5, LOW);
    delay(200);
  }
}

// 2. Светодиоды по одному
void mode2() {
  int pins[] = {ledPin1, ledPin2, ledPin3, ledPin4, ledPin5};
  for (int i = 0; i < 5; i++) {
    digitalWrite(pins[i], HIGH);
    delay(200);
    digitalWrite(pins[i], LOW);
  }
}

// 3. "Цветной" режим
void mode3() {
  digitalWrite(ledPin1, HIGH); digitalWrite(ledPin4, HIGH); 
  delay(200);
  digitalWrite(ledPin1, LOW); digitalWrite(ledPin4, LOW);
  
  digitalWrite(ledPin2, HIGH); 
  delay(200);
  digitalWrite(ledPin2, LOW);

  digitalWrite(ledPin3, HIGH); digitalWrite(ledPin5, HIGH); 
  delay(200);
  digitalWrite(ledPin3, LOW); digitalWrite(ledPin5, LOW);
}

// 4. Случайный режим 
void mode4() {
  int pins[] = {ledPin1, ledPin2, ledPin3, ledPin4, ledPin5};
  for (int i = 0; i < 10; i++) {
    int randPin = pins[random(0, 5)];
    digitalWrite(randPin, HIGH);
    delay(random(100, 300));
    digitalWrite(randPin, LOW);
  }
}

// 5. Работают все
void mode5() {
  int pins[] = {ledPin1, ledPin2, ledPin3, ledPin4, ledPin5};
  for (int i = 0; i < 5; i++) {
    digitalWrite(pins[i], HIGH);
    delay(150);
    digitalWrite(pins[i], LOW);
  }
  for (int i = 3; i > 0; i--) {  
    digitalWrite(pins[i], HIGH);
    delay(150);
    digitalWrite(pins[i], LOW);
  }
}

void loop() {
  int Value_new = analogRead(sensorPin);
  
  Value_new = map(Value_new, 0, 1023, 1, 6);
  Serial.println(Value_new); // Для отладки

  if (Value_new == 2) {
    mode1();
  }
  else if (Value_new == 3) {
    mode2();
  }
  else if (Value_new == 4) {
    mode3();
  }
  else if (Value_new == 5) {
    mode4();
  }
  else if (Value_new == 6) {
    mode5();
  }
  else {
    digitalWrite(ledPin1, LOW);
    digitalWrite(ledPin2, LOW);
    digitalWrite(ledPin3, LOW);
    digitalWrite(ledPin4, LOW);
    digitalWrite(ledPin5, LOW);
  }
}

Используеться :

  • 5 ламп
  • 5 резистор
  • потенциометр

На потенуциометре пишется режим рабоы и деапозон, он регулирует какой режим должен работать