Trata de una oficina donde es controlada la iluminación y la
ventilación del mismo por sensores. Para ello, se utilizan la fotocelda que
detectará el cambio de la luz. Si la intensidad lumínica es menor o igual que 50, entonces encenderá dos luces led, que
simulan los bombillos de la oficina. Caso contrario se apagarán automáticamente.
Otro elemento es un sensor de
temperatura que se encarga de controlar el encendido del ventilador de la
oficina. En esta simulación, si es mayor que 23 °C, entonces se activará. Mientras
esto no suceda se apagará automáticamente.
Justificación del Proyecto:
En cuanto a la iluminación:
Una iluminación inadecuada puede
originar fatiga ocular, cansancio, dolor de cabeza, estrés y accidentes.
Trastornos oculares: dolor e inflamación en los
párpados, fatiga visual, pesadez, lagrimeo, enrojecimiento, irritación, visión
alterada.
Cefalalgias: Dolores de cabeza. Ocasionalmente,
el médico tratante debe revisarlos para detectar si es la iluminación la que
los causa.
Fatiga: Falta de energía, agotamiento. Cuando es
causada por la iluminación, una persona que se levanta con energías, las pierde
fácilmente. Si la persona está agotada por estrés o falta de sueño, la fatiga
se extiende por todo el día. El médico debe revisar otros factores adicionales
a la luz.
Efectos anímicos: Falta de concentración y de
productividad, baja atención y desánimo.
En cuanto a la temperatura:
Sabemos que la temperatura es uno de los
factores que más influye en nuestro bienestar laboral.
Los trabajadores consideran que
la temperatura en la que desarrolla su trabajo es inadecuada (demasiado frío o
demasiado calor), esto repercute negativamente en su rendimiento y reivindica que la
climatización es uno de los ámbitos que deben mejorar a corto plazo en su
entorno de trabajo.
Plantilla Implementación:
Logros:
Diseño del proyecto.
Completar la programación del proyecto.
Dificultades:
No hemos programado un motor, por lo cual tuve que programar el servo,
pero que en su funcionamiento no está la rotación de 360°, por ello intenté que
hiciera un giro hacia adelante y hacia atrás como simulación de su activación.
Plantilla Implementación:
Programación:
#include <Servo.h> //Se incluyen librerias de servoServo servo1; //Constructor de la setencia del servo
int puertoservo = 10; //variable para madar datos al servo
int sensorPin= A0; //Puerto Sensor de Temperatura
int pinAmarillo = 5; //Puerto Led Amarilla
int pinAzul = 6; //Puerto Led Azul
const int ldrPin= A1; //Puerto fotocelda
int grados; //Variable para guardar los grados de ángulo del servo
int tmp=0; //Variable temporar para usar en la condicional
int pulsominimo=650; //Variable que define el ángulo menor del servo
int pulsomaximo=2550; //Varible que define el ángulo mayor del servo
void setup()
{
servo1.attach (puertoservo,pulsominimo,pulsomaximo); //el Servomotor recibe los pulsos
pinMode (sensorPin, INPUT); //Declaración de puerto como entrada
pinMode (pinAmarillo, OUTPUT); //Declaración de puerto como salida
pinMode (pinAzul, OUTPUT); //Declaración de puerto como salida
pinMode (ldrPin, INPUT); //Declaración de puerto como entrada
Serial.begin(9600);
}
void loop()
{
grados=servo1.read(); //Lectura de grados por el Servomotor
int value = analogRead(sensorPin); //Almacenamiento de valores obtenidos por el sensor de temperatura
float Fahrenheit = (5.0*(value)* 100 /1024 ); //Conversión de valores a Fahrenhit
float Celsius = ((Fahrenheit-32)*5)/9; //Conversión de grados Fahrenhit a Celsius.
Serial.print("Temperatura °C: " ); //Impresión de etiqueta "Temperatura °C:" a monitor
// serial.
Serial.println (Celsius); //Impresión de temperatura en monitor serial
delay(1000);
float tmp=0;
int ldrStatus = analogRead(ldrPin); //Lectura de valores brindados por fotocelda.
if (ldrStatus <=50) //Condición para encendido de luces Led (Luminosidad menor o igual a 50)
{
digitalWrite (pinAmarillo, HIGH); //Enciende Leds
digitalWrite (pinAzul, HIGH);
delay (100);
}
else //Si no se cumple (Luminosidad mayor que 50)
{
digitalWrite (pinAmarillo, LOW); //Apaga las Leds.
digitalWrite (pinAzul, LOW);
delay (100);
}
if (Celsius>=23) //Condición para encendido de Servomotor (Temperatura mayor o igual a 23 °C)
{ //Enciende el ventilador (Servomotor)
tmp = 0; //Se asigna valor de 0 a tmp
servo1.write (tmp); //Servomotor hace lectura de tmp
delay (200); //Espera
tmp = 180; //Se asigna valor de 180 a tmp
servo1.write (tmp); //Servomotor hace lectura de tmp
delay (200); //Espera
}
else //Si no se cumple (Temperatura menor a 23 °C)
{ //Apaga el ventilador (Servomotor)
tmp=0; //Sino se cumple se asigna valor a tmp de 0
delay (100);
}
}


No hay comentarios:
Los comentarios nuevos no están permitidos.