1. Teema: LED ja RGB LED kasutamine

Katse 1

Kood

void setup()

{

  // pinMode() määrab töörežim

  pinMode(13, OUTPUT);   // 13-pini number, INPUT/OUTPUT(Sisend/Väljund).

}

void loop()

{

  digitalWrite(13, HIGH);   // Lülita sisse

  delay(100);              // Ootab 1 sek  

  digitalWrite(13, LOW);    // Lülita välja

  delay(100);              // Ootab 1 sek

}

Katse 2

Kood

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

// Põleb roheline

  digitalWrite(RED_PIN, LOW);

  digitalWrite(GREEN_PIN, HIGH);

  digitalWrite(BLUE_PIN, LOW);

  delay(100);

// Sinine on sisse lülitatud

  digitalWrite(RED_PIN, LOW);

  digitalWrite(GREEN_PIN, LOW);

  digitalWrite(BLUE_PIN, HIGH);

  delay(100);

// Kollane.

  digitalWrite(RED_PIN, HIGH);

  digitalWrite(GREEN_PIN, HIGH);

  digitalWrite(BLUE_PIN, LOW);

  delay(100);

// Lilla

  digitalWrite(RED_PIN, LOW);

  digitalWrite(GREEN_PIN, HIGH);

  digitalWrite(BLUE_PIN, HIGH);

  delay(100);

//Roosa

  digitalWrite(RED_PIN, HIGH);

  digitalWrite(GREEN_PIN, LOW);

  digitalWrite(BLUE_PIN, HIGH);

  delay(100);

//Valge ehk kõik on sisse lülitatud

  digitalWrite(RED_PIN, HIGH);

  digitalWrite(GREEN_PIN, HIGH);

  digitalWrite(BLUE_PIN, HIGH);

  delay(100);

}

// Vikerkaar. 

void showSpectrum()

{

  int x;

  for (x = 2000; x < 7668; 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 <= 2550)                

  {

    redIntensity = 2550 - 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 1 Valgusfoor:

Töö kirjeldus

Valgusfoori töö kahe režiimiga. Tavarežiim ja öörežiim.

Kasutatud komponenid

Arduino UNO plaat (1tk)
Arendusplaat (1tk)
Juhtmed (6tk)
Takisti (5tk, 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 rakendamine

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

Skeem:

Programm:

const int RED = 11;

const int YELLOW = 12;

const int GREEN = 9;

const int GREEN1 = 5;

const int RED1 = 6;

void setup()
{
pinMode(RED, OUTPUT);

pinMode(GREEN, OUTPUT);

pinMode(YELLOW, OUTPUT);

pinMode(RED1, OUTPUT);

pinMode(GREEN1, OUTPUT);
}

// цикл работы светофора
void loop(){
day();
delay(5000);
night();
delay(5000);
}


// ночной режим

void night(){
  for (int i=0; i<5;i++){
  digitalWrite(YELLOW, HIGH);  // Включаем желтый
  digitalWrite(GREEN, LOW);
  digitalWrite(RED, LOW);
  digitalWrite(GREEN1, LOW);
  digitalWrite(RED1, LOW);
  delay(500);
  digitalWrite(YELLOW, LOW);   // Выключаем желтый
  digitalWrite(GREEN, LOW);
  digitalWrite(RED, LOW);
  digitalWrite(GREEN1, LOW);
  digitalWrite(RED1, LOW);
  delay(500);
  }  
}

 
void day() {
 digitalWrite(YELLOW, LOW);
 digitalWrite(GREEN, LOW);
 digitalWrite(RED, HIGH);
 digitalWrite(GREEN1, HIGH);
 digitalWrite(RED1, LOW);
 delay(5000);
 
 digitalWrite(YELLOW, HIGH);
 digitalWrite(GREEN, LOW);
 digitalWrite(RED, HIGH);
 digitalWrite(GREEN1, LOW);
 digitalWrite(RED1, HIGH);
 delay(1000);
 
 digitalWrite(YELLOW, LOW);
 digitalWrite(GREEN, HIGH);
 digitalWrite(RED, LOW);
 digitalWrite(GREEN1, LOW);
 digitalWrite(RED1, HIGH);
 delay(5000);
 
  for (int i=0; i<3;i++){
  digitalWrite(GREEN, LOW);
  delay(500);
  digitalWrite(GREEN, HIGH);
  delay(500);
  }
 
 digitalWrite(YELLOW, HIGH);
 digitalWrite(GREEN, LOW);
 digitalWrite(RED, LOW);
 digitalWrite(GREEN1, LOW);
 digitalWrite(RED1, HIGH);
 delay(1000);
 
 digitalWrite(YELLOW, LOW);
 digitalWrite(GREEN, LOW);
 digitalWrite(RED, HIGH);
 digitalWrite(GREEN1, HIGH);
 digitalWrite(RED1, LOW);
 delay(5000);
 
}

Video:

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

Uued funktsioonid:

// ночной режим

void night(){
  for (int i=0; i<5;i++){
  digitalWrite(YELLOW, HIGH);  // Включаем желтый
  digitalWrite(GREEN, LOW);
  digitalWrite(RED, LOW);
  digitalWrite(GREEN1, LOW);
  digitalWrite(RED1, LOW);
  delay(500);
  digitalWrite(YELLOW, LOW);   // Выключаем желтый
  digitalWrite(GREEN, LOW);
  digitalWrite(RED, LOW);
  digitalWrite(GREEN1, LOW);
  digitalWrite(RED1, LOW);
  delay(500);
  }  
}