Skip to content
Avaleht » Ülesanne «Valguskett»

Ülesanne “Valguskett”

Гирлянда

Описание работы

Обычная гирлянда, в которой состоят несколько светодиодов, и имеет разные режимы при использовании потенциометра.

Список компонентов
  • Плата “Arduino UNO”.
  • Макет.
  • 1 потенциометр.
  • 14 провода.
  • 9 резистора.
  • 9 LED светодиода.
Код
int sensorPin =0;

int ledred1=13;
int ledblue1=12;
int ledgreen1=11;
int ledred2=10;
int ledblue2=9;
int ledgreen2=8;
int ledred3=7;
int ledblue3=6;
int ledgreen3=5;

int sensorValue = 0;
int Value_new;

void setup()
{
  pinMode(ledred1, OUTPUT);
  pinMode(ledblue1, OUTPUT);
  pinMode(ledgreen1, OUTPUT);
  pinMode(ledred2, OUTPUT);
  pinMode(ledblue2, OUTPUT);
  pinMode(ledgreen2, OUTPUT);
  pinMode(ledred3, OUTPUT);
  pinMode(ledblue3, OUTPUT);
  pinMode(ledgreen3, OUTPUT);
}

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(ledblue1, HIGH);
  digitalWrite(ledblue2, HIGH);
  digitalWrite(ledblue3, HIGH);
  delay(200);
  digitalWrite(ledblue1, LOW);
  digitalWrite(ledblue2, LOW);
  digitalWrite(ledblue3, 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 blink()
{
  digitalWrite(ledred1, HIGH);
  digitalWrite(ledred2, HIGH);
  digitalWrite(ledred3, HIGH);
  digitalWrite(ledblue1, HIGH);
  digitalWrite(ledblue2, HIGH);
  digitalWrite(ledblue3, HIGH);
  digitalWrite(ledgreen1, HIGH);
  digitalWrite(ledgreen2, HIGH);
  digitalWrite(ledgreen3, HIGH);
  delay(500);
  digitalWrite(ledred1, LOW);
  digitalWrite(ledred2, LOW);
  digitalWrite(ledred3, LOW);
  digitalWrite(ledblue1, LOW);
  digitalWrite(ledblue2, LOW);
  digitalWrite(ledblue3, LOW);
  digitalWrite(ledgreen1, LOW);
  digitalWrite(ledgreen2, LOW);
  digitalWrite(ledgreen3, LOW);
  delay(500);
}

void blink2()
{
  digitalWrite(ledred1, HIGH);
  delay(200);
  digitalWrite(ledred2, HIGH);
  delay(200);
  digitalWrite(ledred3, HIGH);
  delay(200);
  digitalWrite(ledred1, LOW);
  digitalWrite(ledblue1, HIGH);
  delay(200);
  digitalWrite(ledblue2, HIGH);
  digitalWrite(ledred2, LOW);
  delay(200);
  digitalWrite(ledblue3, HIGH);
  digitalWrite(ledred3, LOW);
  delay(200);
  digitalWrite(ledgreen1, HIGH);
  digitalWrite(ledblue1, LOW);
  delay(200);
  digitalWrite(ledgreen2, HIGH);
  digitalWrite(ledblue2, LOW);
  delay(200);
  digitalWrite(ledgreen3, HIGH);
  digitalWrite(ledblue3, LOW);
  delay(200);
  digitalWrite(ledgreen1, LOW);
  delay(200);
  digitalWrite(ledgreen2, LOW);
  delay(200);
  digitalWrite(ledgreen3, LOW);
  delay(300);
}

void randomBlink()
{
  int randomLED = random(1, 10);
  switch (randomLED)
  {
  case 1:
    digitalWrite(ledred1, HIGH);
    delay(random(100, 500));
    digitalWrite(ledred1, LOW);
    break;
  case 2:
    digitalWrite(ledblue1, HIGH);
    delay(random(100, 500));
    digitalWrite(ledblue1, LOW);
    break;
  case 3:
    digitalWrite(ledgreen1, HIGH);
    delay(random(100, 500));
    digitalWrite(ledgreen1, LOW);
    break;
  case 4:
    digitalWrite(ledred2, HIGH);
    delay(random(100, 500));
    digitalWrite(ledred2, LOW);
    break;
  case 5:
    digitalWrite(ledblue2, HIGH);
    delay(random(100, 500));
    digitalWrite(ledblue2, LOW);
    break;
  case 6:
    digitalWrite(ledgreen2, HIGH);
    delay(random(100, 500));
    digitalWrite(ledgreen2, LOW);
    break;
  case 7:
    digitalWrite(ledred3, HIGH);
    delay(random(100, 500));
    digitalWrite(ledred3, LOW);
    break;
  case 8:
    digitalWrite(ledblue3, HIGH);
    delay(random(100, 500));
    digitalWrite(ledblue3, LOW);
    break;
  case 9:
    digitalWrite(ledgreen3, HIGH);
    delay(random(100, 500));
    digitalWrite(ledgreen3, LOW);
    break;
  }
}
//

void loop()
{
  Value_new = analogRead(sensorPin);
  
  Value_new = map(Value_new,0,1023,1,6);
  if (Value_new==2)
  {
    red();
  }
  else if(Value_new==3)
  {
    blue();
  }
  else if(Value_new==4)
  {
    green();
  }
  else if(Value_new==5)
  {
    blink();
  }
  else if(Value_new==6)
  {
    blink2();
  }
  else
  {
    randomBlink();
  }
  /*
  else
  {
    digitalWrite(ledred1, LOW);
    digitalWrite(ledred2, LOW);
    digitalWrite(ledred3, LOW);
    digitalWrite(ledblue1, LOW);
    digitalWrite(ledblue2, LOW);
    digitalWrite(ledblue3, LOW);
    digitalWrite(ledgreen1, LOW);
    digitalWrite(ledgreen2, LOW);
    digitalWrite(ledgreen3, LOW);
  }
  */
}
Конструкция в Tinkercad

Отчеты

Конструкция в реальности
Видеоотчеты

добавляются