Skip to content
Avaleht » Ülesanne «Valgusfoor»

Ülesanne “Valgusfoor”

Светофор

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

Обычный светофор как для машин, так и для пешеходов.
Имеет 2 режима(дневной/ночной).

Дневной – если едут машины, значит у них зеленый цвет, а у пешеходов красный. НО, как только у машин цвет светофора становится красным, то значит, что машины дальше ехать не могут, а у пешеходов скоро станет зеленый цвет светофора.

Ночной – самый простенький режим, где светофор пешеходов полностью отключен, а для машин он постоянно мигает желтым цветом.

Список компонентов
  • Плата “Arduino UNO”.
  • Макет
  • 7 провода.
  • 5 резистора.
  • 5 LED светодиода.
Код
const int LED_RED = 13;
const int LED_YELLOW = 12;
const int LED_GREEN = 11;

const int LED_RED2 = 10;
const int LED_GREEN2 = 9;

void setup() {
  pinMode(LED_RED, OUTPUT);
  pinMode(LED_YELLOW, OUTPUT);
  pinMode(LED_GREEN, OUTPUT);
  pinMode(LED_RED2, OUTPUT);
  pinMode(LED_GREEN2, OUTPUT);
}

void loop() {
  day();
  night();
}

void day() {
  int x = 0;
  while (x < 3) {
    
    digitalWrite(LED_RED, LOW);
    digitalWrite(LED_YELLOW, LOW);
    digitalWrite(LED_GREEN, HIGH);
    digitalWrite(LED_RED2, HIGH);
    digitalWrite(LED_GREEN2, LOW);
    
    
    delay(5000);


    
    for (int i = 0; i < 3; i++) {
      
      digitalWrite(LED_GREEN, LOW);
      delay(500);
      digitalWrite(LED_GREEN, HIGH);
      delay(500);
    }

    digitalWrite(LED_GREEN, LOW);
    digitalWrite(LED_YELLOW, HIGH);
    
    delay(3000);
    
    digitalWrite(LED_RED, HIGH);
    digitalWrite(LED_YELLOW, LOW);

    delay(3000);
    
    digitalWrite(LED_RED2, LOW);
    digitalWrite(LED_GREEN2, HIGH);
    
    delay(5000);
    
    for (int i = 0; i < 3; i++) {
      
      digitalWrite(LED_GREEN2, LOW);
      delay(500);
      digitalWrite(LED_GREEN2, HIGH);
      delay(500);
    }
    
    digitalWrite(LED_GREEN2, LOW);
    digitalWrite(LED_RED2, HIGH);
    
    delay(3000);
    
    digitalWrite(LED_YELLOW, HIGH);
    
    delay(1000);
    

    x++; 
  }
}

void night() {
  
 
  digitalWrite(LED_RED, LOW);
  digitalWrite(LED_YELLOW, HIGH);
  digitalWrite(LED_GREEN, LOW);
  digitalWrite(LED_RED2, LOW);
  digitalWrite(LED_GREEN2, LOW);
   
  for (int i = 0; i < 10; i++) {
      
      digitalWrite(LED_YELLOW, LOW);
      delay(500);
      digitalWrite(LED_YELLOW, HIGH);
      delay(500);
    }
    
  
}

Конструкция в Tinkercad

Отчеты

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

Дневной режим

Ночной режим