Praktika 1. LED ja RGB led

1.1 katse

Projekti koostamiseks läheb vaja:

LED – 1
Taikisti – 1 (220 Om)
Juhe – 1

Skeem:

Kood:

void setup ()
{
pinMode(13, OUTPUT);
}
Helista programmile

loop () – tsükkel
LOW – välja HIGH – lisada
delay – paus
OUTPUT – järeldus INPUT – sisend

1.2 Katse

LED – 1
Taikisti – 3 (220 Om)
Juhe- 3

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);

}

if …
else
– kui
showRGB – funktsioon, mis määrab sujuvuse
showSpectrum – funktsioon, mis ennustab, millisest kuupäevast millise kuupäevani.

1.3 Katse

Ülesanne 1 Valgusfoor

Töö kirjeldus:

Valgusanduril on kaks töörežiimi. Päevarežiim ja öörežiim.

Töö protsess:

Ühendage dioodid, takisti ja juhtmed plaadile. Ühendage dioodid, pirn, valgusdioodid, valgusallikas ja liiteseade.

Päevarežiim (korda 4 korda) normaalne režiim:
Esmalt hakkab see tööle punase tulega autodele ja rohelise tulega jalakäijatele (5 sekundit), seejärel vilgub jalakäijatele (6 vilkumist 0,5 sekundit). Seejärel hakkab tööle autode kollane tuli (3 sekundit) ja jalakäijatele punane. Seejärel põleb autodel roheline tuli (5 s) ja punane jalakäijatele, misjärel vilgub autode roheline tuli (6 vilkumist iga 0,5 sek). Viimane etapp on autodele kollane (3 sekundit) ja jalakäijatele punane.
Öörežiim (korda 4 korda):
Töötab ainult kollane tuli (põleb 1 sekund) ja kõik tuled kustuvad 1 sekundiks.
Põhiline tsükkel:
Põhitsüklis kordub päevane režiim 2 korda ja öine režiim 1 kord. Kogu põhitsükkel kordub alati.

Kasutatud komponeendid:

LED (punane) – 2
LED(kollane) – 1
LED(roheline) – 2
Taikisti – 5 (220 Om)
Juhe – 6
Arendusplaat – 1

Ühendamise skeem:

Programm:

const int RED = 11;
const int YELLOW = 10;
const int GREEN = 9;
const int GREEN1 = 5;
const int RED1 = 6;

int kord = 0;

void setup() {
pinMode(RED, OUTPUT);
pinMode(GREEN, OUTPUT);
pinMode(YELLOW, OUTPUT);
pinMode(RED1, OUTPUT);
pinMode(GREEN1, OUTPUT);
}
//Päevane režiim
void paev() {
int i;
for (i = 0; i < 2; i++) {
digitalWrite(RED, HIGH);
digitalWrite(YELLOW, LOW);
digitalWrite(GREEN, LOW);
digitalWrite(GREEN1, HIGH);
digitalWrite(RED1, LOW);
delay(5000); 

int j;
for (j = 0; j < 4; j++) {
digitalWrite(GREEN1, HIGH);
delay(250);
digitalWrite(GREEN1, LOW);
delay(250); 
} //roheline vilkuv tuli jalakäijatele

digitalWrite(RED, HIGH);
digitalWrite(YELLOW, HIGH);
digitalWrite(GREEN, LOW);
digitalWrite(RED1, HIGH);
digitalWrite(GREEN1, LOW);
delay(3000);

digitalWrite(RED, LOW);
digitalWrite(YELLOW, LOW);
digitalWrite(GREEN, HIGH);
digitalWrite(RED1, HIGH);
digitalWrite(GREEN1, LOW);
delay(5000);

int n;
for ( n = 0; n < 4; n++) {
digitalWrite(GREEN, HIGH);
delay(250);
digitalWrite(GREEN, LOW);
delay(250);
} //vilkuvad rohelised tuled autodele

digitalWrite(RED, LOW);
digitalWrite(YELLOW, HIGH);
digitalWrite(GREEN, LOW);
digitalWrite(RED1, HIGH);
digitalWrite(GREEN1, LOW);
delay(3000);
}
}// tsükkel üks kord

// Öö režiim
void oo() {
int a;
for (a = 0; a < 10; a++) {
digitalWrite(RED, LOW);
digitalWrite(YELLOW, HIGH);
digitalWrite(GREEN, LOW);
digitalWrite(GREEN1, LOW);
digitalWrite(RED1, LOW);
delay(1000);

digitalWrite(RED, LOW);
digitalWrite(YELLOW, LOW);
digitalWrite(GREEN, LOW);
digitalWrite(GREEN1, LOW);
digitalWrite(RED1, LOW);
delay(1000);
}
} //kordub üheksa korda,ainult vilkuv kollane 

//Lõputu tsükkel päevase ja 
//öise režiimi jaoks (nii et need korduvad)
void loop() {
  if (kord < 3) {
    paev();
    kord++;
  } else {
    oo();
    kord = 0;  
  }
}

Video:

https://drive.google.com/file/d/1ZB4dMCUmn1xiXPwE7HgfcRSH7vedQt7x/view?usp=drive_link

Uued funktsioonid:

digitalWrite( ) – funktsioon teeb seda, mis on sulgudes, näiteks
digitalWrite(RED, LOW) – Lülitage LED välja
digitalWrite(RED, HIGH) – Lülitage valgusdiood sisse
pinMode(RED, OUTPUT) – saab kaks väärtust, mille edastame talle sulgudes kohe pärast funktsiooni nime. Esimene on number-pordi number, teine on sõna
void loop() – lõpmatu tsükkel
delay – ootus (sekundites)
for (x=0; x<768; x++) – koormustsükkel
INPUT – sisend
OUTPUT – väljund

LED-ide rakendamin

Valgustuse ja valgustuse jaoks: Tänava-, tööstus-, koduvalgustuses (LED-lambid ja lambid); Dekoratiivvalgustuses, taustvalgustuses.