Garland

Герлянда

Компоненты

Компоненты

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

Демонстрация опыта

https://drive.google.com/file/d/1qKeBoPW7B6a2j7NjDPyzMd52VUs5kQpZ

Принципы работы герлянды

Режимы

Всего есть шесть режимов работы гирлянды.

  1. Начинают гореть все LED одного цвета (зелёные, жёлтые, красные).
  2. Аналогично режиму №1 только медленнее.
  3. Горит зелёный, и моргает жёлтый и красные LED.
  4. Горят цепочкой по 2 LED.
  5. Горят цепочкой по 3 LED.
  6. Горят цепочкой по 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

прин

Scroll to Top