abc Arduino
Voltmetar - RGB dioda sa opsezima napona - if else naredba

27.1.. Voltmetar - RGB dioda sa opsezima napona - if else naredba. Vrijednosti napona na potenciometru se očitvajau na analognom ulazu.

Opis rješenja: Vrijednosti na analognom ulazu su od 0 do 1023. One se konvertuju u 5 vrijednosti (0, 1, 2, 3 i 4) naredbom:
map(analogRead(analogniulaz), 0, 1023, 0, 4); Ovih 5 vrijednosti predstavljaju granice koje se naredbom if else koriste kao granice, postavljaju parametri za LED RGB diodu te poziva potprogram za prikaz izabrane boje.

Šema povezivanja: Ispis:

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

 

Listing programa :

// Voltmetar - RGB dioda sa opsezima napona - if else naredba
// 27eLEDRGBpotIfFun1
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 = 0;  // temperaturne granice
int gr1 = 1;
int gr2 = 2;
int gr3 = 3;
int gr4 = 4;

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 izmjerenog napona");
}

void loop() {
  ocitanavrijednost = map(analogRead(analogniulaz), 0, 1023, 0, 4);
 
  //  Opseg: gr0 - =  gr0) && (ocitanavrijednost < gr1)) {
    color(0, 255, 0);   // zelena
  //   Opseg: gr1 - < gr2
  } else if ((ocitanavrijednost>=gr1) && (ocitanavrijednost< gr2)) {
     color(255, 255, 0); // zuto

    //    Opseg: gr2- < gr3
  } else if ((ocitanavrijednost>= gr2) && (ocitanavrijednost< gr3)) {
    color(0, 0, 255);   // plava
   
    //     Opseg: gr3- < gr4
  } else if ((ocitanavrijednost>= gr3) && (ocitanavrijednost< gr4)) {
      color(0, 255, 255); // cijan
   
    //   > gr4      Opseg: ostali
  } else {
      color(255, 0, 0);   // crvena
  }
  delay(300);
  Serial.print(ocitanavrijednost);
  Serial.println(" V");
  }
  // 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 izmjerenog napona
0 V
1 V
2 V
3 V
4 V
4 V
3 V
2 V
1 V
0 V

Index