#include <SoftwareSerial.
h> // Incluimos la librería SoftwareSerial
SoftwareSerial BT(3,4); // Definimos los pines RX y TX del Arduino conectados al
Bluetooth
#include <Servo.h> //incluimos la libreria del servomotor (puerta y garage)
Servo motor;//entrada pin 7 garage
int val2;
//declaramos los pines a usar para la salida de los leds
int foco1 = 13;
int foco2 = 12;
int foco3 = 11;
int foco4 = 10;
int dato; //variable para el caracter enviado por bluetooth
int ledldr=2;
int sensorReading;//Pin análogo en espera para sensor de los postes
int sirena = 9;
int magnetico = 8;
int proximidad= 5;
int estado; //variable para la lectura del sensor proximidad
int estado2; //variable para la lectura del sensor magnetico
//pines y variables a usar para el servomotor(puerta)
Servo ServoAndroid; //nombre para el servo motor puerta
int ang = 125; //Ángulo inicial 90 grados
int vel=50; //velocidad del servo motor
int x=0;
void setup(){
//declaramos salidas a los focos
pinMode(foco1, OUTPUT);
pinMode(foco2, OUTPUT);
pinMode(foco3, OUTPUT);
pinMode(foco4, OUTPUT);
pinMode(ledldr, OUTPUT);
pinMode(proximidad,INPUT);
pinMode(sirena, OUTPUT); //salida del zumbador
[Link](6); //pin del servomotor puerta
[Link](9600); // Inicializamos el puerto serie BT que hemos creado
[Link](9600); //velocidad de comunicacion del puerto serial
[Link](7); //pin del servomotor garage
void loop(){
funcionproximidad();
funcionbluetooth();
funcionfotocelda();
funcionsirena();
}
void funcionproximidad(){
estado = digitalRead(proximidad); //leemos el dato que envia el sensor
[Link](36);
if (estado==LOW){ //si el sensor esta abierto
[Link](40);
delay(200);
[Link](45);
delay(200);
[Link](50);
delay(200);
[Link](55);
delay(200);
[Link](60);
delay(200);
[Link](65);
delay(200);
[Link](70);
delay(200);
[Link](75);
delay(200);
[Link](80);
delay(200);
[Link](85);
delay(200);
[Link](90);
delay(200);
[Link](95);
delay(200);
[Link](100);
delay(200);
[Link](105);
delay(200);
[Link](110);
delay(200);
[Link](115);
delay(8000);
[Link](110);
delay(200);
[Link](105);
delay(200);
[Link](100);
delay(200);
[Link](95);
delay(200);
[Link](90);
delay(200);
[Link](85);
delay(200);
[Link](80);
delay(200);
[Link](75);
delay(200);
[Link](70);
delay(200);
[Link](65);
delay(200);
[Link](60);
delay(200);
[Link](55);
delay(200);
[Link](50);
delay(200);
[Link](45);
delay(200);
[Link](40);
delay(200);
[Link](36);
}
}
void funcionsirena(){
estado = digitalRead(magnetico); //leemos el dato que envia el sensor magnetico
de la ventana
if (estado==HIGH){ //si el sensor esta abierto
for(x=0; x<8; x++){
digitalWrite(sirena,HIGH);
delay(150);
digitalWrite(sirena,LOW);
delay(20);
else //si el sensor esta cerrado
{
digitalWrite(sirena, LOW); //apagamos el pito
}
}
void funcionbluetooth(){
if([Link]() >0 ){ // "Si se detecta una entrada"
dato = [Link](); //leemos la entrada en la variable dato
}
if (dato == '1'){ //si se envia el numero 1 comienza la condicion
ang = ang + 92 ; //Se aumenta el angulo en 95 grados
//[Link](ang); //Se envia el valor al celular
}
else if (dato == '2'){ //si se envia el numero 2 comienza la condicion
ang = ang - 92; //Se disminuye en 95 grados
ang = constrain(ang,33,125); //Se limita los valores del angulo
[Link](ang); //Se ingresa el valor de "ang" en el Servo
////////////////////////////////////////////////////////////////////////
/////////////////////////////////////focos/////////////////////////////
//si se envia la letra asignada comienza la condicion HIGH para prender el led, y
LOW para apagar
if(dato == 'A'){
digitalWrite(foco1, HIGH);
}
else if(dato == 'a'){
digitalWrite(foco1, LOW);
}
if(dato == 'B'){
digitalWrite(foco2, HIGH);
}
else if(dato == 'b'){
digitalWrite(foco2, LOW);
}
if(dato == 'C'){
digitalWrite(foco3, HIGH);
}
else if(dato == 'c'){
digitalWrite(foco3, LOW);
}
if(dato == 'D'){
digitalWrite(foco4, HIGH);
}
else if(dato == 'd'){
digitalWrite(foco4, LOW);
}
if(dato == '5'){
digitalWrite(sirena,HIGH);
delay(150);
digitalWrite(sirena,LOW);
delay(20);
digitalWrite(sirena,HIGH);
delay(150);
digitalWrite(sirena,LOW);
delay(20);
digitalWrite(sirena,HIGH);
delay(150);
digitalWrite(sirena,LOW);
delay(20);
digitalWrite(sirena,HIGH);
delay(150);
digitalWrite(sirena,LOW);
delay(20);
digitalWrite(sirena,HIGH);
delay(150);
digitalWrite(sirena,LOW);
delay(20);
digitalWrite(sirena,HIGH);
delay(150);
digitalWrite(sirena,LOW);
delay(20);
}
else if(dato == '6'){
digitalWrite(sirena, LOW);
}
}
void funcionfotocelda(){
sensorReading=analogRead(0); //Instrucción para obtener dato analógico de la
fotocelda
////condicion cuando hay señal del sensor se prende el foco de los postes caso
contrario se apaga
if (sensorReading<100){
digitalWrite(ledldr,HIGH);}
else digitalWrite(ledldr,LOW);
[Link](sensorReading);