Trabajo Final
![Trabajo Final.JPG](/proxy/?url=https://content.instructables.com/FOA/Y2GZ/LVPO70M1/FOAY2GZLVPO70M1.jpg&filename=Trabajo Final.JPG)
Explicare como armar un sistema Arduino que prende una luz RGB con un LDR e indica el nivel de temperatura con un sensor de temperatura y un servomotor.
Supplies
Usaremos:
- Una luz RGB
- Un servomotor
- Un sensor de temperatura
- 2 resistencias
- 12 cables a más.
Conectar Los Cables
![cables 1.JPG](/proxy/?url=https://content.instructables.com/FD0/I45P/LVPO70P8/FD0I45PLVPO70P8.jpg&filename=cables 1.JPG)
![cables3.JPG](/proxy/?url=https://content.instructables.com/FGX/O6RK/LVPO70PF/FGXO6RKLVPO70PF.jpg&filename=cables3.JPG)
Iremos conectando los cables como en la imagen mostrada para el uso que le vamos a dar.
Colocar Las Resistencias
![cables3.JPG](/proxy/?url=https://content.instructables.com/F38/F5HN/LVPO70QP/F38F5HNLVPO70QP.jpg&filename=cables3.JPG)
![resistencias.JPG](/proxy/?url=https://content.instructables.com/F3S/6K61/LVPO70R0/F3S6K61LVPO70R0.jpg&filename=resistencias.JPG)
Ahora pondremos las resistencias para que nos ayuden con la conexión a tierra de la luz RGB y el LDR.
LDR Y Sensor
![ldr.JPG](/proxy/?url=https://content.instructables.com/FV8/OW36/LVPO70TV/FV8OW36LVPO70TV.jpg&filename=ldr.JPG)
Ahora colocamos y conectamos, el LDR y el sensor de temperatura.
RGB Y Servomotor
![RGB.JPG](/proxy/?url=https://content.instructables.com/FJ6/65C8/LVPO70Y9/FJ665C8LVPO70Y9.jpg&filename=RGB.JPG)
Terminamos colocando y conectando el servomotor acompañado de la luz RGB, el servomotor lo vamos a programar para que funcione entorno al sensor de temperatura y la luz RGB dependiendo del nivel del luz que reciba el LDR.
CODIGO
Dependiendo de como hayan realizado la conexión de los cables y otros factores pueden moldear el codigo al gusto pero yo utilice el siguiente:
int LDR_pin = 0;
int LDR_var = 0;
int pos = 0;
float tempC;
float direc;
#define ledRojo 11
#define ledAzul 10
#define ledVerde 9
#include <Servo.h>
Servo servo_6;
void setup(){
pinMode(A1,INPUT);
pinMode(A0,INPUT);
pinMode(ledRojo, OUTPUT);
pinMode(ledAzul, OUTPUT);
pinMode(ledVerde, OUTPUT);
Serial.begin(9600);
servo_6.attach(6, 500, 2500);
}
void loop(){
tempC = analogRead(A1);
tempC = (5.0 * tempC * 100.0) / 1024.0 - 50; //Formula para calcular grados Celcius
Serial.print("Temperatura:");
Serial.println(tempC);
direc = tempC + 14.97; //Direccion en grados del servomotor
LDR_var = analogRead(A0);
Serial.print("LDR =");
Serial.println(LDR_var);
delay(1000);
if(LDR_var>=0 && LDR_var<=500){
digitalWrite(ledRojo,HIGH);
digitalWrite(ledAzul,HIGH);
digitalWrite(ledVerde,HIGH);
delay(1000);
}else{
digitalWrite(ledRojo,LOW);
digitalWrite(ledAzul,LOW);
digitalWrite(ledVerde,LOW);
delay(1000);
}
servo_6.write(direc);
delay(15);
}