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