abc Arduino - primjeri /EXAMPLES/
Termometar od 5 LED dioda sa opsezima temperature

Ex.4.1. Termometar od 5 LED dioda sa opsezima temperature.

Opis rješenja: Opsezi za ovaj primjer su -40, -3, 24, 81, 111, 125 oC
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 od 5 LED dioda sa opsezima temperature
// 21eTermometarLED5x
int analogniulaz = A5;
int led1 = 5;
int led2 = 6;
int led3 = 9;
int led4 = 8;
int led5 = 7;
int ocitanavrijednost = 0;
int gr0 = -40;  // temperaturne granice
int gr1 = -3;
int gr2= 24;
int gr3 = 81;
int gr4 = 111;

void setup() {
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
  pinMode(led4, OUTPUT);
  pinMode(led5, OUTPUT);
 
  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
  if ((ocitanavrijednost>= gr0) && (ocitanavrijednost < gr1)) {
    digitalWrite(led1, HIGH);
    digitalWrite(led2, LOW);
    digitalWrite(led3, LOW);
    digitalWrite(led4, LOW);
    digitalWrite(led5, LOW);
   
  // Opseg: gr1 - < gr2
  } else if ((ocitanavrijednost>=gr1) && (ocitanavrijednost < gr2)) {
    digitalWrite(led1, HIGH);
    digitalWrite(led2, HIGH);
    digitalWrite(led3, LOW);
    digitalWrite(led4, LOW);
    digitalWrite(led5, LOW);  

    //  Opseg: gr2- < gr3
  } else if ((ocitanavrijednost>= gr2) && (ocitanavrijednost < gr3)) {
    digitalWrite(led1, HIGH);
    digitalWrite(led2, HIGH);
    digitalWrite(led3, HIGH);
    digitalWrite(led4, LOW);
    digitalWrite(led5, LOW);  
   
    // Opseg: gr3- < gr4
  } else if ((ocitanavrijednost>= gr3) && (ocitanavrijednost < gr4)) {
    digitalWrite(led1, HIGH);
    digitalWrite(led2, HIGH);
    digitalWrite(led3, HIGH);
    digitalWrite(led4, HIGH);
    digitalWrite(led5, LOW);
   
    // > gr4      Opseg: ostali
  } else {
    digitalWrite(led1, HIGH);
    digitalWrite(led2, HIGH);
    digitalWrite(led3, HIGH);
    digitalWrite(led4, HIGH);
    digitalWrite(led5, HIGH);
  }
  delay(300);
  Serial.print(ocitanavrijednost);
  Serial.println(" C");
}

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

Index