20 d’abr. 2015

Indicador de climatització

Encesa digital de LED RGB en funció del valor analògic mesurat per sensor de temperatura fet amb resistència NTC (termistor): En funció dels llindars de calor i de fred establerts, s’activa un o altre dels pins de connexió del LED i s’encén de color vermell (indicador de calefacció en marxa), blau (indicador de refrigeració) o verd (indicador de standby, climatització no necessària per temperatura dins la zona de confort).



Definició de valors al programa:
int R = 10; // pin de connexió vermell led
int G = 11 ;  // pin de connexió verd led
int B = 12;  // pin de connexió llau led
int sensor_temperatura = A1;  // pin de connexió sensor
int llindar_fret = 670;  // valor sensor per sota del qual fa fret
int llindar_calor = 710;  // valor sensor per sobre del qual fa calor


Comprobem el funcionament dels LEDs:
Fem un blink encenent un color cada cop per comprobar que els pins són correctes i/o les connexions:
void setup() 
{                
  pinMode(R,OUTPUT);     
  pinMode(G,OUTPUT); 
  pinMode(B,OUTPUT); 
}

Comprobem els valors del sensor de temperatura per decidir els llindars:
void setup()
{
 Serial.begin (9600); //comunicació sèrie
}

void loop() 
{
  int temperatura = analogRead(sensor_temperatura);
  Serial.println(temperatura); 
  delay(100);
}

Idea de programació:

Si la temperatura està per sota del llindar_fret s'ha d'encendre la calefacció (led vermell), si està per sobre del llindar_calor s'ha d'encendre la refrigeració (led blau), si no s'ha d'encendre el led verd:
void loop() 
{
  int temperatura = analogRead(sensor_temperatura);
  //Serial.println(temperatura);
  if (temperatura < llindar_fret)
  {
    digitalWrite(R, HIGH); //led vermell encés (calefacció)
    digitalWrite(G, LOW);
    digitalWrite(B, LOW);
  }
  else
  {
    if (temperatura > llindar_calor)
    {
      digitalWrite(R, LOW); 
      digitalWrite(G, LOW); 
      digitalWrite(B, HIGH); // led blau encés (refrigeració)
    }
    else
    {
      digitalWrite(R, LOW); 
      digitalWrite(G, HIGH); // led verd encés (standby)
      digitalWrite(B, LOW); 
    }  
  //delay(100);
  }
}

Cap comentari:

Publica un comentari a l'entrada