abc Arduino
Sensor TMP36 Temperature /SENSOR TMP36 TEMPERATURE/

4.1.. Sensor TMP36 Temperature /SENSOR TMP36 TEMPERATURE/ omogućuje očitavanje temperature.

Opis rješenja: Opsezi za ovaj primjer su

Opseg Početna temperatura Krajnja temperatura Opseg
1   do 19  
2 20 49 30
3 50 79 30
4 preko 80    

 

Šema povezivanja: Ispis vrijednosti promjene temperature

Elementi:
- Sensor TMP36 Temperature 1 kom;
- LED dioda 3 kom;
- Otpornik 220 Ω 3 kom;
- Arduino modul.

Listing programa :

// Sensor TMP36 Temperature /SENSOR TMP36 TEMPERATURE/ 
int pinGreen = 2;   // pin za LED zeleni
int pinBlue = 3;   // pin za LED plavi
int pinYell = 4;   // pin za LED zuti
int baselineTemp = 0;
int korak = 30;
int celsius = 0;
int fahrenheit = 0;

void setup()
{
  pinMode(A0, INPUT);
  Serial.begin(9600);

  pinMode(pinGreen, OUTPUT);  // LED zelena
  pinMode(pinBlue, OUTPUT);   // LED plava
  pinMode(pinYell, OUTPUT);   // LED zuta
}

void loop()
{
  baselineTemp = 20;  // osnovna temperatura
  
  celsius = map(((analogRead(A0) - 20) * 3.04), 0, 1023, -40, 125);
  
  fahrenheit = ((celsius * 9) / 5 + 32);
  Serial.print(celsius);
  Serial.print(" C, ");
  Serial.print(fahrenheit);
  Serial.println(" F");
  
   if (celsius < baselineTemp) {  // ispod osnovne temperatura
    digitalWrite(pinGreen, LOW);
    digitalWrite(pinBlue, LOW);
    digitalWrite(pinYell, LOW);
  }
  if (celsius >= baselineTemp && celsius < baselineTemp + korak) {
    digitalWrite(pinGreen, HIGH);
    digitalWrite(pinBlue, LOW);
    digitalWrite(pinYell, LOW);
  }
  if (celsius >= baselineTemp + korak && celsius < baselineTemp + 2 * korak) {
    digitalWrite(pinGreen, HIGH);
    digitalWrite(pinBlue, HIGH);
    digitalWrite(pinYell, LOW);
  }
  if (celsius >= baselineTemp + 2 * korak && celsius < baselineTemp + 3 * korak) {
    digitalWrite(pinGreen, HIGH);
    digitalWrite(pinBlue, HIGH);
    digitalWrite(pinYell, HIGH);
  }
  if (celsius >= baselineTemp + 3 * korak) {
    digitalWrite(pinGreen, HIGH);
    digitalWrite(pinBlue, HIGH);
    digitalWrite(pinYell, HIGH);
  }
  delay(1000); 
}

Index