Герлянда
Компоненты
Компоненты
- 9x LED
- 3x зелёный LED
- 3x жёлтый LED
- 3xкрасный LED
- 9x резисторов на 220 Ом
- 1х потенциометр
- 14х проводов
- 1х Arduino Uno и USB 2.0 Type-B кабель

Демонстрация опыта
https://drive.google.com/file/d/1qKeBoPW7B6a2j7NjDPyzMd52VUs5kQpZ
Принципы работы герлянды
Режимы
Всего есть шесть режимов работы гирлянды.
- Начинают гореть все LED одного цвета (зелёные, жёлтые, красные).
- Аналогично режиму №1 только медленнее.
- Горит зелёный, и моргает жёлтый и красные LED.
- Горят цепочкой по 2 LED.
- Горят цепочкой по 3 LED.
- Горят цепочкой по 1 LED.
Код
int sensorPin = 0;
const int ledred1 = 13; //red
const int ledyellow1 = 12; //blue
const int ledgreen1 = 11;//green
const int ledred2 = 10;//red
const int ledyellow2 = 9;//blue
const int ledgreen2 = 8;//green
const int ledred3 = 7;//red
const int ledyellow3 = 6;//blue
const int ledgreen3 = 5;//green
int sensorValue = 0;
int Value_new;
void red()
{
digitalWrite(ledred1, HIGH);
digitalWrite(ledred2, HIGH);
digitalWrite(ledred3, HIGH);
delay(100);
digitalWrite(ledred1, LOW);
digitalWrite(ledred2, LOW);
digitalWrite(ledred3, LOW);
delay(100);
}
void blue()
{
digitalWrite(ledyellow1, HIGH);
digitalWrite(ledyellow2, HIGH);
digitalWrite(ledyellow3, HIGH);
delay(200);
digitalWrite(ledyellow1, LOW);
digitalWrite(ledyellow2, LOW);
digitalWrite(ledyellow3, LOW);
delay(200);
}
void green()
{
digitalWrite(ledgreen1, HIGH);
digitalWrite(ledgreen2, HIGH);
digitalWrite(ledgreen3, HIGH);
delay(100);
digitalWrite(ledgreen1, LOW);
digitalWrite(ledgreen2, LOW);
digitalWrite(ledgreen3, LOW);
delay(200);
}
void threecolor()
{
red();
blue();
green();
blue();
}
void threecolorslow()
{
digitalWrite(ledred1, HIGH);
digitalWrite(ledred2, HIGH);
digitalWrite(ledred3, HIGH);
delay(300);
digitalWrite(ledred1, LOW);
digitalWrite(ledred2, LOW);
digitalWrite(ledred3, LOW);
delay(300);
digitalWrite(ledyellow1, HIGH);
digitalWrite(ledyellow2, HIGH);
digitalWrite(ledyellow3, HIGH);
delay(600);
digitalWrite(ledyellow1, LOW);
digitalWrite(ledyellow2, LOW);
digitalWrite(ledyellow3, LOW);
delay(600);
digitalWrite(ledgreen1, HIGH);
digitalWrite(ledgreen2, HIGH);
digitalWrite(ledgreen3, HIGH);
delay(300);
digitalWrite(ledgreen1, LOW);
digitalWrite(ledgreen2, LOW);
digitalWrite(ledgreen3, LOW);
delay(600);
}
void twocolor()
{
digitalWrite(ledred1, HIGH);
digitalWrite(ledred2, HIGH);
digitalWrite(ledred3, HIGH);
digitalWrite(ledgreen1, HIGH);
digitalWrite(ledgreen2, HIGH);
digitalWrite(ledgreen3, HIGH);
delay(300);
digitalWrite(ledyellow1, HIGH);
digitalWrite(ledyellow2, HIGH);
digitalWrite(ledyellow3, HIGH);
digitalWrite(ledred1, LOW);
digitalWrite(ledred2, LOW);
digitalWrite(ledred3, LOW);
delay(300);
digitalWrite(ledgreen1, LOW);
digitalWrite(ledgreen2, LOW);
digitalWrite(ledgreen3, LOW);
digitalWrite(ledyellow1, LOW);
digitalWrite(ledyellow2, LOW);
digitalWrite(ledyellow3, LOW);
delay(400);
}
void sortedcolors()
{
digitalWrite(ledred1, HIGH);
digitalWrite(ledgreen1, HIGH);
digitalWrite(ledyellow1, HIGH);
delay(200);
digitalWrite(ledred1, LOW);
digitalWrite(ledred2, HIGH);
delay(200);
digitalWrite(ledgreen1, LOW);
digitalWrite(ledgreen2, HIGH);
delay(200);
digitalWrite(ledyellow1, LOW);
digitalWrite(ledyellow2, HIGH);
delay(200);
digitalWrite(ledred2, LOW);
digitalWrite(ledred3, HIGH);
delay(200);
digitalWrite(ledyellow2, LOW);
digitalWrite(ledyellow3, HIGH);
delay(200);
digitalWrite(ledgreen2, LOW);
digitalWrite(ledgreen3, HIGH);
delay(200);
digitalWrite(ledyellow3, LOW);
digitalWrite(ledgreen3, LOW);
digitalWrite(ledred3, LOW);
delay(200);
}
void threecolorsone(){
digitalWrite(ledred1, HIGH);
digitalWrite(ledgreen1, HIGH);
digitalWrite(ledyellow1, HIGH);
delay(200);
digitalWrite(ledred2, HIGH);
digitalWrite(ledgreen2, HIGH);
digitalWrite(ledyellow2, HIGH);
delay(200);
digitalWrite(ledred3, HIGH);
digitalWrite(ledgreen3, HIGH);
digitalWrite(ledyellow3, HIGH);
delay(200);
digitalWrite(ledred1, LOW);
digitalWrite(ledgreen1, LOW);
digitalWrite(ledyellow1, LOW);
delay(200);
digitalWrite(ledred2, LOW);
digitalWrite(ledgreen2, LOW);
digitalWrite(ledyellow2, LOW);
delay(200);
digitalWrite(ledred3, LOW);
digitalWrite(ledgreen3, LOW);
digitalWrite(ledyellow3, LOW);
delay(200);
}
void lightchain()
{
digitalWrite(ledred1, HIGH);
delay(200);
digitalWrite(ledred1, LOW);
digitalWrite(ledyellow1, HIGH);
delay(200);
digitalWrite(ledyellow1, LOW);
digitalWrite(ledgreen1, HIGH);
delay(200);
digitalWrite(ledgreen1, LOW);
digitalWrite(ledred2, HIGH);
delay(200);
digitalWrite(ledred2, LOW);
digitalWrite(ledyellow2, HIGH);
delay(200);
digitalWrite(ledyellow2, LOW);
digitalWrite(ledgreen2, HIGH);
delay(200);
digitalWrite(ledgreen2, LOW);
digitalWrite(ledred3, HIGH);
delay(200);
digitalWrite(ledred3, LOW);
digitalWrite(ledyellow3, HIGH);
delay(200);
digitalWrite(ledyellow3, LOW);
digitalWrite(ledgreen3, HIGH);
delay(200);
digitalWrite(ledgreen3, LOW);
}
void setup()
{
pinMode(ledred1,OUTPUT);
pinMode(ledred2,OUTPUT);
pinMode(ledred3,OUTPUT);
pinMode(ledyellow1,OUTPUT);
pinMode(ledyellow2,OUTPUT);
pinMode(ledyellow3,OUTPUT);
pinMode(ledgreen1,OUTPUT);
pinMode(ledgreen2,OUTPUT);
pinMode(ledgreen3,OUTPUT);
Serial.begin(9600);
}
void loop()
{
Value_new = analogRead(sensorPin);
Value_new=map(Value_new,0,1023,0,6);
Serial.println(Value_new);
if (Value_new == 1)
{
threecolor();
}
else if(Value_new == 2)
{
threecolorslow();
}
else if (Value_new == 3)
{
twocolor();
}
else if (Value_new == 4)
{
sortedcolors();
}
else if (Value_new == 5)
{
threecolorsone();
}
else if (Value_new == 6)
{
lightchain();
}
else
{
digitalWrite(ledred1, LOW);
digitalWrite(ledred2, LOW);
digitalWrite(ledred3, LOW);
digitalWrite(ledyellow1, LOW);
digitalWrite(ledyellow2, LOW);
digitalWrite(ledyellow3, LOW);
}
}
Код с коментариями ссылка на тинкеркард
https://www.tinkercad.com/things/0LlYRaQh1nD-powerful-krunk/editel?sharecode=2sx8N5a1KKzKmb9PyYNAj1YM6ojwxf7elwdHhgdmXZI
прин