Sisukord:
Katse 1.1

Kirjeldus:
See programm vilgutab plaatil olevat LED-i, mis on ühendatud pessa 13. Funktsioonis setup määratakse pesa, funktsioonis loop lülitatakse LED sisse ja välja ühesekundiliste vahedega.
Programm:
void setup()
{
// pinMode() määrab töörežim
pinMode(13, OUTPUT); // 13-pini number, INPUT/OUTPUT(Sisend/Väljund).
}
void loop()
{
digitalWrite(13, HIGH); // Lülita sisse
delay(1000); // Ootab 1 sek
digitalWrite(13, LOW); // Lülita välja
delay(1000); // Ootab 1 sek
}
Kuidas programm töötab:
Setup-funktsioonis määratakse pin 13 väljundiks. Loop-funktsioonis lülitatakse LED iga sekund sisse ja välja, kasutades digitalWrite-käsku.
HIGH tähendab, et LED süttib, LOW kustutab selle. Delay(1000) lisab ühe sekundi viivituse.
Katse 1.2

Kirjeldus:
RGB LED ühendatakse digitaalpesa 9, 10 ja 11, et reguleerida punase, rohelise ja sinise komponendi heledust. Anood (kõige pikem jalg) ühendatakse toiteallikaga, et luua erinevaid värvikombinatsioone, kasutades analogWrite käsku.
Programm:
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);
}
Kuidas programm töötab:
- loop() – Peatsüklis toimuv tegevus, mida Arduino käivitab korduvalt.
- setup() – Algseadistuste funktsioon, mida Arduino käivitab üks kord käivitamisel.
Muud muutujad ja funktsioonid:
- RED_PIN = 11, GREEN_PIN = 9, BLUE_PIN = 10
Määravad, millistele Arduino jalgadele (pin’idele) on ühendatud LED-i punane, roheline ja sinine värv. - DISPLAY_TIME = 100
Näitab, kui kiiresti värvid muutuvad (ajakulu millisekundites). - pinMode(PIN, OUTPUT)
Seab kõik kolm värvikanalit (punane, roheline, sinine) väljundiks, et neid oleks võimalik juhtida.
Funktsioonid:
mainColors()
Kuvab põhivärve (punane, roheline, sinine). Süütab iga värvi järjest ja ootab enne järgmise värvi näitamist ühe sekundi.
showSpectrum()
Kuvab sujuva värvigradatsiooni. Tsükkel vahemikus 0 kuni 768 muudab LED-i värvi järk-järgult, liikudes läbi värvispektri.
showRGB()
Määrab värvi heledust vastavalt tsükli väärtusele:
0–255: punane väheneb, roheline suureneb
256–511: roheline väheneb, sinine suureneb
512–767: sinine väheneb, punane suureneb
Katse 1.3 (Ülesanne 1 Valgusfoor)
Töö kirjeldus:
Valgusfoori töö kahe režiimiga. Tavarežiim ja öörežiim.
Töö protsess:
Ühendage dioodid, takisti ja juhtmed plaadiga. Valgusfoor töötab Valgusfoor tava- ja öörežiimil.
Tavarežiim – Kui tavafooris põleb punane LED, põleb fooris inimestele roheline LED ja vastupidi.
Öörežiim — pärast seda, kui valgusfoor on tavarežiimis läbi käinud 1 kord, lülitub valgusfoor öörežiimile. Sel juhul vilgub autode juures kollane LED ja punane LED on sisse lülitatud, jalakäijate juures vilgub ainult roheline LED.
Kasutatud komponenid:
Arduino UNO plaat (1tk)
Arendusplaat (1tk)
Juhtmed (6tk)
Takisti (5tk, 220 Om)
LED (5tk: 2 punane, 2 roheline, 1 kollane)
LED-ide rakendamine:
Valgustuse ja valgustuse jaoks: Tänava-, tööstus-, koduvalgustuses (LED-lambid ja lambid); Dekoratiivvalgustuses, taustvalgustuses.
Skeem:

