abc Arduino - primjeri /EXAMPLES/
Termometar - Temperaturni senzor i RGB dioda sa opsezima temperature - if else naredba

Ex.4.1.Termometar - Temperaturni senzor i RGB dioda sa opsezima temperature.

Opis rješenja: Opsezi za ovaj primjer su -40, -3, 24, 81, 111, 125 oC. Zavisno od očitane vrijednosti na temperaturnom senzoru mijenja se boja na RGB diodi. Korišćena je if else naredba.
Legenda:
- LED ON - uključene LED diode
- LED OFF - isključene LED diode

Šema povezivanja: Ispis

Elementi:
- LED dioda 5 kom;
- Otpornik 220 Ω 5 kom;
- Arduino modul.

Listing programa :

// Termometar  senzor i RGB dioda sa opsezima temperature
// 21eTermometarRGB1
int analogniulaz = A5;
int pinLedR = 7;  // pin crvena led RGB
int pinLedB = 6;  // pin plava led RGB
int pinLedG = 5;  // pin zelena led RGB

int ocitanavrijednost = 0;
int gr0 = -40;  // temperaturne granice
int gr1 = -3;
int gr2= 24;
int gr3 = 81;
int gr4 = 111;

void setup() {
  pinMode(pinLedR, OUTPUT);    // postvi pinLedR kao izlaz
  pinMode(pinLedG, OUTPUT);    // postvi pinLedG kao izlaz
  pinMode(pinLedB, OUTPUT);    // postvi pinLedB kao izlaz
 
  Serial.begin(9600);  // brzina komunikacije
  Serial.println("Prikaz izmjerene temperature");
}

void loop() {
  ocitanavrijednost = map(((analogRead(analogniulaz) - 20) * 3.04), 0, 1023, -40, 125);
 
  //  Opseg: gr0 - < gr1 - Boja RGB diode zelena
  if ((ocitanavrijednost >= gr0) && (ocitanavrijednost < gr1)) {
    color(0, 255, 0);   // zelena

  //   Opseg: gr1 - < gr2 - Boja RGB diode zuta
  } else if ((ocitanavrijednost >= gr1) && (ocitanavrijednost < gr2)) {
     color(255, 255, 0); // zuta

  //    Opseg: gr2- < gr3 - Boja RGB diode plava
  } else if ((ocitanavrijednost >= gr2) && (ocitanavrijednost < gr3)) {
    color(0, 0, 255);   // plava
   
  //     Opseg: gr3- < gr4 - Boja RGB diode cijan
  } else if ((ocitanavrijednost >= gr3) && (ocitanavrijednost < gr4)) {
      color(0, 255, 255); // cijan
   
  //   > gr4      Opseg: ostali - Boja RGB diode crvena
  } else {
      color(255, 0, 0);   // crvena
  }
  delay(300);
  Serial.print(ocitanavrijednost);
  Serial.println(" C");
  }
  // funcion generator boje
  void color (int crvena, int zelena, int plava) {
    analogWrite(pinLedR, crvena);
    analogWrite(pinLedG, zelena);
    analogWrite(pinLedB, plava);

}

Ispis na SERIAL MONITOR:
Prikaz izmjerene temperature
-40 C
11 C
29 C
91 C
121 C

Index