Topic: Using LED and RGB LED

Katse 1.1
Punane LED vilkuv:

// C++ code
//
void setup()
{
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop()
{
  digitalWrite(LED_BUILTIN, HIGH);
  delay(3000); // Wait for 1000 millisecond(s)
  digitalWrite(LED_BUILTIN, LOW);
  delay(1000); // Wait for 1000 millisecond(s)
}

Katse 1.2
RGB LED muudab värvi:

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:
Valgusfoori töö kahe režiimiga. Tavarežiim ja öörežiim.

Kasutatud komponenid
Arduino UNO plaat (1tk)
Arendusplaat (1tk)
Juhtmed (6tk)
Takisti (3tk, 1kOm)
LED (5tk: 2 punane, 2 roheline, 1 kollane)

Töö protsess:

Ühendage dioodid, takisti ja juhtmed plaadiga. Valgusfoor töötab Valgusfoor tava- ja öörežiimil.Tavarežiim – Kui tavafooris põleb punane LED, põleb fooris inimestele roheline LED ja vastupidi.Öörežiim – Kui valgusfoor on tavarežiimist 2 korda läbinud, lülitub valgusfoor öörežiimile ja vilgub ainult kollane LED ja kõik muud dioodid on välja lülitatud.

LED-ide kasutamine
Valgustamiseks ja valgustamiseks: tänavavalgustus, tööstusvalgustus, majapidamisvalgustus (LED-lambid ja -valgustid); dekoratiivvalgustus, taustavalgustus, monitorid.

Skeem:

Programm:

int led_red = 4;
int led_yellow = 3;
int led_green = 2;
int led_green1 = 9;
int led_red1 = 10;
boolean ledOn = HIGH;
void setup()
{
  pinMode(led_red, OUTPUT);
  pinMode(led_yellow, OUTPUT);
  pinMode(led_green, OUTPUT);
  pinMode(led_green1, OUTPUT);
  pinMode(led_red1, OUTPUT);
}
void loop()
{
daylight();
  nightlight();
}
void daylight() 
{
int i;
for (int i=0; i&lt;6;i++)
{
digitalWrite(led_red, HIGH);
  digitalWrite(led_red1, LOW);
  delay(2000); // Wait for 10000 millisecond(s)
  digitalWrite(led_yellow, HIGH);
  delay(700);
  digitalWrite(led_red, LOW);
  digitalWrite(led_red1, HIGH);
  digitalWrite(led_yellow, LOW);
  digitalWrite(led_green, HIGH);
  digitalWrite(led_green1, LOW);
  delay(2000); // Wait for 1000 millisecond(s)
  for (int i = 0; i&lt;6; i++)
  {
    ledOn = !ledOn;
    digitalWrite(led_green, ledOn);
    digitalWrite(led_red1, ledOn);
    delay(500);
  }
  digitalWrite(led_green, LOW);
  digitalWrite(led_green1, HIGH);
  digitalWrite(led_yellow, HIGH);
  delay(700);
  digitalWrite(led_yellow, LOW);
  if (i==1)break;
}
}
void nightlight()
{
int a;
for (int a=0; a&lt;4;a++)
{
digitalWrite(led_red, LOW);
digitalWrite(led_yellow, HIGH);
digitalWrite(led_green, LOW);
digitalWrite(led_green1, LOW);
digitalWrite(led_red1, LOW);
delay(1000);
digitalWrite(led_red, LOW);
digitalWrite(led_yellow, LOW);
digitalWrite(led_green, LOW);
digitalWrite(led_green1, LOW);
digitalWrite(led_red1, LOW);
delay(1000);
}
}

Video:

Uued funktsioonid:
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 INPUT(sisend) või OUTPUT (väljund).
digitalWrite(RED, LOW) – Lülitage LED välja
digitalWrite(RED, HIGH) – Lülitage valgusdiood sisse

delay() – ootus (sekundites)