Praktika 1 Led ja RGB Led

LED valgusdioodi vilgutamine

Esimene programm lihtsalt käivitab punase LED-i valguse

void setup()
{
  pinMode(LED_BUILTIN, 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)
}

RGB ledi ühendamine

See programm ühendab RGB analogWrite funktsiooniga

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

Töö kirjeldus

Valgusfoor töötab kahel režiimil: päeva- ja öörežiimil

Kasutatud komponenid

  • Arduino UNO plaat (1tk)
  • Arendusplaat (1tk)
  • Juhtmed (6tk)
  • Takisti (5tk, 220Om)
  • LED (5tk: 2 punane, 2 roheline, 1 kollane)

Töö protsess

LED, juhtmed ja takistid ühendatakse arendusplaadiga, valgusfoor hakkab automaatselt tööle

Päevarežiim toimib nii: kui autodel põleb punane, siis jalakäijatel põleb roheline ja vastupidi. See tsükkel kordub 2 korda

Öörežiim toimib nii: pärast seda, kui päevarežiim on läbinud oma ringi 2 korda, ühendub öörežiim automaatselt ja vilgub 5 korda kollasena, sel ajal ei tööta jalakäijate valgusfoor

LED-ide rakendamine

LED-lampe kasutatakse maja, kontori, tootmisruumide või tänava valgustamiseks.

Skeem

Programm

int AUTO_PUNANE = 12;
int AUTO_KOLLANE = 11;
int AUTO_ROHELINE = 10;
int JALAKAIJA_PUNANE = 9;
int JALAKAIJA_ROHELINE = 8;

void setup() {
 pinMode(AUTO_PUNANE, OUTPUT);
 pinMode(AUTO_KOLLANE, OUTPUT);
 pinMode(AUTO_ROHELINE, OUTPUT);
 pinMode(JALAKAIJA_PUNANE, OUTPUT);
 pinMode(JALAKAIJA_ROHELINE, OUTPUT);
}
void loop() {
 delay(1000);
 Paevareziim(); 
 Ooreziim();  
}
void Paevareziim() {
 for (int i = 0; i < 2; i++) {
    digitalWrite(AUTO_PUNANE, HIGH);
    digitalWrite(AUTO_KOLLANE, LOW);
    digitalWrite(AUTO_ROHELINE, LOW);
    digitalWrite(JALAKAIJA_PUNANE, LOW);
    digitalWrite(JALAKAIJA_ROHELINE, HIGH);
    delay(5000);
  
    digitalWrite(AUTO_PUNANE, LOW);
    digitalWrite(AUTO_KOLLANE, HIGH);
    digitalWrite(AUTO_ROHELINE, LOW);
    digitalWrite(JALAKAIJA_PUNANE, HIGH);
    digitalWrite(JALAKAIJA_ROHELINE, LOW);
    delay(2000);
  
    digitalWrite(AUTO_PUNANE, LOW);
    digitalWrite(AUTO_KOLLANE, LOW);
    digitalWrite(AUTO_ROHELINE, HIGH);
    digitalWrite(JALAKAIJA_PUNANE, HIGH);
    digitalWrite(JALAKAIJA_ROHELINE, LOW);
    delay(5000);
   
    digitalWrite(AUTO_PUNANE, LOW);
    digitalWrite(AUTO_KOLLANE, HIGH);
    digitalWrite(AUTO_ROHELINE, LOW);
    digitalWrite(JALAKAIJA_PUNANE, HIGH);
    digitalWrite(JALAKAIJA_ROHELINE, LOW);
    delay(2000);
 }
}
void Ooreziim() {
 for (int i = 0; i < 5; i++) {
    digitalWrite(AUTO_PUNANE, LOW);
    digitalWrite(AUTO_KOLLANE, HIGH);
    digitalWrite(AUTO_ROHELINE, LOW);
    digitalWrite(JALAKAIJA_PUNANE, LOW);
    digitalWrite(JALAKAIJA_ROHELINE, LOW);
    delay(1000);
    
    digitalWrite(AUTO_PUNANE, LOW);
    digitalWrite(AUTO_KOLLANE, LOW);
    digitalWrite(AUTO_ROHELINE, LOW);
    digitalWrite(JALAKAIJA_PUNANE, LOW);
    digitalWrite(JALAKAIJA_ROHELINE, LOW);
    delay(1000);
 }
}

Video

https://drive.google.com/file/d/1lmmgMLXhp8-nYTA6HtrPs-WrnuQd8Z1E/view?usp=sharing

Uued funktsioonid

int AUTO_PUNANE_PIN = 12; – Teatab, millisest väljundist tuleb elektrijuhe.
void setup() – Kasutage seda pin režiimide initsialiseerimiseks
void loop() – Kordab lõputult
pinMode() – Seadistab määratud viigu käituma kas sisendina või väljundina
digitalWrite() – Kirjutage HIGH või LOW väärtus digitaalsele viigule.
analogWrite() – Kirjutab analoogväärtuse (PWM laine) pin. Võib kasutada LED-i valgustamiseks erineva heledusega
delay() – Peatab programmi parameetrina määratud ajahulga (millisekundites).