LED valgusdioodi vilgutamine
Esimene programm lihtsalt käivitab punase LED-i valguse

void setup()
{
pinMode(LED_BUILTIN, 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)
}
RGB ledi ühendamine
See programm ühendab RGB analogWrite funktsiooniga

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);
}
Valgusfoor
Töö kirjeldus
Valgusfoor töötab kahel režiimil: päeva- ja öörežiimil
Kasutatud komponenid

- Arduino UNO plaat (1tk)
- Arendusplaat (1tk)
- Juhtmed (6tk)
- Takisti (5tk, 220Om)
- LED (5tk: 2 punane, 2 roheline, 1 kollane)
Töö protsess
LED, juhtmed ja takistid ühendatakse arendusplaadiga, valgusfoor hakkab automaatselt tööle
Päevarežiim toimib nii: kui autodel põleb punane, siis jalakäijatel põleb roheline ja vastupidi. See tsükkel kordub 2 korda
Öörežiim toimib nii: pärast seda, kui päevarežiim on läbinud oma ringi 2 korda, ühendub öörežiim automaatselt ja vilgub 5 korda kollasena, sel ajal ei tööta jalakäijate valgusfoor
LED-ide rakendamine
LED-lampe kasutatakse maja, kontori, tootmisruumide või tänava valgustamiseks.
Skeem

Programm
int AUTO_PUNANE = 12;
int AUTO_KOLLANE = 11;
int AUTO_ROHELINE = 10;
int JALAKAIJA_PUNANE = 9;
int JALAKAIJA_ROHELINE = 8;
void setup() {
pinMode(AUTO_PUNANE, OUTPUT);
pinMode(AUTO_KOLLANE, OUTPUT);
pinMode(AUTO_ROHELINE, OUTPUT);
pinMode(JALAKAIJA_PUNANE, OUTPUT);
pinMode(JALAKAIJA_ROHELINE, OUTPUT);
}
void loop() {
delay(1000);
Paevareziim();
Ooreziim();
}
void Paevareziim() {
for (int i = 0; i < 2; i++) {
digitalWrite(AUTO_PUNANE, HIGH);
digitalWrite(AUTO_KOLLANE, LOW);
digitalWrite(AUTO_ROHELINE, LOW);
digitalWrite(JALAKAIJA_PUNANE, LOW);
digitalWrite(JALAKAIJA_ROHELINE, HIGH);
delay(5000);
digitalWrite(AUTO_PUNANE, LOW);
digitalWrite(AUTO_KOLLANE, HIGH);
digitalWrite(AUTO_ROHELINE, LOW);
digitalWrite(JALAKAIJA_PUNANE, HIGH);
digitalWrite(JALAKAIJA_ROHELINE, LOW);
delay(2000);
digitalWrite(AUTO_PUNANE, LOW);
digitalWrite(AUTO_KOLLANE, LOW);
digitalWrite(AUTO_ROHELINE, HIGH);
digitalWrite(JALAKAIJA_PUNANE, HIGH);
digitalWrite(JALAKAIJA_ROHELINE, LOW);
delay(5000);
digitalWrite(AUTO_PUNANE, LOW);
digitalWrite(AUTO_KOLLANE, HIGH);
digitalWrite(AUTO_ROHELINE, LOW);
digitalWrite(JALAKAIJA_PUNANE, HIGH);
digitalWrite(JALAKAIJA_ROHELINE, LOW);
delay(2000);
}
}
void Ooreziim() {
for (int i = 0; i < 5; i++) {
digitalWrite(AUTO_PUNANE, LOW);
digitalWrite(AUTO_KOLLANE, HIGH);
digitalWrite(AUTO_ROHELINE, LOW);
digitalWrite(JALAKAIJA_PUNANE, LOW);
digitalWrite(JALAKAIJA_ROHELINE, LOW);
delay(1000);
digitalWrite(AUTO_PUNANE, LOW);
digitalWrite(AUTO_KOLLANE, LOW);
digitalWrite(AUTO_ROHELINE, LOW);
digitalWrite(JALAKAIJA_PUNANE, LOW);
digitalWrite(JALAKAIJA_ROHELINE, LOW);
delay(1000);
}
}
Video
https://drive.google.com/file/d/1lmmgMLXhp8-nYTA6HtrPs-WrnuQd8Z1E/view?usp=sharing
Uued funktsioonid
int AUTO_PUNANE_PIN = 12; – Teatab, millisest väljundist tuleb elektrijuhe.
void setup() – Kasutage seda pin režiimide initsialiseerimiseks
void loop() – Kordab lõputult
pinMode() – Seadistab määratud viigu käituma kas sisendina või väljundina
digitalWrite() – Kirjutage HIGH või LOW väärtus digitaalsele viigule.
analogWrite() – Kirjutab analoogväärtuse (PWM laine) pin. Võib kasutada LED-i valgustamiseks erineva heledusega
delay() – Peatab programmi parameetrina määratud ajahulga (millisekundites).