Centralina Allarme
-
- Messaggi: 19
- Iscritto il: ven 16 mar 2018, 10:42
Centralina Allarme
Ciao, sto costruendo una piccola centralina di un allarme con arduino, di cui sto provvedendo a scrivere il codice. Per l'alimentazione ho pensato ad una batteria al piombo 6v 4ah ( quelle delle lampade di emergenza) che ho già per ricaricarla volevo riciclare qualche alimentatore 6 o 12 volt che ho già a casa, che circuito devo associare? Ovviamente tieni presente che la batteria rimarrà sempre in carica e contemporaneamente fornirà tensione ad arduino
- Pier Aisa
- Amministratore
- Messaggi: 2543
- Iscritto il: ven 16 mar 2018, 9:43
- Località: Bologna
- Contatta:
Re: Centralina Allarme
Arduino lo puoi collegare direttamente alla 6v della batteria e all'eventuale caricabatteria Sulla scheda arduino è presente un regolatore di tensione. Per esperienza ho viato che fino a 12v in ingresso la scheda arduino funziona bene anche ae il regolatore a 12v di ingresso scalda un po' ciao
Pier Aisa
Pier Aisa
-
- Messaggi: 19
- Iscritto il: ven 16 mar 2018, 10:42
Re: Centralina Allarme
Si lo so che arduino lo posso alimentare direttamente a 6v ma a me mi serve un circuito per ricaricare la batteria partendo da un vecchio alimentatore che sia 6 9 o 12 volt siccome già ne ho abbastanza a casa
- Pier Aisa
- Amministratore
- Messaggi: 2543
- Iscritto il: ven 16 mar 2018, 9:43
- Località: Bologna
- Contatta:
Re: Centralina Allarme
Guarda questo articolo di Nuova elettronica a pag.10 che spiega bene il principio. Adattando i numero per il tuo caso direi che con poco ce la dovresti fare.
Ciao
Pier
http://www.rsp-italy.it/Electronics/Mag ... %20129.pdf
Ciao
Pier
http://www.rsp-italy.it/Electronics/Mag ... %20129.pdf
-
- Messaggi: 19
- Iscritto il: ven 16 mar 2018, 10:42
Re: Centralina Allarme
allora ti spiego brevemente come funziona:
ho una tastiera a matrice 4*4 per attivare e disattivare l'allarme (in seguito aggiungerò un display per capire cosa sta succedendo, lo avevo già messo ma dati i problemi che ho avuto l'ho temporaneamente staccato)
una ricevente 433mhz che riceve un codice per una frazione di secondi ogni qual volta un sensore pir 433mhz rileva un movimento, sul sensore me ne accorgo dato che si accende un led rosso.
tramite la tastiera attivo l'allarme, una volta attivo se il sensore invia un movimento, arduino fa suonare un cicalino fino a quando non viene reinserita la password corretta sulla tastiera che disattiva l'allarme.
Sono sicuro che il problema sta in questo ciclo while:
while (AllarmeAttivo==1) {
...
...
}
che mi blocca la funzione allarme(), tuttavia non so come uscirmene, ho provato varie soluzioni e chiesto aiuto sul forum arduino, ma niente da fare. Dimenticavo di dirti che attualmente nel codice che ti ho mandato il sensore l'ho simulato con un pulsante normalmente aperto, per permetterti di provare il codice, lo puoi capire dato che ho abilitato i commenti sul codice che si occupa di ricevere i segnali.
Spero tu possa aiutarmi dato che è da più di un mese che ci sto sbattendo la testa. Grazie in anticipo
ho una tastiera a matrice 4*4 per attivare e disattivare l'allarme (in seguito aggiungerò un display per capire cosa sta succedendo, lo avevo già messo ma dati i problemi che ho avuto l'ho temporaneamente staccato)
una ricevente 433mhz che riceve un codice per una frazione di secondi ogni qual volta un sensore pir 433mhz rileva un movimento, sul sensore me ne accorgo dato che si accende un led rosso.
tramite la tastiera attivo l'allarme, una volta attivo se il sensore invia un movimento, arduino fa suonare un cicalino fino a quando non viene reinserita la password corretta sulla tastiera che disattiva l'allarme.
Sono sicuro che il problema sta in questo ciclo while:
while (AllarmeAttivo==1) {
...
...
}
che mi blocca la funzione allarme(), tuttavia non so come uscirmene, ho provato varie soluzioni e chiesto aiuto sul forum arduino, ma niente da fare. Dimenticavo di dirti che attualmente nel codice che ti ho mandato il sensore l'ho simulato con un pulsante normalmente aperto, per permetterti di provare il codice, lo puoi capire dato che ho abilitato i commenti sul codice che si occupa di ricevere i segnali.
Spero tu possa aiutarmi dato che è da più di un mese che ci sto sbattendo la testa. Grazie in anticipo
- Pier Aisa
- Amministratore
- Messaggi: 2543
- Iscritto il: ven 16 mar 2018, 9:43
- Località: Bologna
- Contatta:
Re: Centralina Allarme
Osservando il codice e l'output credo che il problema sia nella funzione gestioneTastiera ().
In questa funzione hai un ciclo while che ti blocca li dentro fino a che non hai terminato l'inserimento dei caratteri.
Mentre sei dentro la gestioneTastiera () e dentro il while per fare il controllo password l'allarme non puo' suonare, perchè il tuo sorgente esegue le funzioni in maniera sequenziale.
Si potrebbe fare una gestione ad interrupt, ma per semplificare le cose ti suggerisco di cambiare la funzione gestioneTastiera (), chiamando la kpd.getKey() una volta sola (cioè non dentro un ciclo while) e accumulare i caratteri in una varabile globale, che andrai a controllare a ogni chiamata di gestioneTastiera (). Tanto il ciclo di esecuzione della loop() è più veloce dell'input digitato dall'utente.
In questo modo il ciclo loop non si blocca dentro un while e ogni volta che passa su allarme() e non vede che la variabile globale è uguale alla password lui suona.
Inoltre ti consiglio di sostituire while (AllarmeAttivo==1) con if (AllarmeAttivo==1), altrimenti rimani imprigionato lì dentro e non potrai mai disabilitare l'allarme.
Lascio a te il compito di modificare le procedure, così fai pratica,
Fammi sapere
Ciao
In questa funzione hai un ciclo while che ti blocca li dentro fino a che non hai terminato l'inserimento dei caratteri.
Mentre sei dentro la gestioneTastiera () e dentro il while per fare il controllo password l'allarme non puo' suonare, perchè il tuo sorgente esegue le funzioni in maniera sequenziale.
Si potrebbe fare una gestione ad interrupt, ma per semplificare le cose ti suggerisco di cambiare la funzione gestioneTastiera (), chiamando la kpd.getKey() una volta sola (cioè non dentro un ciclo while) e accumulare i caratteri in una varabile globale, che andrai a controllare a ogni chiamata di gestioneTastiera (). Tanto il ciclo di esecuzione della loop() è più veloce dell'input digitato dall'utente.
In questo modo il ciclo loop non si blocca dentro un while e ogni volta che passa su allarme() e non vede che la variabile globale è uguale alla password lui suona.
Inoltre ti consiglio di sostituire while (AllarmeAttivo==1) con if (AllarmeAttivo==1), altrimenti rimani imprigionato lì dentro e non potrai mai disabilitare l'allarme.
Lascio a te il compito di modificare le procedure, così fai pratica,
Fammi sapere
Ciao
-
- Messaggi: 19
- Iscritto il: ven 16 mar 2018, 10:42
Re: Centralina Allarme
ciao Pier,
ci siamo quasi, ho seguito i tuoi consigli adesso c'è da modificare solo qualche piccolezza (almeno credo), ovvero riesco ad attivare e disattivare l'allarme solo che diventa macchinoso disattivarlo quando va in esecuzione la funzione allarme(), infatti non sempre riesce a prendere tutti i comandi (bisogna inserirli pian piano uno alla volta) e quell'istante mentre li inserisco il buzzer smette di suonare cosa posso migliorare?
In allegato c'è quello che visualizzo a video
secondo me devo fare qualche modifica in quel ciclo do..while dopo l'if(letturaPIR()) ma no so come.
grazie per gli aiuti che mi hai fornito fino ad ora ..se non era per te abbandonavo tutto ..
ci siamo quasi, ho seguito i tuoi consigli adesso c'è da modificare solo qualche piccolezza (almeno credo), ovvero riesco ad attivare e disattivare l'allarme solo che diventa macchinoso disattivarlo quando va in esecuzione la funzione allarme(), infatti non sempre riesce a prendere tutti i comandi (bisogna inserirli pian piano uno alla volta) e quell'istante mentre li inserisco il buzzer smette di suonare cosa posso migliorare?
In allegato c'è quello che visualizzo a video
secondo me devo fare qualche modifica in quel ciclo do..while dopo l'if(letturaPIR()) ma no so come.
grazie per gli aiuti che mi hai fornito fino ad ora ..se non era per te abbandonavo tutto ..
Re: Centralina Allarme
Ma perchè non vedo gli allegati ?
Se ti blocchi nel ciclo ovvio che ti si ferma tutto.
Se rilevi qualcosa dal sensore nel loop (ovviamente chiamando le te funzioni dove gestisci tutto) devi gestire l'input ma senza bloccarti in un while.
Non vedo il tuo codice ma sembra di capire che ti blocchi nel solito while.
Se ti blocchi nel ciclo ovvio che ti si ferma tutto.
Se rilevi qualcosa dal sensore nel loop (ovviamente chiamando le te funzioni dove gestisci tutto) devi gestire l'input ma senza bloccarti in un while.
Non vedo il tuo codice ma sembra di capire che ti blocchi nel solito while.
- Pier Aisa
- Amministratore
- Messaggi: 2543
- Iscritto il: ven 16 mar 2018, 9:43
- Località: Bologna
- Contatta:
Re: Centralina Allarme
Allego il codice. Essendo uno dei messaggi di test erano rimasti "fuori onda"
- Allegati
-
- _antifurto_paa.zip
- (1.65 KiB) Scaricato 287 volte
-
- keypad.zip
- (18.54 KiB) Scaricato 278 volte
-
- Password.zip
- (5.65 KiB) Scaricato 260 volte
-
- rc-switch-master.zip
- (20.53 KiB) Scaricato 260 volte
-
- Messaggi: 23
- Iscritto il: gio 22 mar 2018, 18:15
Re: Centralina Allarme
Ragazzi se vi può essere di aiuto io sto giocherellando con questo, il WIFI va che è una schioppettata e presto gli attacco un Arduino 2 che farà il lavoro sporco.
Bye
Bye