23 de nov. 2016

Domótica. Il·luminació

Aquest trimestre estem fent un projecte de domótica. La Cristina i jo (Eli) estem treballant la il·luminació.

El nostre programa consisteix en que els llums de casa, fets amb Leds, s'encenguin més o menys en funció del nivell de llum natural, rebut per un sensor fet amb LDR.

A partir d'un cert valor de llum mínim rebut pel sensor, que hem fixat en 200, els Leds s'encendran al màxim, i a partir d'un valor de llum màxim, que hem fixat en 900, s'apagaran.
Per a valors intermedis del sensor, els Leds s'encendran en proporció inversa a aquests valors.

Aquí us deixo el nostre programa:
int pinsensor = A0;
int pinled = 11;
int lectura, intensitat; 
int dia = 900;
int nit = 200;

void setup() 
{
  pinMode (pinled,OUTPUT);
  Serial.begin (9600); // per depuració
}

void loop() 
{
  // llegeix el valor del sensor:
  lectura = analogRead(pinsensor);

  // assigna valor a la sortida analògica:
  if (lectura < nit)
  { intensitat = 255; }
  else if (lectura > dia)
  { intensitat = 0; }
  else
  { intensitat = map (lectura, dia, nit, 0, 255); }

  // treu el senyal:
  analogWrite(pinled,intensitat);

  // monitorització per depuració:
  Serial.print ("llum natural = ");
  Serial.print (lectura_llum);
  Serial.print (" | llum artificial = ");
  Serial.println (llum_artificial);
  delay(100);
}
Al vídeo podeu veure les connexions i el funcionament:

Cap comentari:

Publica un comentari a l'entrada