Ampel mit Fußgängerampel

Ardui­no UNO

int ROT = 3;
int GELB = 4;
int GRUEN = 5;
int F_ROT = 6;
int F_GRUEN = 7;

void setup() 
{
  pinMode(ROT, OUTPUT);
  pinMode(GELB, OUTPUT);
  pinMode(GRUEN, OUTPUT);
  pinMode(F_ROT, OUTPUT);
  pinMode(F_GRUEN, OUTPUT);
}

void loop() 
{ 
  digitalWrite(ROT, HIGH);
  digitalWrite(F_ROT, HIGH);

  // 1 Sekunde Sicherheitszone 
  delay(1000);
  
  // Fußgängerampel wird von rot auf grün geschaltet       
  digitalWrite(F_ROT, LOW);
  digitalWrite(F_GRUEN, HIGH);
  delay(3000);

  // Fußgängerampel wird von grün auf rot geschaltet
  // F_GRUEN -> aus, F_ROT -> an
  digitalWrite(F_GRUEN, LOW);
  digitalWrite(F_ROT, HIGH);

  // 1 Sekunde Sicherheitszone, beide Ampeln bleiben rot  
  delay(1000);

  // Fahrbahnampel auf rot-gelb und dann auf grün schalten
  // GELB -> an, 1 Sekunde warten, GELB und ROT -> aus, GRUEN -> an 
  digitalWrite(GELB, HIGH); 
  delay(1000); 
  digitalWrite(ROT, LOW);  
  digitalWrite(GELB, LOW); 
  digitalWrite(GRUEN, HIGH);

  // GRUEN -> 5 Sekunden, GRUEN -> aus, GELB 1 Sekunde an,
  // GELB aus 
  delay(3000);
  digitalWrite(GRUEN, LOW);
  digitalWrite(GELB, HIGH); 
  delay(1000);
  digitalWrite(GELB, LOW);
}

Wemos D1 Mini

int ROT = D5;
int GELB = D6;
int GRUEN = D7;
int F_ROT = D1;
int F_GRUEN = D2;

void setup() 
{
  pinMode(ROT, OUTPUT);
  pinMode(GELB, OUTPUT);
  pinMode(GRUEN, OUTPUT);
  pinMode(F_ROT, OUTPUT);
  pinMode(F_GRUEN, OUTPUT);
}

void loop() 
{ 
  digitalWrite(ROT, HIGH);
  digitalWrite(F_ROT, HIGH);

  // 1 Sekunde Sicherheitszone 
  delay(1000);
  
  // Fußgängerampel wird von rot auf grün geschaltet       
  digitalWrite(F_ROT, LOW);
  digitalWrite(F_GRUEN, HIGH);
  delay(3000);

  // Fußgängerampel wird von grün auf rot geschaltet
  // F_GRUEN -> aus, F_ROT -> an
  digitalWrite(F_GRUEN, LOW);
  digitalWrite(F_ROT, HIGH);

  // 1 Sekunde Sicherheitszone, beide Ampeln bleiben rot  
  delay(1000);

  // Fahrbahnampel auf rot-gelb und dann auf grün schalten
  // GELB -> an, 1 Sekunde warten, GELB und ROT -> aus, GRUEN -> an 
  digitalWrite(GELB, HIGH); 
  delay(1000); 
  digitalWrite(ROT, LOW);  
  digitalWrite(GELB, LOW); 
  digitalWrite(GRUEN, HIGH);

  // GRUEN -> 5 Sekunden, GRUEN -> aus, GELB 1 Sekunde an,
  // GELB aus 
  delay(3000);
  digitalWrite(GRUEN, LOW);
  digitalWrite(GELB, HIGH); 
  delay(1000);
  digitalWrite(GELB, LOW);
}

ESP32-Wroom

int ROT = 26;
int GELB = 27;
int GRUEN = 14;
int F_ROT = 13;
int F_GRUEN = 12;

void setup() 
{
  pinMode(ROT, OUTPUT);
  pinMode(GELB, OUTPUT);
  pinMode(GRUEN, OUTPUT);
  pinMode(F_ROT, OUTPUT);
  pinMode(F_GRUEN, OUTPUT);
}

void loop() 
{ 
  digitalWrite(ROT, HIGH);
  digitalWrite(F_ROT, HIGH);

  // 1 Sekunde Sicherheitszone 
  delay(1000);
  
  // Fußgängerampel wird von rot auf grün geschaltet       
  digitalWrite(F_ROT, LOW);
  digitalWrite(F_GRUEN, HIGH);
  delay(3000);

  // Fußgängerampel wird von grün auf rot geschaltet
  // F_GRUEN -> aus, F_ROT -> an
  digitalWrite(F_GRUEN, LOW);
  digitalWrite(F_ROT, HIGH);

  // 1 Sekunde Sicherheitszone, beide Ampeln bleiben rot  
  delay(1000);

  // Fahrbahnampel auf rot-gelb und dann auf grün schalten
  // GELB -> an, 1 Sekunde warten, GELB und ROT -> aus, GRUEN -> an 
  digitalWrite(GELB, HIGH); 
  delay(1000); 
  digitalWrite(ROT, LOW);  
  digitalWrite(GELB, LOW); 
  digitalWrite(GRUEN, HIGH);

  // GRUEN -> 5 Sekunden, GRUEN -> aus, GELB 1 Sekunde an,
  // GELB aus 
  delay(3000);
  digitalWrite(GRUEN, LOW);
  digitalWrite(GELB, HIGH); 
  delay(1000);
  digitalWrite(GELB, LOW);
}

Letzte Aktualisierung: 6. Dez 2023 @ 10:26