Praktiline töö 1

Katse 1.1 LED kasutamine

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

Komponendid:

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

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

Töö konspekt:

On kaks režiimi: päev (day) ja öö (night). Päeva režiimis süttivad kolm tuld järjekorras: punane-kollane-roheline ja vastupidi. Kui autodele süttib punane, süttib inimestele roheline ja vastupidi. Roheline foorid vilguvad need 4 korda.

delay() — määrab viivituse

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

digitalWrite()
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.

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

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

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

//tsükkel, mis vastutab rohelise tule vilkumise eest jalakäijatele enne punasele tulele üleminekut//
for(int i=0; i<4; i++)
{
digitalWrite(6, HIGH);
delay(500);
digitalWrite(6, LOW);
delay(500);
}

digitalWrite(5, LOW);
digitalWrite(7, HIGH);
digitalWrite(13, LOW);
digitalWrite(12, HIGH);
delay(4000);

// tsükkel, mis vastutab kollase fooritule vilkumise eest enne punasele tulele üleminekut //
for(int d=0; d<4; d++)
{
digitalWrite(12, LOW);
delay(500);
digitalWrite(12, HIGH);
delay(500);
}

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

// tsükkel, mis vastutab kollase fooritule vilkumise //
for(int d=0; d<3; d++) {
digitalWrite(5, LOW);
delay(500);
digitalWrite(5, HIGH);
delay(500);
}
}


Scroll to Top