martes, 29 de octubre de 2019
Esquema del circuito y código
1.//Incluir las siguientes librerías:
#include <IRremote.h> //Librería para el receptor infrarrojo (IR)
#include <Servo.h> //Librería para los servomotores
2.//Declaración de variables y asignación de pines
int valFotorluz;
int valFotorauto;
int valAlarma;
bool nocauto;
bool alarmaon;
bool caron = false;
3.//Entradas/Salidas Analógicas
int Fotorluz = A2;
int Fotorauto = A3;
4.//Entradas/Salidas Digitales
int Elevador1 = 1;
int Elevador2 = 2;
int LuzSala =3;
int PuertaCerrada = 4;
int PuertaAbierta = 5;
int Lampara1 = 6;
int Lampara2 = 7;
int Alarma = 12
5.//Señal del receptor infrarrojo (IR) [INICIO]
int CIR = 9;
IRrecv irrecv(CIR);
decode_results valorIR;
long int codir; //Variable para almacenar el código leído por el receptor infrarrojo (IR)
6.//Señal del receptor infrarrojo (IR) [FIN]
Servo SerAuto;
Servo SerPuerta;
7.//Alarma [INICIO]
int Bocina=11;
int notas[] = {1915, 1014}; //Tonos
int n=0;
int m= 0;
int tnota=100;
int pausa=100;
//Alarma [FIN]
8.//Códigos, control remoto Samsung 31T-016 INICIO
long int CSPOWER =4105841032;
long int CSPMODE =3135877228;
long int CSSMODE =2618744002;
long int CSTVVIDEO =3459683302;
long int CSUNO =3778927144;
long int CSDOS =2908251746;
long int CSTRES =657459652;
long int CSCUATRO =4120482440;
long int CSCINCO =1931099650;
long int CSSEIS =742730860;
long int CSSIETE =1167253836;
long int CSOCHO =1747313982;
long int CSNUEVE =2340753640;
long int CSCERO =3119867746;
long int CSCHSCAN =2479124606;
long int CSSLEEP =1441014914;
long int CSADDDEL =3248603014;
long int CSSURROUND =551334792;
long int CSZOOM =158659426;
long int CSSURF =2424074206;
long int CSMTS =1150532780;
long int CSPSIZE =2308325960;
long int CSTURBO =538772752;
long int CSDISPLAY =1908947622;
long int CSMUTE =591444258;
long int CSMENU =1723810024;
long int CSCHMAS =1595074756;
long int CSCHMENOS =412973352;
long int CSVOLMAS =1752382022;
long int CSVOLMENOS =2209452902;
long int CSPRECH =3398220998;
9.//Códigos, control remoto Samsung 31T-016 FIN
void setup(){
Serial.begin(9600); //Abrie el puerto serie a una velocidad de 9600 bps
irrecv.enableIRIn(); //Inicio del receptor infrarrojo (IR)
pinMode(Elevador1, OUTPUT);
pinMode(Elevador2, OUTPUT);
pinMode(LuzSala, OUTPUT);
pinMode(PuertaAbierta, OUTPUT);
pinMode(PuertaCerrada, OUTPUT);
pinMode(Lampara1, OUTPUT);
pinMode(Lampara2, OUTPUT);
pinMode(Bocina, OUTPUT);
pinMode(Alarma, INPUT);
SerAuto.attach(A4);
SerPuerta.attach(A5);
} //Fin del void setup
void loop() {
10.// Mostrar en el monitor serial el valor recibido por el receptor infrarrojo (IR) [INICIO]
if (irrecv.decode(&valorIR)) //Condición para que se muestre solo cuando es un valor diferente, (cuando se presiona otro botón) Serial.println("El código del botón presionado es: ");
Serial.println(valorIR.value); //Muestra el código del botón presionado en el control remoto
irrecv.resume(); //Recibe el nuevo valor
// Mostrar en el monitor serial el valor recibido por el receptor infrarrojo (IR) [FIN]
codir = valorIR.value; 11.//Asignacion del código leído por el receptor infrarrojo (IR
valFotorluz = analogRead(Fotorluz);
delay(10);
valFotorauto = analogRead(Fotorauto);
delay(10);
valAlarma = digitalRead(Alarma);
delay(10);
if (codir==CSPOWER) {
SerPuerta.write(5);
digitalWrite(PuertaCerrada, HIGH);
digitalWrite(PuertaAbierta, LOW);
digitalWrite(Lampara1, LOW);
digitalWrite(Lampara2, LOW);
digitalWrite(Elevador1, LOW);
digitalWrite(Elevador2, LOW);
nocauto = false;
alarmaon = false;
digitalWrite(LuzSala, LOW);
SerPuerta.write(5);
SerAuto.write(8);
if (codir==CSVOLMAS) {
SerPuerta.write(5);
digitalWrite(PuertaCerrada, HIGH);
digitalWrite(PuertaAbierta, LOW);
if (codir==CSVOLMENOS) {
SerPuerta.write(150);
digitalWrite(PuertaAbierta, HIGH);
digitalWrite(PuertaCerrada, LOW);
if (codir==CSUNO) {
digitalWrite(Lampara1, HIGH);
if (codir==CSCUATRO) {
digitalWrite(Lampara1, LOW);
if (codir==CSDOS) {
digitalWrite(Lampara2, HIGH);
if (codir==CSCINCO) {
digitalWrite(Lampara2, LOW);
if (codir==CSCHMAS) {
digitalWrite(Elevador1, HIGH);
digitalWrite(Elevador2, LOW);
if (codir==CSCHMENOS) {
digitalWrite(Elevador1, LOW);
digitalWrite(Elevador2, HIGH);
if (codir==CSPRECH) {
digitalWrite(Elevador1, LOW);
digitalWrite(Elevador2, LOW);
if (codir==CSNUEVE) {
nocauto = true;
if (codir==CSZOOM) {
nocauto = false;
if (nocauto == true)
{
if (valFotorluz>950) {
digitalWrite(LuzSala, HIGH);
if (valFotorluz<900) {
digitalWrite(LuzSala, LOW);
if (codir ==CSTRES) {
digitalWrite(LuzSala, HIGH);
if (codir == CSSEIS) {
digitalWrite(LuzSala, LOW);
if (valFotorauto>500) {
SerAuto.write(98);
delay(4100);
SerAuto.write(8);
12. //Para abrir la cochera, es necesario presionar primero el boton MTS
if (caron==true){
if (codir == CSMUTE) {
SerAuto.write(98);
delay(4100);
SerAuto.write(8);
caron = false;
if (codir == CSMTS) {
caron = true;
if (valFotorauto<400) {
SerAuto.write(8);
if (codir==CSSURF) {
alarmaon = true;
if (codir==CSDISPLAY) {
alarmaon = false;
}
if (alarmaon==true){
if (valAlarma != 0) {
for(n=0;n<2;n++){
for(m=0;m<=tnota;m++){
digitalWrite(Bocina,HIGH);
delayMicroseconds(notas[n]);
digitalWrite(Bocina,LOW);
delayMicroseconds(notas[n]);
}
13. delay(pausa); //tiempo en silencio entre escalas
}
}
}
} //Fin del void loop
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario