Robootika: Report – Valgusfoor

Понадобится:

  • х5 LED-лампа (цвета: х2 красный, жёлтый, х2 зелёный)
  • х5 Резистор
  • х11 Провод

Готовая схема:

Видео:

Код:

const int carRedPin = 13;
const int carYellowPin = 12;
const int carGreenPin = 11;
const int pedRedPin = 10;
const int pedGreenPin = 9;
 
void setup() {
  pinMode(carRedPin, OUTPUT);
  pinMode(carYellowPin, OUTPUT);
  pinMode(carGreenPin, OUTPUT);
  pinMode(pedRedPin, OUTPUT);
  pinMode(pedGreenPin, OUTPUT);
}
 
void loop() {
  standardTrafficLightCycle();
  delay(1000);
  blinkYellowMode();
  delay(1000);
}
 

void standardTrafficLightCycle() {
  digitalWrite(carRedPin, HIGH);
  digitalWrite(carYellowPin, LOW);
  digitalWrite(carGreenPin, LOW);
  digitalWrite(pedRedPin, LOW);
  digitalWrite(pedGreenPin, HIGH);
  delay(5000);
 
  digitalWrite(carRedPin, HIGH);
  digitalWrite(carYellowPin, HIGH);
  digitalWrite(carGreenPin, LOW);
  digitalWrite(pedRedPin, HIGH);
  digitalWrite(pedGreenPin, LOW);
  delay(2000);
 
  digitalWrite(carRedPin, LOW);
  digitalWrite(carYellowPin, LOW);
  digitalWrite(carGreenPin, HIGH);
  digitalWrite(pedRedPin, HIGH);
  digitalWrite(pedGreenPin, LOW);
  delay(5500);
 
  digitalWrite(carRedPin, LOW);
  digitalWrite(carYellowPin, HIGH);
  digitalWrite(carGreenPin, LOW);
  digitalWrite(pedRedPin, HIGH);
  digitalWrite(pedGreenPin, LOW);
  delay(2500);
}

void blinkYellowMode() {
  for (int i = 0; i < 6; i++) { 
    digitalWrite(carRedPin, LOW);
    digitalWrite(carYellowPin, HIGH);
    digitalWrite(carGreenPin, LOW);
    digitalWrite(pedRedPin, LOW);
    digitalWrite(pedGreenPin, LOW);
    delay(500);
 
    digitalWrite(carYellowPin, LOW);
    delay(500);
  }
}