Katse 1.

Katse 1.1 LED kasutamine

// C++ code
//
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

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 = 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

Päeva- ja öörežiimiga valgusfoor.

Komponendid:

Arudino Uno
Takisti (5)
Juhtmed (7)
5 värvilist LEDi (3 auto fooris ja 2 inimeste fooris)

skeem:

https://www.tinkercad.com/things/gvoNVX0gFPU

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

// C++ code
//

void setup()
{
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
}

void loop()
{
day();
night();

}

void day()
{
digitalWrite(12, LOW);
digitalWrite(13, HIGH);
digitalWrite(7, LOW);
digitalWrite(5, LOW);
digitalWrite(6, HIGH);
delay(3000);

for(int i=0; i<3; i++)
{
digitalWrite(6, LOW);
delay(500);
digitalWrite(6, HIGH);
delay(500);
}

digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(5, HIGH);
digitalWrite(13, HIGH);
digitalWrite(12, LOW);
delay(1000);
digitalWrite(7, HIGH);
digitalWrite(12, HIGH);
digitalWrite(13, LOW);
digitalWrite(5, LOW);
delay(3000);
}

void night()
{
digitalWrite(12, LOW);
digitalWrite(13, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);

for(int k=0; k<3; k++)
{
digitalWrite(5, LOW);
delay(500);
digitalWrite(5, HIGH);
delay(500);
}

}

Tööpõhimõte:

On kaks režiimi: päev ja öö. Päevarežiimis süttivad kolm tuld järjekorras: punane-kollane-roheline ja vastupidi. Kui autodele süttib punane, süttib inimestele roheline ja vastupidi. Enne kui rohelised foorid kustuvad, vilguvad need 3 korda. Öörežiimis vilgub ainult kollane.

Uued funktsioonid:

pinMode() — Funktsioon.

Seadistab määratud viigu käituma kas sisendi või väljundina.

Sisemised tõmbetakistid on võimalik lubada režiimiga INPUT_PULLUP. Lisaks keelab režiim INPUT selgesõnaliselt sisemised tõmbamised.

digitalWrite() — Funktsioon.

Kirjutage digitaalsele kontaktile HIGH või LOW väärtus.
Kui viik on konfigureeritud INPUT-na, siis digitalWrite() lubab (HIGH) või keelab (LOW) sisendviigu sisemise tõmbamise.
Kui te ei määra pinMode() olekuks OUTPUT ja ühendate LED-i viiguga, võib DigitalWrite(HIGH) helistamisel näida hämar.

delay() — Funktsioon.

Peatab programmi parameetrina määratud ajaks (millisekundites). (Sekundis on 1000 millisekundit.)

for() — tsükkel.

he for lause kasutatakse lauseploki kordamiseks, mis on suletud sulgudes. Silmuse suurendamiseks ja lõpetamiseks kasutatakse tavaliselt juurdekasvuloendurit. Lause for on kasulik mis tahes korduva toimingu puhul ja seda kasutatakse sageli koos massiividega, et kasutada andmekogude/kontaktide kogumit.

while() — tsükkel.

Ajasilmus teeb tsüklit pidevalt ja lõputult, kuni sulgudes olev avaldis () muutub vääraks. Midagi peab testitavat muutujat muutma, vastasel juhul ei välju while-tsükkel kunagi. See võib olla teie koodis, näiteks suurendatud muutujas, või väline tingimus, näiteks anduri testimine.

kasutamisvõimalused tavaelus.

LED-ide kasutamiseks on palju võimalusi. See võib olla eluruumide, tänavate, tootmisettevõtete ja tööstusrajatiste valgustus. LED-ide pika kasutusea tõttu on need soodsad kasutamiseks raskesti ligipääsetavates kohtades.