LED ja RGB LED
LED (Valgusdiood) on elektrooniline seade, mis kiirgab valgust, kui sellele rakendatakse elektrivool. LED-id on energiatõhusad, pika eluiga ja kompaktsed, mistõttu neid kasutatakse laialdaselt erinevates rakendustes, sealhulgas valgustuses, ekraanides ja signaalide indikaatorites. LED-ide valgustemperatuur võib varieeruda sõltuvalt valmistamise materjalidest, pakkudes erinevaid värve alates soojast valgest kuni külma sinise ja punaseni.
RGB LED on eriline LED-tüüp, mis sisaldab kolme erinevat LED-d (punane, roheline ja sinine) ühes seadmes. RGB LED-id võimaldavad segada erinevaid värve, luues laia värvipaletti, sealhulgas valge, kui kõik kolm värvi on täisvõimsusel. Need on populaarsed rakendustes, kus on vajalik dünaamiline värvimuutus, näiteks dekoratiivvalgustuses, taustvalgustuses ja LED-ekraanides. RGB LED-id on tihti juhitavad, võimaldades kasutajatel luua erilise valgustuse efekti ja muuta värve vastavalt vajadusele.
Katse 1.1 LED kasutamine
Komponendid:
Arduino UNO plaat (1tk)
Arendusplaat (1tk)
Juhtmed (3tk)
Takisti (1tk, 1kOm)
LED (1tk: 1 punane)

void setup()
{
pinMode(13, OUTPUT);
}
void loop()
{
digitalWrite(LED_BUILTIN, HIGH);
delay(1000); // Wait for 1000 millisecond(s)
digitalWrite(LED_BUILTIN, LOW);
delay(1000); // Wait for 1000 millisecond(s)
}
Katse 1.2. RGB LED kas-ne
Arduino UNO plaat (1tk)
Arendusplaat (1tk)
Juhtmed (5tk)
Takisti (3tk, 1kOm)
LED (1tk: 1 roheline)

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
Kompanendid:
Arduino UNO plaat (1tk)
Arendusplaat (1tk)
Juhtmed (6tk)
Takisti (3tk, 1kOm)
LED (5tk: 2 punane, 2 roheline, 1 kollane)
Töö protsess:

// C++ code
//
void setup()
{
pinMode(13, OUTPUT);
pinMode(12, OUTPUT);
pinMode(11, OUTPUT);
pinMode(10, OUTPUT);
pinMode(9, OUTPUT);
}
void loop()
{
for (int i=0;i<3;i++){
digitalWrite(13, HIGH);
digitalWrite(9, HIGH);
delay(5000); // Wait for 1000 millisecond(s)
digitalWrite(13, LOW);
digitalWrite(9, LOW);
delay(1000); // Wait for 1000 millisecond(s)
digitalWrite(12, HIGH);
delay(1000); // Wait for 1000 millisecond(s)
digitalWrite(12, LOW);
delay(1000); // Wait for 1000 millisecond(s)
digitalWrite(11, HIGH);
digitalWrite(10, HIGH);
delay(5000); // Wait for 1000 millisecond(s)
digitalWrite(11, LOW);
digitalWrite(10, LOW);
delay(1000); // Wait for 1000 millisecond(s)
for (int a=0;a<15;a++){
digitalWrite(12, HIGH);
delay(500); // Wait for 1000 millisecond(s)
digitalWrite(12, LOW);
delay(500); // Wait for 1000 millisecond(s)
}
}
}