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
|
|
|
|