ALARMA - Arduino - 3 PIRs
Versiones para lcd 1604 y 2004 I2C
Sensores de Apertura e Infrarrojos
Control por teclado (keypad) y por Mando Remoto
PCB alimentación y conexiones
LCD 2004
V I D E O
Materiales :
- Arduino Uno, Nano, Mini, Mega, etc.
- LCD 1602 ó 2004 I2C
- Keypad 3x4
- PIR sensores (3) (tiempo al mínimo, sensibilidad la necesaria)
- Receptor 433Mhz (para grabar el mando Emisor 433Mhz)
- Leds rojo y verde (unir anodo+ con catodo- y conectar al A1)
- Resistencias 220 ó 330 ohms (2)
- Buzzer 5v
- Mando Remoto 433Mhz (3 ó 4 botones)
- Relé de 5v (o transistor BD139 para sirena 12v)
- Sirena (pequeña de 12v o grande a 220v)
Conexiones :
A0 - Interruptores Magnéticos
A1 - LEDs rojo y verde
A2 - Relé de 5v para Sirena
A3 - Buzzer
A4 - LCD SDA
A5 - LCD SCL
D2 - Receptor 433Mhz data
D3 - PIR1
D4 - PIR2
D5 - PIR3
D6 - 1 Keypad
D7 - 2 "
D8 - 3 "
D9 - 4 "
D10 - 5 "
D11 - 6 "
D12 - 7 "
Programas:
Mando_leer es para ver los códigos grabados en cada mando remoto.
Mando_grabar es para poner los códigos propios en los mandos (hace falta el emisor de 433Mhz, se venden con el receptor)
Eeprom es para grabar por primera vez la eeprom, para los que no dominen la programación en arduino.
En el Alarma433pir3c.ino hay una linea en el Setup que pone:
// weprom();
La primera vez hay que "descomentarla" y cargar el prog. en el arduino para que grabe los datos en la eeprom:
weprom();
y después volver a comentarla:
// weprom();
para desactivarla, luego cargar de nuevo el prog. para que no grabe los datos cada vez que se resetea el arduino o se vaya la luz.
Si no se quiere hacer esto, se carga el programa eeprom y después el alarma433 y listo.
Programas para grabar y leer Mando Remoto:
En el programa de grabar, ahora se hace directamente por el puerto Serial, se escribe el código +intro y el emisor lo envía, 0 +intro sirve de pausa entre códigos
Hay que resetear el mando para dejarlo en modo "Copy" como si fuéramos a copiar de otro mando.
Una antenita ayuda, si no se tiene, con un cable de cobre rígido de 16,5cm sirve de antena.
ALARMA - Arduino - 3 PIRs
Versiones para lcd 1604 y 2004 I2C
Control por teclado (keypad) y por Mando Remoto
PCB alimentación y conexiones
LCD 2004
V I D E O
Materiales :
- Arduino Uno, Nano, Mini, Mega, etc.
- LCD 1602 ó 2004 I2C
- Keypad 3x4
- PIR sensores (3) (tiempo al mínimo, sensibilidad la necesaria)
- Receptor 433Mhz (para grabar el mando Emisor 433Mhz)
- Leds rojo y verde (unir anodo+ con catodo- y conectar al A1)
- Resistencias 220 ó 330 ohms (2)
- Buzzer 5v
- Mando Remoto 433Mhz (3 ó 4 botones)
- Relé de 5v (o transistor BD139 para sirena 12v)
- Sirena (pequeña de 12v o grande a 220v)
Conexiones :
A0 - Interruptores Magnéticos
A1 - LEDs rojo y verde
A2 - Relé de 5v para Sirena
A3 - Buzzer
A4 - LCD SDA
A5 - LCD SCL
D2 - Receptor 433Mhz data
D3 - PIR1
D4 - PIR2
D5 - PIR3
D6 - 1 Keypad
D7 - 2 "
D8 - 3 "
D9 - 4 "
D10 - 5 "
D11 - 6 "
D12 - 7 "
hola, e intentado descargar el archivo pero sale uno con extension lnk
ResponderEliminarNo, te tiene que salir un fichero : alarma433PIR3c.rar
ResponderEliminarPincha en el enlace y luego en la parte superior dcha en la flecha de descarga
ResponderEliminarTe descarga un rar pero dentro del rar solo está uno con extensión .lkn
ResponderEliminarbro en el link subiste pero el acceso directo entonces no funciona
ResponderEliminarRe-subido y cambiado el enlace al GoogleDrive
ResponderEliminargracias por el aporte saludos
ResponderEliminarEXELENTE TRABAJO!!!!!!, una pregunta que puede sonar tonta: en el .RAR hay 3 carpetas .ino :MANDO_LEER, MANDO_GRABAR y eeprom,forman parte del codigo principal Alarma433PIR3c.ino? como se complementan?
ResponderEliminarMando_leer es para ver los códigos grabados en cada mando remoto.
ResponderEliminarMando_grabar es para poner los códigos propios en los mandos ( hace falta el emisor de 433Mhz, los venden juntos)
Eeprom es para grabar por primera vez la eeprom, para los que no dominen la programación.
En el Alarma433pir3c.ino hay una linea en el Setup que pone:
// weprom();
la primera vez hay que "descomentarla" y cargar el prog. en el arduino para que grabe los datos en la eeprom:
weprom();
y después volver a comentarla:
// weprom();
para desactivarla, luego cargar de nuevo el prog. para que no grabe los datos cada vez que se resetea el arduino o se va la luz.
Si no se quiere hacer esto, se carga el programa eeprom y después el alarma433 y listo.
Mando_ Grabar : https://www.youtube.com/watch?v=-W1-pw_T83Q&feature=youtu.be
Mando_leer : https://www.youtube.com/watch?v=FoLc2DEtjgg&feature=youtu.be
En el programa de grabar, ahora se hace directamente por el puerto Serial, se escribe el código-intro y el emisor lo envía,
0-intro sirve de pausa entre códigos
Hay que resetear el mando para dejarlo en modo "Copy" como si fuéramos a copiar de otro mando.
Una antenita ayuda, si no se tiene, con un cable de cobre rígido de 16,5cm hace de antena.
hola exelente proyecto me gustaria contactarme por desarrollos
ResponderEliminarvigiaseguridad@yahoo.com.ar
Cualquier duda o consulta, por aquí la recibo al momento
ResponderEliminarHOLA ESTY ELABORANDOLA CON DISPLAY 2004
ResponderEliminarNO PUEDO HACERLA FUNCIONAR Y ADEMAS LA CONEXION DEL I2C EN EL DIAGRAMA VA EN EL A4 Y A5
Si tienes un Arduino Uno los pines para SCL y SDA son el 16 y 17 (después de gnd y Aref) o el A4 y A5
ResponderEliminarEn el LCD 2004 te tiene que funcionar correctamente pero tienes que comprobar la dirección del I2C (puede ser 0x27 ó 0x3F) prueba cambiando la dirección o con un programa como el I2c scanner que te indique la dirección del I2C
Luego modifica el programa a tu gusto para adaptarlo al LCD 2004
Tendrías que cambiar estas dos líneas :
ResponderEliminarLiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
lcd.begin(16,2);
por
LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
lcd.begin(20,4);
ME PONGO CON ESO MUCHAS GRACIAS POR TU VALIOSO APORTE
ResponderEliminar'POSITIVE' was not declared in this scope
ResponderEliminarME APARECE ESTO
TE MANDO EL INICIO
#include
#include // Libreria Keypad
#include // Libreria receptor 433mhz
#include
#include
// LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // comprobar la direcciín del IC2
LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
lcd.begin(20,4);
RCSwitch mySwitch = RCSwitch();
LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
lcd.begin(20,4);
#include
#include // Libreria Keypad incluida
#include
#include
LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE)
RCSwitch mySwitch = RCSwitch();
SERA LA LIBRERIA I2C
ResponderEliminarPODRIAS DECIRME DE DONDE DESCARGO LA Q USAS
Prueba de aqui :
ResponderEliminarhttps://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library
ResponderEliminarNueva actualización y añadida una versión para LCD 2004 I2C
REALMENTE UN GROSO IMPRESIONANTE
ResponderEliminarhola muy buen proyecto . te felicito ahora te molesto para ver si me podes ayudar ya copie todas las librerias pero me sale como al compañero edgar 'POSITIVE' was not declared in this scope pero yo no pude solucionarlo .ya vaje el de la direccion que pusiste en comentarios y no me resulta .gracias
ResponderEliminarPOSITIVE, creo que se refiere a la linea del LCD :
ResponderEliminarLiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
Descarga la librería : https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library
Comprueba la dirección del I2C puede ser 0x27 ó 0x3F
Ya tenia hecho la alarma anterior pero esta nueva actualización es cool!!!, ya la estoy probando y quedo genial. Muchas gracias por tu nuevo aporte
ResponderEliminarMe alegro que te guste, un saludo.
ResponderEliminarhola amigo buenos dias, muy buen proyecto y gracias, queria preguntar por que me sale
ResponderEliminarArduino:1.8.12 (Windows 10), Tarjeta:"Arduino Uno"
alarma433PIR3c162:17:53: error: 'POSITIVE' was not declared in this scope
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // comprobar la direcciín del IC2
^~~~~~~~
D:\Disco E\alarma seosr\alarma433PIR3c162\alarma433PIR3c162\alarma433PIR3c162.ino: In function 'void loop()':
D:\Disco E\alarma seosr\alarma433PIR3c162\alarma433PIR3c162\alarma433PIR3c162.ino:303:9: warning: invalid conversion from 'const char*' to 'char' [-fpermissive]
key = "";
^~
Se encontraron varias bibliotecas para "Keypad.h"
Usado: C:\Users\RAUL\Documents\Arduino\libraries\Keypad
No usado: C:\Program Files (x86)\Arduino\libraries\Keypad
exit status 1
'POSITIVE' was not declared in this scope
Este informe podría contener más información con
"Mostrar salida detallada durante la compilación"
opción habilitada en Archivo -> Preferencias.
La libreria LCD I2C, descarga y prueba esta :
ResponderEliminarhttps://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library
Creado un módulo wireless con arduino Nano, sensor pir y transmisor 433Mhz para esta alarma.
ResponderEliminarCon este sistema ya no es necesario poner sensores por cable ni magnéticos.
La nueva versión está disponible arriba (solo lcd 2004 de momento)
y el módulo aqui :
https://berreizeta.blogspot.com/2020/07/arduino-alarma-pir-modulo-wireless.html
viejo buenas tardes, le comento que es uno de los mejores proyectos que eh visto en youtube. ppor tal razon lo quiero colocar en una tienda que tengo. pero te confieso que me quedo grande el modulo de rf 315mhz. como haces para que funsione? ayudame para poder colocarla en la tienda. gracias y mil gracias
ResponderEliminarEl módulo solo se utiliza para recibir los códigos grabados en el mando remoto que, logicamente, tiene que ser de la misma frecuencia (315mhz o 433mhz),
ResponderEliminarPara ello hay dos programas que sirven para leer los codigos de los mandos y para grabar los códigos que queramos que tengan, te indico el link :
https://drive.google.com/file/d/0B-aQ4eIWtpZcaGd4S25JWTBEclk/view?usp=sharing
Tengo terminado el programa para 1 PIR fijo (en base) y 3 PIR inalambricos (wireless) con el transcetor HC-12 que tiene mucho mas alcance que el "basico" de esta forma evitamos tener que echar cables para los pir fijos. Pronto lo pondré por aqui.
ResponderEliminarSubidas las ultimas versiones:
ResponderEliminarhttps://berreizeta.blogspot.com/2020
Hola muy buena, facilitaciones por el magnifico trabajo que has hecho.
ResponderEliminarMe encuentro haciendo un proyecto de domótica enfocado en la creación de un sistema de iluminación y otro de alarma, me preguntaba si con el código que has creado tu habría alguna forma d adaptarlo para un uso mas simple que involucre en lugar de una mando a 433Mhz uno mas simple por infrarrojo. De ser así como lo podría hacer sin estropear el código.
Otra duda que tengo es sobre los interruptores magnéticos, no sé que función tienen en el programa y me gustaría saber si hay alguna forma de prescindir de ellos. He visto que en una de las fotos que adjuntas "Alarma 3 pir Fritz" los interruptores no aparecen per la verdad no sé la razón. De antelación muchas gracias y disculpa si las preguntas que he hecho son muy tontas.
el archivo que has pasado con los programas, he visto la diferentes fotos que has adjuntado de las conexiones y me preguntaba en que diferencia hay en la utilización de los interruptores magnéticos y si suponen una diferencia notable en el funcionamiento del programa. Por cierto la imagen a la que me refiero es la de "Alarma 3 pir Fritz".
No tienes ningún problema para cambiar el mando 433Mhz por uno de infrarrojos, cambiando las librerías y poniendo un receptor también de infrarrojos.
ResponderEliminarEn las últimas versiones ya no aparecen los sensores magnéticos por dos motivos: son propensos a los falsos positivos y al haber incorporado a estas versiones los módulos Pir Wifi ya no es necesario echar cables desde la base hasta los magnéticos.
La última versión es para Mega2560 ya que el Arduino Uno no daba para más:
https://berreizeta.blogspot.com/2020/10/alarma-arduino-mega-pir-wireless.html
Gracias por responder tan rápido, ahora mismo me pondré en ello, seguramente te vuelva a escribir. Saludos y disculpa las molestias.
EliminarEn lo que pueda ayudarte, por aqui me encuentras
ResponderEliminarLa última versión de esta Alarma envía emails de aviso de estado : ON, OFF, WATCHING a través del ESP-01 (ESP8266) via WIFI y hay también una versión que por medio del SIM900 envía SMS y/o efectúa llamadas al teléfono, espero ponerla en el Blog pronto.
ResponderEliminarHola Berreizeta, hace un tiempo me ecribí preguntando si era possible cambiar la antena que utilizas en tu projecto por un sensor receptor de infrarojos. Al final decidí hacer un codigo propio para mi proyecto pero mucho más simple, pero resulta que no me las arreglo para hacer que funcione. Podrias porfavor echarle un vistazo?
ResponderEliminarcodigo:
// utilizo 3 pirs conectados a un arduino mega, lo que quiero cosneguir es hacer una sencilla alarma que se pueda armar o desarmar segun el boton que pulse, el codigo es mu simple i quizá te rias de mi, pero me estoy rompiendo la cabeza para conseguir que funcione y no lo consigo. Mi problema es que cuando activo la alarma y en teoria si los pirs detectan movimiento tendrian k encender el buzzer pero no pasa nada. Te agradeceria si pudieras echarle un vistazo
#include //Libreria d'infrarojos
int sensor = 11;
IRrecv irrecv(sensor);
decode_results lectura;
int PIR1 = 10;
int PIR2 = 9;
int PIR3 = 8;
int lectura1 = 0;
int lectura2 = 0;
int lectura3 = 0;
int ledVerde = 2; //señaliza que la alarma se ha activado
int ledRojo= 3; //señaliza que la alarma se ha desactivado
int Buzzer = 5;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
irrecv.enableIRIn();
pinMode(ledVerde, OUTPUT);
pinMode(ledRojo, OUTPUT);
pinMode(PIR1, INPUT);
pinMode(PIR2, INPUT);
pinMode(PIR3, INPUT);
pinMode(Buzzer, OUTPUT);
delay(10000); //para calibrar los pirs
}
void loop() {
// put your main code here, to run repeatedly:
if (irrecv.decode(&lectura)){ // recibir comando
switch (lectura.value){
case 0xFFA25D: // Botón para armar
digitalWrite(ledVerde, HIGH);
digitalWrite(ledRojo, LOW);
delay(10000); //tiempo de espera antes de que la alarma se active
alarmaON();
break;
case 0xFF629D: // boton para desarmar
digitalWrite(ledVerde, LOW);
digitalWrite(ledRojo, HIGH);
alarmaOFF();
break;
case 0xFF21D: // boton para activar buzzer directamente
Panico();
break;
}
irrecv.resume();
}
}
void alarmaON(){
lectura1 = digitalRead(PIR1);
lectura2 = digitalRead(PIR2);
lectura3 = digitalRead(PIR3);
if (lectura1) {
digitalWrite(Buzzer, HIGH);
}
if (lectura2){
digitalWrite(Buzzer, HIGH);
}
if (lectura3){
digitalWrite(Buzzer, HIGH);
}
}
void alarmaOFF()
{
lectura1 = 0;
lectura2 = 0;
lectura3 = 0;
digitalWrite(Buzzer, LOW);
}
void Panico()
{
digitalWrite(Buzzer, HIGH);
}
Déjame un email y te envió el código.
ResponderEliminarCambia los hexadecimales a decimales y te funcionará
berreizeta(arroba)hotmail.com
Prueba:
ResponderEliminar#include
int sensor = 11;
IRrecv irrecv(sensor);
decode_results lectura;
int PIR1 = 5;
int PIR2 = 6;
int PIR3 = 7;
int lectura1 = 0;
int lectura2 = 0;
int lectura3 = 0;
//Aprovecha los pines Analógicos :)
byte ledVerde = A2; //señaliza que la alarma se ha activado
byte ledRojo= A3; //señaliza que la alarma se ha desactivado
byte Buzzer = A4;
//---------------------------------------------------------
void setup() {
Serial.begin(9600);
irrecv.enableIRIn();
pinMode(ledVerde, OUTPUT);
pinMode(ledRojo, OUTPUT);
pinMode(PIR1, INPUT);
pinMode(PIR2, INPUT);
pinMode(PIR3, INPUT);
pinMode(Buzzer, OUTPUT);
delay(1000); //para calibrar los pirs
}
//------------------------------------------------------------------
void loop() {
if (irrecv.decode(&lectura)){ // recibir comando
Serial.println(lectura.value);
switch (lectura.value){
case 16738455: // Botón para armar (boton 1)
digitalWrite(ledVerde, HIGH);
digitalWrite(ledRojo, LOW);
// delay(10000); //tiempo de espera antes de que la alarma se active
alarmaON();
break;
case 16750695: // boton para desarmar (boton 2)
digitalWrite(ledVerde, LOW);
digitalWrite(ledRojo, HIGH);
alarmaOFF();
break;
case 16756815: // boton para activar buzzer directamente (boton 3)
Panico();
break;
}
irrecv.resume();
}
} // end loop
//---------------------------------------------------
void alarmaON(){
if (digitalRead(PIR1) == HIGH) {
beep();
Serial.println("PIR1");
}
if (digitalRead(PIR2) == HIGH) {
beep();
Serial.println("PIR2");
digitalWrite(Buzzer, HIGH);
}
if (digitalRead(PIR3) == HIGH) {
Serial.println("PIR3");
digitalWrite(Buzzer, HIGH);
}
}
//----------------------------------------------------
void alarmaOFF(){
lectura1 = 0;
lectura2 = 0;
lectura3 = 0;
digitalWrite(Buzzer, LOW);
}
//-----------------------------------------------
void Panico(){
digitalWrite(Buzzer, HIGH);
}
//-------------------------------------------------------
void beep(){
digitalWrite(ledRojo, HIGH);
digitalWrite(Buzzer, HIGH);
delay(100);
digitalWrite(Buzzer, LOW);
digitalWrite(ledRojo, LOW);
}
//------------------------------------------
Abre el Monitor Serie y anota los códigos de los botones que te interesen, luego ponlos en el programa (case xxxxxxxxx)
ResponderEliminarDe verdad muchísimas gracias, ahora me pondré en ello. Te diré que tal todo.
EliminarAlarma simple pero funcional :
ResponderEliminar// Berreizeta - Alarma simple con sensor infrarrojos Keyes KY-022 y sensor PIR
#include // PON LA LIBRERIA IRremote.h que el blog la borra
int sensor = 11;
IRrecv irrecv(sensor);
decode_results lectura;
int PIR1 = 5;
int PIR2 = 6;
int PIR3 = 7;
int alarma = 0;
int timeactiv = 10000; // tiempo activacion = 10 seg
//Aprovecha los pines Analógicos :)
byte ledVerde = A3; //señaliza que la alarma se ha activado
byte ledRojo= A2; //señaliza que la alarma se ha desactivado
byte Buzzer = A1;
//---------------------------------------------------------
void setup() {
Serial.begin(115200);
Serial.println("Esperando a remote ..:");
irrecv.enableIRIn();
pinMode(ledVerde, OUTPUT);
pinMode(ledRojo, OUTPUT);
pinMode(PIR1, INPUT);
pinMode(PIR2, INPUT);
pinMode(PIR3, INPUT);
pinMode(Buzzer, OUTPUT);
delay(1000); //para calibrar los pirs
}
//------------------------------------------------------------------
void loop() {
remote();
if (alarma == 1 ){
alarmaON();
}
} // end loop
//---------------------------------------------------
void remote(){
if (irrecv.decode(&lectura)){ // recibir comando
Serial.print(lectura.value);
Serial.print(" - ");
switch (lectura.value){
case 16738455: // Botón para armar (boton 1)
beep();
digitalWrite(ledRojo, HIGH);
digitalWrite(ledVerde, LOW);
Serial.println("ALARMA READY en 10s");
delay(timeactiv); //tiempo de espera antes de que la alarma se active
alarma = 1;
Serial.println("ALARMA is ON");
break;
case 16750695: // boton para desarmar (boton 2)
beep();
digitalWrite(ledRojo, LOW);
digitalWrite(ledVerde, HIGH);
Serial.println("ALARMA OFF");
alarma = 0;
alarmaOFF();
break;
case 16756815: // boton para activar buzzer directamente (boton 3)
Serial.println("PANICO SIRENA ON");
Panico();
break;
}
irrecv.resume();
}
}
//------------------------------------------------------
void alarmaON(){
if (digitalRead(PIR1) == HIGH && alarma == 1) {
beep();
Serial.println("Detection in PIR1");
alarma = 0;
Panico();
}
if (digitalRead(PIR2) == HIGH && alarma == 1) {
beep();
Serial.println("Detection in PIR2");
alarma = 0;
Panico();
}
if (digitalRead(PIR3) == HIGH && alarma == 1) {
beep();
Serial.println("Detection in PIR3");
alarma = 0;
Panico();
}
}
//----------------------------------------------------
void alarmaOFF(){
alarma = 0;
digitalWrite(ledRojo, LOW);
digitalWrite(ledVerde, HIGH);
digitalWrite(Buzzer, LOW);
}
//-----------------------------------------------
void Panico(){
digitalWrite(Buzzer, HIGH);
digitalWrite(ledRojo, HIGH);
digitalWrite(ledVerde, HIGH);
}
//-------------------------------------------------------
void beep(){
digitalWrite(ledRojo, HIGH);
digitalWrite(Buzzer, HIGH);
delay(50);
digitalWrite(Buzzer, LOW);
digitalWrite(ledRojo, LOW);
}
//------------------------------------------
Muchas gracias, funciona va genial :) , me podrías dar una breve explicación de como funciona el código por encima, llego a entender gran parte de él, pero hay cosas que todavía no sé muy bien. Gracias de antelación.
EliminarMe podrás ayudar tengo que hacer un proyecto igual de alarmas pero 4 sensores pero sólo ocupo que tenga tiempo para activarse
ResponderEliminarExplicame lo que quieres que haga el programa
ResponderEliminarEs una alarma pero con 4 sensores solo que es simple ocupo que que tenga tiempo para activarse al resetear el Arduino
ResponderEliminarEs que lo que yo ahí es usar la función
ResponderEliminarIf(millis>180000)
Y después uso otro If para los sensores pero al parecer al momento de comprobar el proyecto hace que cuando un sensor detecte una Señal produzca que suene la bocina el tiempo pero despues sigue soñando consecutivamente
Si no es muy largo el programa, pégalo aqui y lo miro
ResponderEliminarSi solo quieres un retraso de 3min al arrancar el arduino pon un delay(180000) al final del Setup
ResponderEliminarCon millis tienes que crear un inicio del tiempo:
ResponderEliminarInicio = millis()
Y despues poner el final de la condicion:
While (millis() - inicio <= 180000{ xxx }
O
If (millis() - inicio >= 180000{ xxx }
Dependiendo si quieres que haga algo dentro de esos 3min
O cuando hayan pasado los 3min
Cuál es la distancia máxima del cable del sensor hasta la placa Arduino
ResponderEliminarDepende del cable, si es uno del tipo usado para redes (UTP cable macizo)) posiblemente unos 10 metros o algo mas, no lo he probado.
ResponderEliminarLas 2 últimas versiones de esta Alarma utilizan módulos inalámbricos :
https://berreizeta.blogspot.com/2020/08/arduino-alarma-pir-modulo-sensor-pir.html
https://berreizeta.blogspot.com/2020/10/alarma-arduino-mega-pir-wireless.html
Con estas versiones te quitas el problema del cable de datos, sólo necesita alimentación 5v para el módulo, y no tienes limitación de unidades módulo-sensor.
WynnBET and Borgata join MGM in opening $330M
ResponderEliminarWynnBET will 서귀포 출장안마 open its first commercial gaming 시흥 출장마사지 resort in 하남 출장안마 Las Vegas this fall, 울산광역 출장안마 joining MGM 김제 출장안마 Resorts International and Resorts International.
no entiendo lo de la eeprom. ni que significa descomentar ni como usar el eeprom.ino. ¿alguien puede ayudarme? gracias
ResponderEliminarComentar significa poner // delante de una linea, y descomentar es quitar las dos // para que pase de ser un texto o comentario a ser una linea de programa
ResponderEliminar// weprom() es un comentario o texto
weprom() es una linea de programa
Este comentario ha sido eliminado por el autor.
Eliminargracias! ya lo logré, ahora el problema que tengo es que esta todo el tiempo detectando cosas, con la alarma apagada en la fila del display marca 1, 2, 3 , M a cada rato, con la alarma armada se dispara
Eliminarno tengo conectado un modulo 433, ¿puede ser por eso que marca a cada rato M?
EliminarSOLUCIONADO! no había puesto la resistencia de 10k a 5v. por ahora parece que anda todo de 10. gracias!!
Eliminar