abc Arduino
Voltmetar - RGB dioda sa opsezima napona - switch() 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 :

// Prikaz izmjerenog napona - RGB dioda sa opsezima napona
// 27eLEDRGBpotSwitchFun1
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;
 
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);

switch (ocitanavrijednost) {
case 0:    //  0. Opseg - Boja RGB diode zelena
  color(0, 255, 0);   // zelena
  break;
case 1:    // 1. opseg - Boja RGB diode zuta
  color(255, 255, 0); // zuta
  break;
 
case 2:    // 2. opseg - Boja RGB diode plava
  color(0, 0, 255);   // plava
  break;
 
case 3:   // 3. opseg - Boja RGB diode cijan
  color(0, 255, 255); // cijan
  break;
case 4:   // 4. opseg - 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 izmjerenog napona
0. opseg
1. opseg
2. opseg
3. opseg
4. opseg
4. opseg
3. opseg
2. opseg
1. opseg
0. opseg

Index