abc Arduino - primjeri /EXAMPLES/
Termometar - Temperaturni senzor i RGB dioda sa opsezima temperature - switch() naredba

Ex.4.1.Termometar - Temperaturni senzor i RGB dioda sa opsezima temperature - switch() naredba.

Opis rješenja: Vrijednosti koje se očitaju analagne vrijednnosti. Oni imaju vrijednosti od 0 do 1023. Za switch() naredbu koristi se 5 vrijednosti (od 0 do 4). Ovo se izvodi naredbom map:
map(((analogRead(analogniulaz) - 20) * 3.04), 0, 1023, 0, 4);
Zavisno od očitane vrijednosti na temperaturnom senzoru mijenja se boja na RGB diodi. Koristi se naredba switch().
Legenda:
- LED ON - uključene LED diode
- LED OFF - isključene LED diode

Šema povezivanja: Ispis

Elementi:
- RGB LED dioda 1 kom;
- Otpornik 220 Ω 3 kom;
- Temperaturni senzor
- Arduino modul.

Listing programa :

// Termometar  senzor i RGB dioda sa opsezima temperature - switch() naredba
// 21eTermometarRGBswithc1
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, 0, 4);

switch (ocitanavrijednost) {
case 0:    //  Opseg: gr0 - < gr1 - Boja RGB diode zelena
  color(0, 255, 0);   // zelena
  break;
case 1:    //   Opseg: gr1 - < gr2 - Boja RGB diode zuta
  color(255, 255, 0); // zuta
  break;
 
case 2:    //    Opseg: gr2- < gr3 - Boja RGB diode plava
  color(0, 0, 255);   // plava
  break;
 
case 3:   //     Opseg: gr3- < gr4 - Boja RGB diode cijan
  color(0, 255, 255); // cijan
  break;
case 4:   //   > gr4      Opseg: ostali - Boja RGB diode crvena
  color(255, 0, 0);   // crvena
  break;
}

  delay(300);
  Serial.print(ocitanavrijednost);
  Serial.println(". opseg");
}

  // 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
0. opseg
1. opseg
2. opseg
3. opseg
4. opseg
3. opseg
2. opseg
1. opseg
0. opseg

Index