Trabajo Final
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
Iremos conectando los cables como en la imagen mostrada para el uso que le vamos a dar.
Colocar Las Resistencias
Ahora pondremos las resistencias para que nos ayuden con la conexión a tierra de la luz RGB y el LDR.
LDR Y Sensor
Ahora colocamos y conectamos, el LDR y el sensor de temperatura.
RGB Y Servomotor
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);
}