Garland

ХОД РАБОТЫ:
В tinkercad.com составил схему реализующую работу гирлянды в пяти режимах.
Переключение с одного режима на другой происходит с помощью потенциаметра.
Была протестированна работоспособность в tinkercad.
После этого была собрана гирлянда.
Фиолетовый провод был подключен к питанию 5V и к плюсу. Черный провод подключен к GND и к минусу. Зеленый провод с A0 подключен к потенциометру. Сам потенциометр подключен к плюсу и к минусу. Каждый резистр на 330Кл подключен к лампочке. Лампочки подклчены в свои пронумерованные гнезда.
КОМПОНЕНТЫ:
12 LED-светодиодов (красный, желтый, белый, зеленый), 12 резисторов на 330Кл, 29 проводов, 1 потенциометр.
ВОЗМОЖНОСТИ ПРИМЕНЕНИЯ:
Контроль громкости.
На гитарном усилителе. (Громкость, режимы).

Потенциаметр может использоваться, как делитель напряжения.
И также потенциаметр можно использовать на колонках, чтоб изменять их громкость.
Из них можно собирать какие-нибудь рисунки или полностью заполнять ими пронстранство, и также сделать разные режимы и с помощью потенциаметра можно менять режимы и делать какие-то картинки.
КОД:
int sensorPin = 0;
int ledred1 = 13; // Дается знечени красному светодиоду
int ledyellow1 = 12; // Желтый
int ledwhite1 = 11;// Белый
int ledgreen1 = 10; // Синий
int ledred2 = 9;// Красный
int ledyellow2 = 8;// Желтый
int ledwhite2 = 7; // Белый
int ledgreen2 = 6;// Синий
int ledred3 = 5;// Красный
int ledyellow3 = 4;// Желтый
int ledwhite3 = 3; // Белый
int ledgreen3 = 2;// Синий
int sensorValue = 0;
int Value_new;
void red() //режим красных ламп (1 режим гирлянды. Красные лампы включаются по очереди.)
{
digitalWrite(ledred1, HIGH);
delay(300);
digitalWrite(ledred1, LOW);
digitalWrite(ledred2, HIGH);
delay(500);
digitalWrite(ledred2, LOW);
digitalWrite(ledred3, HIGH);
delay(400);
digitalWrite(ledred3, LOW);
}
void green() //режим зеленых ламп (2 режим гирлянды. Все три зеленых ламп моргают)
{
digitalWrite(ledgreen1, HIGH);
digitalWrite(ledgreen2, HIGH);
digitalWrite(ledgreen3, HIGH);
delay(200);
digitalWrite(ledgreen1, LOW);
digitalWrite(ledgreen2, LOW);
digitalWrite(ledgreen3, LOW);
delay(200);
}
void yellow() //режим желтых ламп (3 режим гирлянды. Включается 1 и 3 желтая лампа, погасают и включается 2.)
{
digitalWrite(ledyellow1, HIGH);
digitalWrite(ledyellow3, HIGH);
delay(2000);
digitalWrite(ledyellow1, LOW);
digitalWrite(ledyellow3, LOW);
delay(300);
digitalWrite(ledyellow2, HIGH);
delay(400);
digitalWrite(ledyellow2, LOW);
for (int x=0; x<12; x++){ //цикл для мигания 1 и 3 светодиода. digitalWrite(ledyellow1, HIGH); delay(100); digitalWrite(ledyellow1, LOW); digitalWrite(ledyellow3, HIGH); delay(100); digitalWrite(ledyellow3, LOW); } } void white() //режим белых ламп (4 режим гирлянды. Все три белых ламп моргают.) { digitalWrite(ledwhite1, HIGH); digitalWrite(ledwhite2, HIGH); digitalWrite(ledwhite3, HIGH); delay(5000); digitalWrite(ledwhite1, LOW); digitalWrite(ledwhite2, LOW); digitalWrite(ledwhite3, LOW); delay(100); } void mix() //совместный режим всех ламп (5 режим гирлянды. Все лампы включаются по очереди. (сначала 1) { digitalWrite(ledred1, HIGH); digitalWrite(ledred2, HIGH); digitalWrite(ledred3, HIGH); delay(2000); digitalWrite(ledwhite1, HIGH); digitalWrite(ledwhite2, HIGH); digitalWrite(ledwhite3, HIGH); delay(3000); digitalWrite(ledyellow1, HIGH); digitalWrite(ledyellow2, HIGH); digitalWrite(ledyellow3, HIGH); delay(4000); digitalWrite(ledgreen1, HIGH); digitalWrite(ledgreen2, HIGH); digitalWrite(ledgreen3, HIGH); delay(2000); digitalWrite(ledred1, LOW); digitalWrite(ledred2, LOW); digitalWrite(ledred3, LOW); delay(1000); digitalWrite(ledwhite1, LOW); digitalWrite(ledwhite2, LOW); digitalWrite(ledwhite3, LOW); delay(1000); digitalWrite(ledyellow1, LOW); digitalWrite(ledyellow2, LOW); digitalWrite(ledyellow3, LOW); delay(1000); digitalWrite(ledgreen1, LOW); digitalWrite(ledgreen2, LOW); digitalWrite(ledgreen3, LOW); delay(1000); } void led_on() //режим всех ламп (6 режим гирлянды. Все лампы включаются.) { digitalWrite(ledred1, HIGH); digitalWrite(ledred2, HIGH); digitalWrite(ledred3, HIGH); digitalWrite(ledwhite1, HIGH); digitalWrite(ledwhite2, HIGH); digitalWrite(ledwhite3, HIGH); digitalWrite(ledyellow1, HIGH); digitalWrite(ledyellow2, HIGH); digitalWrite(ledyellow3, HIGH); digitalWrite(ledgreen1, HIGH); digitalWrite(ledgreen2, HIGH); digitalWrite(ledgreen3, HIGH); delay(3000); digitalWrite(ledred1, LOW); digitalWrite(ledred2, LOW); digitalWrite(ledred3, LOW); digitalWrite(ledwhite1, LOW); digitalWrite(ledwhite2, LOW); digitalWrite(ledwhite3, LOW); digitalWrite(ledyellow1, LOW); digitalWrite(ledyellow2, LOW); digitalWrite(ledyellow3, LOW); digitalWrite(ledgreen1, LOW); digitalWrite(ledgreen2, LOW); digitalWrite(ledgreen3, LOW); delay(1000); } void setup() { pinMode(ledred1,OUTPUT); pinMode(ledred2,OUTPUT); pinMode(ledred3,OUTPUT); pinMode(ledgreen1,OUTPUT); pinMode(ledgreen2,OUTPUT); pinMode(ledgreen3,OUTPUT); pinMode(ledyellow1,OUTPUT); pinMode(ledyellow2,OUTPUT); pinMode(ledyellow3,OUTPUT); pinMode(ledwhite1, OUTPUT); pinMode(ledwhite2, OUTPUT); pinMode(ledwhite3, OUTPUT); } void loop() { Value_new = analogRead(sensorPin); //код для потенциометра. С каждым значением, включается свой режим. if (Value_new<150) { red(); } else if(Value_new>=150 && Value_new<=300) { green(); } else if (Value_new>=300 && Value_new<=450) { yellow(); } else if(Value_new>=450 && Value_new<=600) { white(); } else if(Value_new>=600 && Value_new<=750) { mix(); } else if(Value_new>=750 && Value_new<=900)
{
led_on();
}
else
{
digitalWrite(ledred1, LOW);
digitalWrite(ledred2, LOW);
digitalWrite(ledred3, LOW);
digitalWrite(ledgreen1, LOW);
digitalWrite(ledgreen2, LOW);
digitalWrite(ledgreen3, LOW);
}
}