Sistema di allarme
ciao tutti e perdonatemi se sbaglio qualcosa visto che sono nuovo
avrei bisogno di qualche dritta per realizzare un sistema d'allarme, composto da quattro fotocellule.
quando un sensore rileva qualcosa, si accende il led rispettivo, parte la sirena(cicalino) e viene visualizzato sul display lcd il sensore attivo. ho visto in rete, che per disinserire l'allarme viene usato un sensore pir con l'annessa tessera; non disponendo di tale componente, vorrei inserire una password sul display usando dei bottoni(ad esempio premi 2 volte il centrale), ma purtroppo non come fare. spero ci sia qualcuno così gentile da aiutarmi
il codice:
#include <liquidcrystal.h> // include la libreria del display
#define la 22 // dichiaro la variabile
#define lb 23 // dichiaro la variabile
#define lc 24 // dichiaro la variabile
#define ld 25 // dichiaro la variabile
#define sa 32 // dichiaro la variabile
#define sb 33 // dichiaro la variabile
#define sc 34 // dichiaro la variabile
#define sd 35 // dichiaro la variabile
#define buzzer 53 // dichiaro la variabile
boolean la = low; // dichiaro la variabile
boolean lb = low; // dichiaro la variabile
boolean lc = low; // dichiaro la variabile
boolean ld = low; // dichiaro la variabile
liquidcrystal lcd(12, 11, 5, 4, 3, 2); // viene creata l'istanza dell'oggetto liquidcrystal chiamata lcd in cui sono indicati pin dell'lcd collegati alle uscite digitali di arduino
void setup() {
pinmode(la, output); // imposta il pin digitale come output
pinmode(lb, output); // imposta il pin digitale come output
pinmode(lc, output); // imposta il pin digitale come output
pinmode(ld, output); // imposta il pin digitale come output
pinmode (buzzer, output); // imposta il pin digitale come output
pinmode(sa, input); // imposta il pin digitale come input
pinmode(sb, input); // imposta il pin digitale come input
pinmode(sc, input); // imposta il pin digitale come input
pinmode(sd, input); // imposta il pin digitale come input
lcd.begin(16, 2); // numero di colonne ed il numero di righe dell'lcd
lcd.print("zona sicura"); // stampa il messaggio sul display
}
void loop() {
boolean statosa = digitalread(sa); // memorizza lo stato del sensore
boolean statosb = digitalread(sb); // memorizza lo stato del sensore
boolean statosc = digitalread(sc); // memorizza lo stato del sensore
boolean statosd = digitalread(sd); // memorizza lo stato del sensore
lcd.setcursor(0, 0); // posiziona il cursore in colonna 0 e linea 0
if (statosa != low); // se il sensore rileva movimento
{
(la = high); // accende il led
lcd.setcursor(6, 1); // posiziona il cursore in colonna 6 e linea 1
serial.print("a"); // stampa il messaggio sul display
}
else (statosa == low); // se il sensore non è attivo
{
(la = low); // spegne il led
}
if (statosb != low); // se il sensore rileva movimento
{
(lb = high); // accende il led
lcd.setcursor(7, 1); // posiziona il cursore in colonna 7 e linea 1
serial.print(",b"); // stampa il messaggio sul display
}
else (statosb == low); // se il sensore non è attivo
{
(lb = low); // spegne il led
}
if (statosc != low); // se il sensore rileva movimento
{
(lc = high); // accende il led
lcd.setcursor(9, 1); // posiziona il cursore in colonna 9 e linea 1
serial.print(",c"); // stampa il messaggio sul display
}
else (statosc == low); // se il sensore non è attivo
{
(lc = low); // spegne il led
}
if (statosd != low); // se il sensore rileva movimento
{
(ld = high); // accende il led
lcd.setcursor(11, 1); // posiziona il cursore in colonna 11 e linea 1
serial.print(",d"); // stampa il messaggio sul display
}
else (statosd == low); // se il sensore non è attivo
{
(ld = low); // spegne il led
}
if (statosa != low || statosb != low || statosc != low || statosd != low); // se almeno un sensore è attivo
serial.printl("intruso"); // stampa il messaggio sul display
serial.println("zona:"); // stampa il messaggio sul display
allarme(); // attiva la sirena
}
void allarme() {
(i = 0; < 3; i++); // ripete il ciclo tre volte
{
tone(buzzer, 400); // accende il buzzer
delay(500); // attende 0,5s
tone(buzzer, 200);
delay(500); // attende 0,5s
}
}
avrei bisogno di qualche dritta per realizzare un sistema d'allarme, composto da quattro fotocellule.
quando un sensore rileva qualcosa, si accende il led rispettivo, parte la sirena(cicalino) e viene visualizzato sul display lcd il sensore attivo. ho visto in rete, che per disinserire l'allarme viene usato un sensore pir con l'annessa tessera; non disponendo di tale componente, vorrei inserire una password sul display usando dei bottoni(ad esempio premi 2 volte il centrale), ma purtroppo non come fare. spero ci sia qualcuno così gentile da aiutarmi
il codice:
#include <liquidcrystal.h> // include la libreria del display
#define la 22 // dichiaro la variabile
#define lb 23 // dichiaro la variabile
#define lc 24 // dichiaro la variabile
#define ld 25 // dichiaro la variabile
#define sa 32 // dichiaro la variabile
#define sb 33 // dichiaro la variabile
#define sc 34 // dichiaro la variabile
#define sd 35 // dichiaro la variabile
#define buzzer 53 // dichiaro la variabile
boolean la = low; // dichiaro la variabile
boolean lb = low; // dichiaro la variabile
boolean lc = low; // dichiaro la variabile
boolean ld = low; // dichiaro la variabile
liquidcrystal lcd(12, 11, 5, 4, 3, 2); // viene creata l'istanza dell'oggetto liquidcrystal chiamata lcd in cui sono indicati pin dell'lcd collegati alle uscite digitali di arduino
void setup() {
pinmode(la, output); // imposta il pin digitale come output
pinmode(lb, output); // imposta il pin digitale come output
pinmode(lc, output); // imposta il pin digitale come output
pinmode(ld, output); // imposta il pin digitale come output
pinmode (buzzer, output); // imposta il pin digitale come output
pinmode(sa, input); // imposta il pin digitale come input
pinmode(sb, input); // imposta il pin digitale come input
pinmode(sc, input); // imposta il pin digitale come input
pinmode(sd, input); // imposta il pin digitale come input
lcd.begin(16, 2); // numero di colonne ed il numero di righe dell'lcd
lcd.print("zona sicura"); // stampa il messaggio sul display
}
void loop() {
boolean statosa = digitalread(sa); // memorizza lo stato del sensore
boolean statosb = digitalread(sb); // memorizza lo stato del sensore
boolean statosc = digitalread(sc); // memorizza lo stato del sensore
boolean statosd = digitalread(sd); // memorizza lo stato del sensore
lcd.setcursor(0, 0); // posiziona il cursore in colonna 0 e linea 0
if (statosa != low); // se il sensore rileva movimento
{
(la = high); // accende il led
lcd.setcursor(6, 1); // posiziona il cursore in colonna 6 e linea 1
serial.print("a"); // stampa il messaggio sul display
}
else (statosa == low); // se il sensore non è attivo
{
(la = low); // spegne il led
}
if (statosb != low); // se il sensore rileva movimento
{
(lb = high); // accende il led
lcd.setcursor(7, 1); // posiziona il cursore in colonna 7 e linea 1
serial.print(",b"); // stampa il messaggio sul display
}
else (statosb == low); // se il sensore non è attivo
{
(lb = low); // spegne il led
}
if (statosc != low); // se il sensore rileva movimento
{
(lc = high); // accende il led
lcd.setcursor(9, 1); // posiziona il cursore in colonna 9 e linea 1
serial.print(",c"); // stampa il messaggio sul display
}
else (statosc == low); // se il sensore non è attivo
{
(lc = low); // spegne il led
}
if (statosd != low); // se il sensore rileva movimento
{
(ld = high); // accende il led
lcd.setcursor(11, 1); // posiziona il cursore in colonna 11 e linea 1
serial.print(",d"); // stampa il messaggio sul display
}
else (statosd == low); // se il sensore non è attivo
{
(ld = low); // spegne il led
}
if (statosa != low || statosb != low || statosc != low || statosd != low); // se almeno un sensore è attivo
serial.printl("intruso"); // stampa il messaggio sul display
serial.println("zona:"); // stampa il messaggio sul display
allarme(); // attiva la sirena
}
void allarme() {
(i = 0; < 3; i++); // ripete il ciclo tre volte
{
tone(buzzer, 400); // accende il buzzer
delay(500); // attende 0,5s
tone(buzzer, 200);
delay(500); // attende 0,5s
}
}
ciao tutti e perdonatemi se sbaglio qualcosa visto che sono nuovoallora ...
1. non ti sei presentato qui (spiegando quali conoscenze hai di elettronica e di programmazione)
2. non hai letto il regolamento (... e non hai racchiuso il codice tra tag code)
3. ... ma peggio di tutti ... stai scrivendo in un area riservata ... e si che, come primo post dell'area c'è, in grassetto, questo
ora un moderatore dovrà spostare la tua discussione ...
guglielmo
Arduino Forum > International > Italiano > Software (Moderator: leo72) > Sistema di allarme
arduino
Comments
Post a Comment