Plantilla de Inspiración
I Etapa
Plantilla de Implementación
II Etapa
Proyecto Final
Descripción
La alarma esta conformada por 2 sensores, el sensor ultrasonico que detecta la distancia a la que se encuentra el intruso de la casa y la fotocelda que al momento de hacerse de noche enciende las luces.
Además cuenta con 2 tipos de actuadores, el piezo que se encarga de emitir un sonido al momento que el intruso se encuentra muy cerca de la casa y las luces led que interactúan con el sensor ultasonico y con la fotocelda.
Video
Programación
Mi proyecto final está basado en la necesidad de tener más
seguridad en nuestros hogares, la cual podemos lograr por medio de alarmas.
En este caso usaremos una alarma que mida la distancia a la
que se encuentra un intruso de nuestra casa, la cual hará tres medidas:
- Cuando el intruso se encuentra afuera de la propiedad se encenderá una luz verde.
- Cuando el intruso se encuentra dentro de la propiedad se encenderá una luz amarilla.
- Cuando el intruso se encuentra cerca de la casa se encenderá una luz roja y además se activará la alarma de sonido.
La alarma esta conformada por 2 sensores, el sensor ultrasonico que detecta la distancia a la que se encuentra el intruso de la casa y la fotocelda que al momento de hacerse de noche enciende las luces.
Además cuenta con 2 tipos de actuadores, el piezo que se encarga de emitir un sonido al momento que el intruso se encuentra muy cerca de la casa y las luces led que interactúan con el sensor ultasonico y con la fotocelda.
Luces LED:
Se colocan 3 led en la protoboard, con una resistencia de 330 Ω para
cada una, que serán colocadas en la misma línea del terminal más largo de cada
led, además de un cable para cada uno en la misma línea que serán conectados con los pines de la tarjeta Arduino (3,4,5), la terminal más corta se conectará mediante cables al polo negativo de
la protoboard,
Fotocelda:
Colocamos la fotocelda en la protoboard en el mismo bus de una de las terminales colocamos una resistencia y un cable que se conectará al pin A0 de la tarjeta, en la otra terminal de la fotocelda colocamos otro cable hacia el pin de 5V y al otro extremo de la resistencia un cable hacia tierra o GND de la tarjeta Arduino.
Colocamos la fotocelda en la protoboard en el mismo bus de una de las terminales colocamos una resistencia y un cable que se conectará al pin A0 de la tarjeta, en la otra terminal de la fotocelda colocamos otro cable hacia el pin de 5V y al otro extremo de la resistencia un cable hacia tierra o GND de la tarjeta Arduino.
Sensor ultrasónico:
Para la conexión del sensor ultrasónico lo colocamos en la
protoboard en un lugar sin obstáculos, este sensor cuenta con cuatro terminales
las cuales de vamos a conectar mediante cables al polo negativo y positivo de
la protoboard uniendo la terminal GND al bus negativo de la protoboard y la
terminal VCC al bus positivo, las terminales ECHO Y TRIGGER se conectan a la
tarjeta Arduino, La terminal ECHO con el pin 12 y la terminal TRIGGER con el
pin 11.
Piezo:
Colocamos el piezo en la protoboard, de sus terminales
conectamos una con en bus negativo de la protoboard y el otro al pin 2 de la
tarjeta arduino.
Programación
#include <pitches.h>
int ldrPin = A0;
//Pin de la fotocelda//
int verde = 5;
//Pin led verde//
int amarillo = 3;
//Pin led amarillo//
int rojo = 4;
//Pin led rojo//
int trig = 11;
//Pin del salida trigger//
int echo = 12;
//Pin de entrada echo//
int piezo = 2;
//Pin del piezo//
float disCalculada;
//Guarda el valor para distancia//
void setup()
{
pinMode(ldrPin,INPUT); //Pin
de entrada//
pinMode(verde,
OUTPUT); //Pin de salida//
pinMode(amarillo,
OUTPUT); //Pin de salida//
pinMode(rojo,
OUTPUT); //Pin de salida//
pinMode (trig,
OUTPUT); //Pin de salida//
pinMode (echo,
INPUT); //Pin de entrada//
pinMode (piezo,
OUTPUT); //Pin de salida//
Serial.begin
(9600);
}
void loop()
{
int ldrStatus =
analogRead(ldrPin); //Lee el valor de
la fotocelda//
disCalculada = calcularDistancia
(); //Procedimiento que imprime en el
monitor//
Serial.println("-------");
Serial.print("cm :");
Serial.println(disCalculada);
//Imprime en la siguiente linea//
delay(200);
if (ldrStatus
<=50) //Condicional si distancia
menor o igual a 50//
{
digitalWrite(verde, HIGH);
//Led encendido//
digitalWrite(amarillo,
HIGH);
digitalWrite(rojo,
HIGH);
Serial.println("LDR is DARK, LED is ON");
}
else if
(disCalculada < 10) //Condicional
si distancia menor a 10//
{
digitalWrite(verde, HIGH);
digitalWrite(amarillo, HIGH);
digitalWrite(rojo,
HIGH);
tone(piezo,300,200); //Sonido
que emite el piezo//
}
else if
((disCalculada > 10)&&(disCalculada < 15)) //Condicional si distancia mayor a 10 y
menor a 15//
{
digitalWrite(amarillo, HIGH);
//Led encendido//
noTone
(piezo); //Piezo apagado//
}
else if
((disCalculada > 15)&&(disCalculada < 20)) //Condicional si distancia mayor a 15 y
menor a 20//
{
digitalWrite(verde, HIGH);
noTone (piezo);
}
else //si no se cumple la condicion//
{
digitalWrite(verde, LOW);
//Led apagado//
digitalWrite(amarillo, LOW);
digitalWrite(rojo,
LOW);
noTone (piezo);
}
delay (10); //Espera//
}
//Procedimiento para calcular distancia//
int calcularDistancia ()
{
long distancia;
long duracion;
digitalWrite
(trig,LOW); //Apagado//
delayMicroseconds (4); //Pausa//
digitalWrite
(trig,HIGH); //Encendido//
delayMicroseconds
(10);
digitalWrite
(trig,LOW);
duracion = pulseIn
(echo, HIGH);
duracion =
duracion/2;
distancia =
duracion/29;
return distancia;
}
Tenía la idea de lo que quería logra y aunque me ayude mucho con las prácticas anteriores me costó un poco lo de usar varias condicionales porque no funcionaban, probando y acomodando las programaciones logre resolverlo y al final funcionó como lo deseaba.
Espero que con la práctica se me haga más fácil y pueda resolver más retos futuros.
No hay comentarios:
Publicar un comentario