Final De Arduino1
En este proyecto, se ha creado un sistema de control y monitoreo domótico aprovechando los conocimientos adquiridos durante el curso de Arduino 1. El propósito principal de este trabajo es demostrar la consolidación de los conocimientos generados a partir de la información impartida durante este curso.
Supplies
1 Servo motor
1 LM35
1 LDR
1 LED RGB
3 Resistencias
14 Cables
1 Placa de pruebas pequeña
1 Arduino UNO
Al tratarse de un trabajo con dos partes, se dividió en dos etapas para realizar el ensamblaje de las piezas correspondientes a la primera consigna.
"Se cuenta con un sensor LDR para monitorear la Luz solar,
esta información de intensidad de luz servirá para el control
de la intensidad de luz de el led RGB. Es decir que, a menor
presencia de luz solar mayor será la intensidad de luz del
led RGB."
Para esto se usó el siguiente código:
#define LDR A0
#define ledRojo 10
#define ledAzul 9
#define ledVerde 11
int valorLDR=0;
void setup(){
pinMode(LDR, INPUT);
pinMode(ledRojo,OUTPUT);
pinMode(ledAzul,OUTPUT);
pinMode(ledVerde,OUTPUT);
Serial.begin(9600);
}
void loop() {
if (valorLDR >= 0 && valorLDR < 300){ //for es para conteo
digitalWrite(ledRojo, HIGH);
digitalWrite(ledVerde, HIGH);
digitalWrite(ledAzul, HIGH);}
//dice que es analog write
if (valorLDR >300 && valorLDR < 600){
digitalWrite(ledRojo, HIGH);
digitalWrite(ledVerde, HIGH);
digitalWrite(ledAzul, LOW);}
if (valorLDR > 600){
digitalWrite(ledRojo, LOW);
digitalWrite(ledVerde, LOW);
digitalWrite(ledAzul, LOW);}
valorLDR = analogRead(LDR);
Serial.print("valor LDR: ");
Serial.println(valorLDR);
}
Posteriormente se realizó un procedimiento similar con la segunda parte del trabajo:
Se cuenta con un sensor LDR para monitorear la Luz solar,
esta información de intensidad de luz servirá para el control
de la intensidad de luz de el led RGB. Es decir que, a menor
presencia de luz solar mayor será la intensidad de luz del
led RGB.
Para esto se usó el siguiente código:
#include <Servo.h>
Servo myservo;
int pos=0;
int valorTMP=0;
float Temperatura;
#define TMP A1
void setup ()
{
myservo.attach (5);
Serial.begin(9600);
}
void loop () {
Temperatura = analogRead(TMP);
float Temp=Temperatura*500;
float TemperaturaC = Temp/1024;
if (TemperaturaC <= 40)
{
pos=0;
}
else if (TemperaturaC > 80)
{
pos=180;
}
else
{
pos=90;
}
delay(1000);
valorTMP = analogRead(TMP);
Serial.print("valor TMP: ");
Serial.println(valorTMP);
myservo.write(pos);
Serial.print("Posicion Servo: ");
Serial.println(pos);
}
Esto dio como resultado el ensamblado del trabajo final, el cual tiene el siguiente código:
#include <Servo.h>
Servo myservo;
int pos=0;
int valorTMP=0;
float Temperatura;
#define TMP A1
#define LDR A0
#define ledRojo 10
#define ledAzul 9
#define ledVerde 11
int valorLDR=0;
void setup(){
pinMode(LDR, INPUT);
pinMode(ledRojo,OUTPUT);
pinMode(ledAzul,OUTPUT);
pinMode(ledVerde,OUTPUT);
myservo.attach (5);
Serial.begin(9600);
}
void loop() {
Temperatura = analogRead(TMP);
float Temp=Temperatura*500;
float TemperaturaC = Temp/1024;
if (TemperaturaC <= 40)
{
pos=0;
}
else if (TemperaturaC > 80)
{
pos=180;
}
else
{
pos=90;
}
delay(1000);
if (valorLDR >= 0 && valorLDR < 300){
digitalWrite(ledRojo, HIGH);
digitalWrite(ledVerde, HIGH);
digitalWrite(ledAzul, HIGH);}
if (valorLDR >300 && valorLDR < 600){
digitalWrite(ledRojo, HIGH);
digitalWrite(ledVerde, HIGH);
digitalWrite(ledAzul, LOW);}
if (valorLDR > 600){
digitalWrite(ledRojo, LOW);
digitalWrite(ledVerde, LOW);
digitalWrite(ledAzul, LOW);}
valorTMP = analogRead(TMP);
Serial.print("valor TMP: ");
Serial.println(valorTMP);
myservo.write(pos);
Serial.print("Posicion Servo: ");
Serial.println(pos);
valorLDR = analogRead(LDR);
Serial.print("valor LDR: ");
Serial.println(valorLDR);
}
Conclusiones
Uno de los aspectos que podría haber generado mayor dificultad fue el cálculo de la temperatura. Para abordar este asunto, se dividió en dos partes esta operación, dicho proceso se puede contemplar en la codificación presentada. En general, el ensamblaje y la codificación se llevaron a cabo de manera rápida, ya que los recursos proporcionados en clase fueron adecuados para nuestras necesidades.