1.Selles koodis juhitakse kolme valgusfoori auto liiklusele ja kahte valgusfoori jalakäijatele. Iga valgusfooril on oma pin’id (valgusdioodi juhtimiseks), ja kogu süsteem toimib tsükliliselt, kus iga faas kestab teatud aja jooksul.

Üldiselt töötab see järgmiselt:

  • Esialgu on kõik valgusfoorid välja lülitatud (punane tuli).
  • Seejärel lülitatakse sisse punane tuli auto liiklusele ja roheline tuli jalakäijatele.
  • Pärast mõnda aega lülitub kollane tuli sisse mõlemale suunale (ettevaatust!).
  • Seejärel lülitatakse roheline tuli auto liiklusele ja punane tuli jalakäijatele.
  • Seejärel lülitatakse kollane tuli uuesti sisse mõlemale suunale.

See tsükkel kordub mitu korda, nagu on määratud DISPLAY_TIME väärtusega. See on lihtne näide valgusfooride juhtimisest, mis reguleerivad auto- ja jalakäijate liiklust.

1.1. Skeem ja kod valgusfoor.

1.2.

const int RED_PIN = 11;
const int YELLOW_PIN = 8;
const int GREEN_PIN = 9;
const int GREEN2_PIN = 7;
const int RED2_PIN = 6;

int DISPLAY_TIME = 1000;


void setup()
{
  pinMode(RED_PIN, OUTPUT);
  pinMode(YELLOW_PIN, OUTPUT);
  pinMode(GREEN_PIN, OUTPUT);
  pinMode(RED2_PIN, OUTPUT);
  pinMode(GREEN2_PIN, OUTPUT);
}

void loop()
{
  for (int i = 0; i < 6; i++) {
    paevVarv();
  }
 
  for (int i = 0; i < 6; i++) {
    digitalWrite(YELLOW_PIN, HIGH);
    delay(DISPLAY_TIME); 
    digitalWrite(YELLOW_PIN, LOW);
    delay(DISPLAY_TIME);
  }
}

void paevVarv()
{
  
  digitalWrite(RED_PIN, LOW);
  digitalWrite(GREEN_PIN, LOW);
  digitalWrite(YELLOW_PIN, LOW);
  digitalWrite(RED2_PIN, LOW);
  digitalWrite(GREEN2_PIN, LOW);
  delay(DISPLAY_TIME);
 
  
  digitalWrite(RED_PIN, HIGH);
  digitalWrite(GREEN_PIN, LOW);
  digitalWrite(YELLOW_PIN, LOW);
  digitalWrite(RED2_PIN, LOW);
  digitalWrite(GREEN2_PIN, HIGH);
  delay(1000);
 
  
  digitalWrite(RED_PIN, LOW);
  digitalWrite(GREEN_PIN, LOW);
  digitalWrite(YELLOW_PIN, HIGH);
  digitalWrite(RED2_PIN, LOW);
  digitalWrite(GREEN2_PIN, LOW);
  delay(1000);
 
  
  digitalWrite(RED_PIN, LOW);
  digitalWrite(GREEN_PIN, HIGH);
  digitalWrite(YELLOW_PIN, LOW);
  digitalWrite(RED2_PIN, HIGH);
  digitalWrite(GREEN2_PIN, LOW);
  delay(1000);
 
  
  digitalWrite(RED_PIN, LOW);
  digitalWrite(GREEN_PIN, LOW);
  digitalWrite(YELLOW_PIN, HIGH);
  digitalWrite(RED2_PIN, LOW);
  digitalWrite(GREEN2_PIN, LOW);
  delay(1000);
}

1.3. Video töötatava valgusfoorist: 09.05.23 11:26

2. Eelmisest tunnist tööd: 29.08.23

  1. Alguses on määratud kolm pin’i punase, rohelise ja sinise LED-i jaoks ning DISPLAY_TIME muutuja, mis kontrollib, kui kiiresti värvid vahelduvad, on seatud 100 millisekundile.
  2. setup() funktsioonis määratakse need kolm pin’i väljundiks, et saaksime neid juhtida.
  3. loop() funktsioonis käivitatakse kaks funktsiooni: mainColors() ja showSpectrum().
  4. mainColors() funktsioon vahetab erinevaid põhivärve (punane, roheline, sinine, kollane, jne) ning iga värvi kuvamise vahel on paus delay() abil.
  5. showSpectrum() funktsioon loob vikerkaare efekti, muutes järjestikku värve punasest roheliseni ja sinisest tagasi punasesse.
  6. showRGB() funktsioon määrab iga LED-i (punane, roheline, sinine) intensiivsuse vastavalt praegusele värvile, et luua soovitud värviefekt.

2.1. juhitakse digitaalset pin’i 13, lülitades selle sisse (kõrgele) ja välja (madalale) vaheldumisi iga sekundi järel