Teema 1. -LED dioodid ja RGB LED-

Katse 1 LED

See kood on mõeldud Arduino jaoks. See paneb LED-i vilkuma 1-sekundilise intervalliga.

Funktsioonid:

setup() – Initsialiseerib 13. pinni väljundiks.

loop() – Programmi põhitsükkel, mis lülitab 13. pinni sisse ja välja 1-sekundilise viivitusega.

Katse 2. RGB

Pildil on RGB LED, mida juhib Arduino. Kood lülitab LED-i sisse erinevates värvides ja loob sujuva ülemineku efektide vahel.

Funktsioonid

  • void setup() – initsialiseerib RGB-LED pinnid väljunditena.
  • void loop() – programmi põhitsükkel, kutsub välja funktsioonid mainColors() ja showSpectrum().
  • void mainColors() – lülitab järjekorras erinevad värvid sisse, viibib igal värvil 1 sekundi.
  • void showSpectrum() – muudab järk-järgult RGB-LED värvi, liikudes väärtuste vahemikus 0 kuni 767.
  • void showRGB(int color) – arvutab punase, rohelise ja sinise värvi intensiivsuse, et luua sujuv üleminek toonide vahel.
const int RED_PIN = 11;

const int GREEN_PIN = 9;

const int BLUE_PIN = 10;

int DISPLAY_TIME = 100;  // värvimuutuse kiirus

void setup()

{

  pinMode(RED_PIN, OUTPUT);

  pinMode(GREEN_PIN, OUTPUT);

  pinMode(BLUE_PIN, OUTPUT);

}

void loop()

{

mainColors();

showSpectrum();

}

void mainColors()

{

// Kõik LEDid on välja lülitatud

  digitalWrite(RED_PIN, LOW);

  digitalWrite(GREEN_PIN, LOW);

  digitalWrite(BLUE_PIN, LOW);

 delay(1000);

//Põleb punane

  digitalWrite(RED_PIN, HIGH);

  digitalWrite(GREEN_PIN, LOW);

  digitalWrite(BLUE_PIN, LOW);

  delay(1000);

// Põleb roheline

  digitalWrite(RED_PIN, LOW);

  digitalWrite(GREEN_PIN, HIGH);

  digitalWrite(BLUE_PIN, LOW);

  delay(1000);

// Sinine on sisse lülitatud

  digitalWrite(RED_PIN, LOW);

  digitalWrite(GREEN_PIN, LOW);

  digitalWrite(BLUE_PIN, HIGH);

  delay(1000);

// Kollane.

  digitalWrite(RED_PIN, HIGH);

  digitalWrite(GREEN_PIN, HIGH);

  digitalWrite(BLUE_PIN, LOW);

  delay(1000);

// Lilla

  digitalWrite(RED_PIN, LOW);

  digitalWrite(GREEN_PIN, HIGH);

  digitalWrite(BLUE_PIN, HIGH);

  delay(1000);

//Roosa

  digitalWrite(RED_PIN, HIGH);

  digitalWrite(GREEN_PIN, LOW);

  digitalWrite(BLUE_PIN, HIGH);

  delay(1000);

//Valge ehk kõik on sisse lülitatud

  digitalWrite(RED_PIN, HIGH);

  digitalWrite(GREEN_PIN, HIGH);

  digitalWrite(BLUE_PIN, HIGH);

  delay(1000);

}

// Vikerkaar. 

void showSpectrum()

{

  int x;

  for (x = 0; x < 768; x++)

  {

    showRGB(x);  // 

    delay(10);   // paus 0,001 sek

  }

}

// ShowRGB()  põhivärvid: 

// 0 = punane 

// 255 = roheline

// 511 = sinine

// 767 = jälle punane 

void showRGB(int color)

{

  int redIntensity;

  int greenIntensity;

  int blueIntensity;

  if (color <= 255)                

  {

    redIntensity = 255 - color;    // lülitakse välja punane

    greenIntensity = color;        // lülitakse sisse roheline

    blueIntensity = 0;             // sinine on välja lülitatud

  }

  else if (color <= 511)          

  {

    redIntensity = 0;                     // punane on välja lülitatud

    greenIntensity = 255 - (color - 256); 

    blueIntensity = (color - 256);        

  }

  else if (color >= 512)             

  {

    redIntensity = (color - 512);        

    greenIntensity = 0;                  

    blueIntensity = 255 - (color - 512);  

  }

  analogWrite(RED_PIN, redIntensity); // punase LED´i sujuv ümberlülitamine

  analogWrite(BLUE_PIN, blueIntensity);

  analogWrite(GREEN_PIN, greenIntensity);

}

Minu kood

void fadeLED(int pin) {
  for (int brightness = 0; brightness <= 255; brightness++) {
    analogWrite(pin, brightness); // Увеличиваем яркость
    delay(1000);
  }
  
  for (int brightness = 255; brightness >= 0; brightness--) {
    analogWrite(pin, brightness); // Уменьшаем яркость
    delay(1000);
  }
}

Valgusfoor

LED-id — kasutatakse erinevate valgusfoori signaalide kuvamiseks:

  • Roheline päev (dayGreen) — LED, mis süttib roheliseks päevasel režiimil.
  • Kollane päev (dayYellow) — LED, mis süttib kollaseks päevasel režiimil.
  • Punane päev (dayRed) — LED, mis süttib punaseks päevasel režiimil.
  • Kollane öö (nightYellow) — LED, mis vilgub kollaselt öösel.
  • Roheline jalakäija (pedGreen) — LED, mis süttib roheliseks jalakäijate režiimil.
  • Punane jalakäija (pedRed) — LED, mis süttib punaseks jalakäijate režiimil.

Arduino pinnid — iga LED on ühendatud konkreetse pinni külge Arduino plaadil:

  • Pinnid 8 kuni 13 (kaasa arvatud pinnid 8, 9, 10, 11, 12, 13) kasutatakse LED-ide juhtimiseks.

Arduino plaat — peamine seade, mis täidab programmi. Kood käivitub sellel plaadil, mis juhib LED-ide sisse ja välja lülitamist pinnihindade kaudu.

Kokkuvõttes sisaldavad selle plaadi komponendid:

  • LED-id (erinevate valgusfoori signaalide jaoks)
  • Pinnid Arduino-lt (LED-ide ühendamiseks)
  • Programm (mida täidab Arduino LED-ide juhtimiseks)

Minu kood

// Определяем пины для каждого светодиода
int dayGreen = 13;
int dayYellow = 12;
int dayRed = 11;
int nightYellow = 10;
int pedGreen = 9;
int pedRed = 8;

void setup() {
  // Настраиваем пины как выходы
  pinMode(dayGreen, OUTPUT);
  pinMode(dayYellow, OUTPUT);
  pinMode(dayRed, OUTPUT);
  pinMode(nightYellow, OUTPUT);
  pinMode(pedGreen, OUTPUT);
  pinMode(pedRed, OUTPUT);
}

void loop() {
  // === Дневной режим ===

  // Зелёный свет 5 секунд
  digitalWrite(dayGreen, HIGH);
  delay(5000);

  // Зелёный мигает 2 секунды
  for (int i = 0; i < 4; i++) { // 4 раза по 0.5 сек
    digitalWrite(dayGreen, LOW);
    delay(250);
    digitalWrite(dayGreen, HIGH);
    delay(250);
  }
  digitalWrite(dayGreen, LOW);

  // Жёлтый свет 1 секунда
  digitalWrite(dayYellow, HIGH);
  delay(1000);
  digitalWrite(dayYellow, LOW);

  // Красный 5 секунд
  digitalWrite(dayRed, HIGH);
  delay(5000);

  // Красный мигает 2 секунды
  for (int i = 0; i < 4; i++) {
    digitalWrite(dayRed, LOW);
    delay(250);
    digitalWrite(dayRed, HIGH);
    delay(250);
  }
  digitalWrite(dayRed, LOW);

  // === Ночной режим ===

  for (int i = 0; i < 10; i++) { // 5 секунд по 0.5 сек мигание
    digitalWrite(nightYellow, HIGH);
    delay(250);
    digitalWrite(nightYellow, LOW);
    delay(250);
  }

  // === Пешеходный режим ===

  // Зелёный пешеход 5 сек
  digitalWrite(pedGreen, HIGH);
  delay(5000);

  // Зелёный мигает 2 секунды
  for (int i = 0; i < 4; i++) {
    digitalWrite(pedGreen, LOW);
    delay(250);
    digitalWrite(pedGreen, HIGH);
    delay(250);
  }
  digitalWrite(pedGreen, LOW);

  // Красный пешеход 5 секунд
  digitalWrite(pedRed, HIGH);
  delay(5000);
  digitalWrite(pedRed, LOW);

  // Цикл начинается снова
}

Funktsioonid
pinMode() – Määrab pinni sisendiks või väljundiks.

Näide: pinMode(dayGreen, OUTPUT);

digitalWrite() – Seab pinni signaali taseme (kõrge või madal).

Näide: digitalWrite(dayGreen, HIGH);

delay() – Programmi täitmise viivitus määratud arvu millisekunditega.

Näide: delay(5000);

For-tsükkel (for()) – Korratakse koodiplokki mitu korda.

Arduino Programm

Video
https://drive.google.com/file/d/1hT-PmgA4bP87-axhPaU0mPLrGc8-BnSP/view?usp=sharing

Kuidas tohib elus kasutada

Trafikvalgustus – Seda süsteemi saab kasutada tänaval või ristmikel, et juhtida liiklust erinevates valgustusrežiimides (päevane, öine ja jalakäijate režiim), suurendades liiklusohutust ja reguleerides liiklusvooge vastavalt ajale ja vajadusele.

Jalakäijate ülekäigurajad – Seda süsteemi saab kasutada jalakäijate ülekäiguradadel, et tagada ohutu liikumine ja hoida korda, lülitades erinevad valgusrežiimid, et anda jalakäijatele selge signaal, millal nad saavad üle tee minna.

Öösel töörežiim – Öösel võib kasutada öist vilkumisrežiimi, et säästa energiat ja tagada valgustatud teed või ülekäigurajad, samas kui päevase valgustuse intensiivsus on madalam.

Automatiseeritud liiklusmärkide süsteemid – Võimalik kasutada sarnast süsteemi automatiseeritud liiklusmärkideks, mis annavad õigeaegselt signaale, reguleerides liikluse voogu vastavalt tingimustele või ajale, nagu näiteks hommikune tipptund või õhtune aeg.

Turvavalgustus – Võib kasutada erinevates turvavalgustuse süsteemides, näiteks hoonete ümber, et valgustada piirkondi ja anda õiged valgustussignaalid vastavalt liikumis- ja turvatingimustele.

Automaatne liiklusreguleerimine koolide lähedal – Seda süsteemi saab kasutada koolide läheduses, et tagada laste ohutus, lülitades õige valgusrežiimi vastavalt kooli algus- ja lõpptundidele.