Часть 1. LED и RGB LED

Uus 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)
for() — tsükkel, mida kasutatakse toimingu kordamiseks

Kaste 1
Töö protsess
LED-lamp süttib 1 sekundiks, seejärel kustub 1 sekundiks ja kordub lõputult.

Kasutatud:
1x Arduino uno
1x LED lamp
1x 220 oomi takisti
2x Juhtmed

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(1000);              // Ootab 1 sek  
  digitalWrite(13, LOW);    // Lülita välja
  delay(1000);              // Ootab 1 sek
}

Kaste 1.2

Töö protsess
Muudab LED-i värvi rgb-s, alustades ja lõpetades punasega

Kasutatud:
1x Arduino uno
1x LED RGB lamp
3x 220 oomi takisti
5x Juhtmed

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

Ulesanne 1. Valgusfoor

Valgusfloor (Õpetaja oma)

Punane tuli põleb 2 sekundit, seejärel lülitub kollaseks, ootab veidi vähem kui 1 sekundit ja lülitub roheliseks. Roheline tuli põleb 2 sekundit, seejärel hakkab vilkuma, 1 vilkumine iga poole sekundi järel, kokku 6 vilkumist.

1x Arduino UNO
3x LED lamp
3x 220 oomi takisti
4x Juhtmed

int led_red = 13;
int led_yellow = 12;
int led_green = 11;

void setup()
{
  pinMode(led_red, OUTPUT);
  pinMode(led_yellow, OUTPUT);
  pinMode(led_green, OUTPUT);
}
void loop()
{
  digitalWrite(led_red, HIGH);
  delay(2000);
  
  digitalWrite(led_yellow, HIGH);
  delay(700);
  
  digitalWrite(led_red, LOW);
  
  digitalWrite(led_yellow, LOW);
  
  digitalWrite(led_green, HIGH);
  delay(2000);
  
  for (int i = 0; i<6; i++)
  { 
    digitalWrite(led_green, LOW);
    delay(500);
    digitalWrite(led_green, HIGH);
    delay(500);
  }
  digitalWrite(led_green, LOW);
  digitalWrite(led_yellow, HIGH);
  delay(700);
  digitalWrite(led_yellow, LOW);
}

Valgusfloor (Minu oma)

Töö kirjeldus
Päevase ja öise töörežiimiga valgusfoorid

Töö protsess

Muutujad: punane (led_red), kollane (led_yellow), roheline (led_green), ekstra kollane (led_yellow_day), sinine (led_blue_night).
Kõik väljundviigud on konfigureeritud.
Kutsutakse päevarežiimi paev() ja night().
Päevarežiimis süttib kõigepealt kollane päevane LED, seejärel süttib 2 sekundiks punane tuli, seejärel 0,7 sekundiks kollane tuli. Punane ja kollane lülituvad välja, roheline tuli süttib 2 sekundiks, seejärel vilgub 6 korda iga 0,5 sekundi järel. Lõpuks lülitub kollane valgus 0,7 sekundiks sisse, seejärel lülitub välja koos päevatulelaternaga.
Öörežiimis lülitub sinine LED sisse ja kollane vilgub 12 korda iga 0,5 sekundi järel, seejärel lülitub sinine välja.

Komponendid
1x Arduino UNO
5x LED lamp
5x 220 oomi takisti
6x Juhtmed

Kohandatud funktsioon

paev() — Päevane foori funktsioon. Punane, kollane ja roheline LED tuled töötavad
night() — Öörežiimi funktsioon. Vilgub kollaselt

Kood

int led_red = 13;
int led_yellow = 12;
int led_green = 11;
int led_yellow_day = 8;
int led_blue_night = 7;
 
void setup()
{
  pinMode(led_red, OUTPUT);
  pinMode(led_yellow, OUTPUT);
  pinMode(led_green, OUTPUT);
  pinMode(led_yellow_day, OUTPUT);
  pinMode(led_blue_night, OUTPUT);
}
void loop()
{
paev();
paev();
night();

}
void paev()
{
  digitalWrite(led_yellow_day, HIGH);
   
  digitalWrite(led_red, HIGH);
  delay(2000);
   
  digitalWrite(led_yellow, HIGH);
  delay(700);
   
  digitalWrite(led_red, LOW);
   
  digitalWrite(led_yellow, LOW);
   
  digitalWrite(led_green, HIGH);
  delay(2000);
   
  for (int i = 0; i<6; i++)
  { 
    digitalWrite(led_green, LOW);
    delay(500);
    digitalWrite(led_green, HIGH);
    delay(500);
  }
  digitalWrite(led_green, LOW);
  digitalWrite(led_yellow, HIGH);
  delay(700);
  digitalWrite(led_yellow, LOW);

  digitalWrite(led_yellow_day, LOW);
}

void night()
{
  digitalWrite(led_blue_night, HIGH);
  
  for (int i = 0; i<12; i++)
  { 
    digitalWrite(led_yellow, LOW);
    delay(500);
    digitalWrite(led_yellow, HIGH);
    delay(500);
  }
  digitalWrite(led_blue_night, LOW);
}

Skeem

Video

Kasutusvõimalusi igapäevaelus.

Integreerige see valgustuse juhtimissüsteemi, muutes töörežiimi olenevalt kellaajast.