Teema 1. -LED dioodid ja RGB LED-

Katse 1.1 LED

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

Функции:

setup() – Инициализирует 13-й пин как выходной.

loop() – Основной цикл программы, который включает и выключает 13-й пин с задержкой в 1 секунду.

Katse 1.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 koodist ja nende kirjeldus:

void setup() – initsialiseerib RGB-LEDi pordid väljunditeks.

void loop() – programmi põhitsükkel, kutsub esile funktsioonid mainColors() ja showSpectrum().

void mainColors() – lülitab järjestikku erinevad värvid, viibides igal värvil 1 sekundi.

Delay() – viivitus

void showSpectrum() – muudab sujuvalt RGB-LEDi värvi, liikumiseks väärtuste vahel 0 ja 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);

}

Ülesanne:Valgusfoor

Töö kirjeldus
Valgusfoori töö kahe režiimiga. Tavarežiim ja öörežiim.

Kasutatud komponenid:
Arduino UNO plaat (1tk)
Arendusplaat (1tk)
Juhtmed (6tk)
Takisti (3tk, 1kOm)
LED (5tk: 2 punane, 2 roheline, 1 kollane)

// Объявляем пины для светодиодов
const int RED = 11;     // Красный сигнал для автомобилей
const int YELLOW = 10;  // Желтый сигнал для автомобилей
const int GREEN = 9;    // Зеленый сигнал для автомобилей
const int GREEN1 = 5;   // Зеленый сигнал для пешеходов
const int RED1 = 6;     // Красный сигнал для пешеходов
 
void setup()
{
  // Устанавливаем пины как выходы
  pinMode(RED, OUTPUT);
  pinMode(GREEN, OUTPUT);
  pinMode(YELLOW, OUTPUT);
  pinMode(RED1, OUTPUT);
  pinMode(GREEN1, OUTPUT);
}
 
void loop()
{
  // Первый цикл — обычный дневной режим светофора
  for (int i = 0; i < 4; i++)
  {
    // Этап 1: Машинам — красный, пешеходам — зеленый
    digitalWrite(RED, HIGH);     // Машинам — стоять
    digitalWrite(YELLOW, LOW);
    digitalWrite(GREEN, LOW);
    digitalWrite(GREEN1, HIGH);  // Пешеходам — идти
    digitalWrite(RED1, LOW);
    delay(5000);  // Ждем 5 секунд
 
    // Этап 2: Желтый для машин — подготовка к движению
    digitalWrite(RED, LOW);
    digitalWrite(YELLOW, HIGH);
    digitalWrite(GREEN, LOW);
    delay(3000);  // Ждем 3 секунды
 
    // Этап 3: Машинам — зеленый, пешеходам — красный
    digitalWrite(RED, LOW);
    digitalWrite(YELLOW, LOW);
    digitalWrite(GREEN, HIGH);   // Машинам — ехать
    digitalWrite(RED1, HIGH);    // Пешеходам — стоять
    digitalWrite(GREEN1, LOW);
    delay(5000);  // Ждем 5 секунд
 
    // Переход в ночной режим после двух циклов
    if (i == 1) {
      break;
    }
  }
 
  // Второй цикл — ночной режим
  for (int a = 0; a < 4; a++)
  {
    // Все сигналы выключены, кроме мигающего желтого
    digitalWrite(RED, LOW);
    digitalWrite(GREEN, LOW);
    digitalWrite(GREEN1, LOW);
    digitalWrite(RED1, LOW);
 
    // Желтый мигает: включается на 1 сек, потом выключается
    digitalWrite(YELLOW, HIGH);
    delay(1000);  // Включен 1 секунда
    digitalWrite(YELLOW, LOW);
    delay(1000);  // Выключен 1 секунда
  }
}

Funktsioonid:

voidsetup() – käivitatakse üks kord programmi alguses. Seab LED-tulede pordid väljunditeks.
voidloop() – programmi lõputu tsükkel, kus töötavad foori režiimid.
pinMode(pin, mode) – määrab pordi töörežiimi (sisend või väljund).
digitalWrite(pin, value) – määrab loogilise taseme (HIGH või LOW) määratud pordile.
delay(ms) – peatab programmi täitmise määratud millisekunditeks.

Programmi töö kirjeldus

Programm täidab kahte režiimi. Päevarežiimis süttib esmalt punane tuli autodele ja roheline jalakäijatele 5 sekundiks, seejärel kollane autodele 3 sekundiks, seejärel roheline autodele ja punane jalakäijatele 5 sekundiks. Seda tsüklit korratakse kaks korda, pärast mida läheb programm öörežiimi. Öörežiimis on kõik signaalid välja lülitatud, välja arvatud autode vilkuv kollane. Vilkuv kollane lülitub sisse 1 sekundiks, seejärel lülitub välja 1 sekundiks ja seda protsessi korratakse 4 korda.

Kasutamine elus:
valgusfoori süsteemide projekteerimine – saab kasutada valgusfoori süsteemide mudelites või prototüüpides autode ja jalakäijate liikumise juhtimiseks. Näiteks haridusasutustes või näitustel valgusfooride tööpõhimõtte demonstreerimiseks.

Video:https://drive.google.com/file/d/1vHCpdw5MGY4oW3DpqyvdQQS3v0h7Tuva/view?usp=sharing