#include <VirtualWire.h> //Libreria para los sensores RF
#include <LowPower.h>
//Botones primer paso conectados en paralelo.
int boton=10; //Pin 11 digital para dos pulsadores en paralelo. pin 2 en la interrupcion "0"
int boton1=11; //Pin 12 digital para dos pulsadores en paralelo. pin 3 en la interrupción "1"
int lectura; //Variable creada para almacenar la lectura de los dos primeros pulsadores en paralelo.
int lectura1; //Variable almacenar lectura de los segundos pulsadores conectados en paralelo.
//int led1=2; //Pines de arduino para cada led.
int led2=3;
int led3=4;
int led4=5;
int led5=6;
int led6=7;
int led7=8;
int led8=14; //Pin ánalogico convertido a digital.*/
int buzzer=9; // pin asignado al buzzer.
int t=150;
int t1=300;
int t2=500; //tiempo para el buzzer.
const int wakeUpPin = 2;//Instrucciones para la interrupción
int contador = 0;
int n = contador ;
[b][/b][u][b][i][/i][/b][/u]
void setup()
{
//Iniciamos el Serial y la comunicación por radiofrecuencia.
Serial.begin(9600);
Serial.write("Sistema encendido\n");
vw_setup(2000);
pinMode(boton, INPUT); //Configuramos como entradas los pines 10 y 11, cada pin para cada par de pulsadores.
pinMode(boton1, INPUT);
pinMode( wakeUpPin, INPUT);
// pinMode(2, OUTPUT); //Configuramos como salidas los pines 4, 5, y 6 de arduino para los leds
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(14, OUTPUT);
pinMode(9, OUTPUT); //Configuramos como salida el pin 9 para el buzzer.
digitalWrite(9, HIGH); //Buzzer activo tres pitidos solo al inicio.
digitalWrite(6, HIGH);
digitalWrite(5, HIGH);
delay (t1);
digitalWrite(9, LOW);
digitalWrite(6, LOW);
digitalWrite(5, LOW);
delay (t1);
digitalWrite(9, HIGH);
digitalWrite(7, HIGH);
digitalWrite(4, HIGH);
delay (t1);
digitalWrite(9, LOW);
digitalWrite(7, LOW);
digitalWrite(4, LOW);
delay (t1);
digitalWrite(9, HIGH);
digitalWrite(8, HIGH);
digitalWrite(3, HIGH);
delay (t1);
digitalWrite(9, LOW);
digitalWrite(8, LOW);
digitalWrite(3, LOW);
delay (t1);
digitalWrite(9, HIGH);
digitalWrite(14, HIGH);
digitalWrite(2, HIGH);
delay(t1);
digitalWrite(9, LOW);
digitalWrite(14, LOW);
//digitalWrite(2, LOW);
delay(t1);
}
void loop ()
{
attachInterrupt( 0, servicioBoton, FALLING);
LowPower.powerDown(SLEEP_FOREVER, ADC_OFF, BOD_OFF);
detachInterrupt(0);
if (n != contador){
lectura=digitalRead(boton); //pulsador B de activación de alarma.
if(lectura==1){
digitalWrite(9, HIGH); //Buzer activo tres pitidos solo al inicio.
//digitalWrite(2, HIGH);
delay (t2);
digitalWrite(9, LOW);
//digitalWrite(2, LOW);
delay (t2);
digitalWrite(9, HIGH);
digitalWrite(3, HIGH);
delay (t2);
digitalWrite(9, LOW);
digitalWrite(3, LOW);
delay (t2);
digitalWrite(9, HIGH);
digitalWrite(4, HIGH);
delay (t2);
digitalWrite(9, LOW);
digitalWrite(4, LOW);
delay (t2);
digitalWrite(9, HIGH);
digitalWrite(5, HIGH);
delay (t2);
digitalWrite(9, LOW);
digitalWrite(5, LOW);
delay (t2);
digitalWrite(9, HIGH);
digitalWrite(6, HIGH);
delay (t2);
digitalWrite(9, LOW);
digitalWrite(6, LOW);
delay (t2);
digitalWrite(9, HIGH);
digitalWrite(7, HIGH);
delay (t2);
digitalWrite(9, LOW);
digitalWrite(7, LOW);
delay(t2);
digitalWrite(9, HIGH);
digitalWrite(8, HIGH);
delay(t2);
digitalWrite(9, LOW);
digitalWrite(8, LOW);
delay(t2);
}
}
while(lectura==1) //Alarma comienza a funcionar intermitentemente.
{
//digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
digitalWrite (14, HIGH);
delay(t);
//digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(14, LOW);
delay(t);
//digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
digitalWrite (14, HIGH);
delay(t);
//digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(14, LOW);
delay(t2);
send("Encender"); //Envia mensaje a la torre receptora para que se encienda.
delay(500);
lectura1=digitalRead(boton1); //Pulsador A
if(lectura1==1) //S
{
//digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(14, LOW);
send("Apagar");
break;
}
n = contador ;
Serial.flush();
}
delay(1000);
}
//Función para enviar el mensaje al receptor RF
void send (char *message)
{
vw_send((uint8_t *)message, strlen(message)); //Envia el mensaje
vw_wait_tx(); //Espera hasta que se haya acabado de transmitir todo
Serial.println(message); //Muestra el mensaje por Serial
}
void servicioBoton()
{
contador++ ;
}
Y como adivinamos cual es el error si no te explicas?
UPS!! Pues se ha borrado el resto del mensaje.