Programm:
const int RED_PIN = 13;
const int YELLOW_PIN = 12;
const int GREEN_PIN = 11;
const int P_RED_PIN = 10;
const int P_GREEN_PIN = 9;
bool nightMode = false;
int loopCount = 0;
void setup()
{
pinMode(RED_PIN, OUTPUT);
pinMode(YELLOW_PIN, OUTPUT);
pinMode(GREEN_PIN, OUTPUT);
pinMode(P_RED_PIN, OUTPUT);
pinMode(P_GREEN_PIN, OUTPUT);
}
void loop()
{
if (loopCount == 1)
{
nightMode = !nightMode;
loopCount = 0;
}
if(!nightMode)
{
cars();
pedestrians();
}
else
{
nightCars();
nightPedestrians();
}
loopCount++;
}
void cars()
{
delay(500);
digitalWrite(RED_PIN, HIGH);
digitalWrite(GREEN_PIN, LOW);
digitalWrite(YELLOW_PIN, LOW);
digitalWrite(P_RED_PIN, HIGH);
digitalWrite(RED_PIN, HIGH);
digitalWrite(YELLOW_PIN, HIGH);
delay(2000);
digitalWrite(YELLOW_PIN, LOW);
digitalWrite(RED_PIN, LOW);
digitalWrite(GREEN_PIN, HIGH);
delay(10000);
for (int i = 0; i < 3; i++)
{
digitalWrite(GREEN_PIN, LOW);
delay(500);
digitalWrite(GREEN_PIN, HIGH);
delay(500);
}
digitalWrite(GREEN_PIN, LOW);
digitalWrite(YELLOW_PIN, HIGH);
delay(2000);
digitalWrite(YELLOW_PIN, LOW);
digitalWrite(RED_PIN, HIGH);
}
void pedestrians()
{
delay(500);
digitalWrite(P_RED_PIN, LOW);
digitalWrite(P_GREEN_PIN, HIGH);
delay(10000);
for (int i = 0; i < 3; i++)
{
digitalWrite(P_GREEN_PIN, LOW);
delay(500);
digitalWrite(P_GREEN_PIN, HIGH);
delay(500);
}
digitalWrite(P_GREEN_PIN, LOW);
digitalWrite(P_RED_PIN, HIGH);
}
void nightCars()
{
for (int i = 0; i < 5; i++)
{
digitalWrite(RED_PIN, HIGH);
digitalWrite(GREEN_PIN, LOW);
digitalWrite(YELLOW_PIN, HIGH);
delay(500);
digitalWrite(YELLOW_PIN, LOW);
delay(500);
}
digitalWrite(YELLOW_PIN, LOW);
digitalWrite(RED_PIN, HIGH);
}
void nightPedestrians()
{
for (int i = 0; i < 5; i++)
{
digitalWrite(P_RED_PIN, LOW);
digitalWrite(P_GREEN_PIN, HIGH);
delay(500);
digitalWrite(P_GREEN_PIN, LOW);
delay(500);
}
digitalWrite(P_GREEN_PIN, LOW);
digitalWrite(P_RED_PIN, HIGH);
}
Video:
Uued funktsioonid:
pinMode(RED, OUTPUT) – Funktsioon võtab kaks argumenti: esimene on pordi number, teine määrab suuna – kas tegemist on sisendi (INPUT) või väljundiga (OUTPUT).digitalWrite(RED, LOW) – Lülitab LED-i välja.digitalWrite(RED, HIGH) – Lülitab LED-i sisse.delay() – Paneb programmi ootama määratud aja (millisekundites).for (int x = 0; x < 5; x++) – Käivitatakse tsükkel kolm korda järjest.
cars() – Juhtab autode fooritulesid päevasel ajal.
pedestrians() – Juhtab jalakäijate fooritulesid päevasel ajal.
nightCars() – Lülitab öörežiimis sisse vilkuva kollase tule autodele.
nightPedestrians() – Lülitab öörežiimis sisse vilkuva rohelise tule jalakäijatele