Go Down

Topic: Analisi impulsi contatto a tapparella per antifurti (Read 6 times) previous topic - next topic


tuxduino

Sei hai modo di provare il codice con un tuo sensore, ti sarei grato se postassi il risultato.  :)

diablotron

si, dunque ho aggiunto una costante output
per accendere il led in caso di allarme..
mi va in allarme dopo 2 click, si accende il led
ma mi rimane sempre acceso.. quindi semmai dovessi abilitare
un relè 5V su quella uscita, mi rimarrebbe perennemente eccitato.
cosa posso aggiungere per terminare l'attivazione dell'uscita?

per il resto tutto ok!

diablotron

ma perchè si devono per forza usare gli interrupt,
con i wich, break e i goto e altra roba non si riesce?

tuxduino


si, dunque ho aggiunto una costante output
per accendere il led in caso di allarme..
mi va in allarme dopo 2 click, si accende il led
ma mi rimane sempre acceso.. quindi semmai dovessi abilitare
un relè 5V su quella uscita, mi rimarrebbe perennemente eccitato.
cosa posso aggiungere per terminare l'attivazione dell'uscita?

per il resto tutto ok!


Anche se intuisco cosa significhi "ho aggiunto una costante output", tecnicamente non significa nulla. Probabilmente hai aggiunto una riga come:
Code: [Select]
pinMode(relePin, OUTPUT);
nella funzione setup() e qualcosa come
Code: [Select]
digitalWrite(relePin, HIGH);
in loop().
Comunque per evitare fraintendimenti ti consiglio di postare il codice completo dello sketch modificato, eventualmente indicando le modifiche con un commento.

Nel merito:
- immagino che per "click" tu ti riferisca al rumore fatto dal sensore mentre tiri il filo... se è così il comportamento mi sembra corretto, in quanto ho messo 5 conteggi su un interrupt di tipo CHANGE e ogni "click" presumibilmente apre/chiude il contatto...
In sintesi: prova a modificare NUM_IMPULSI_ALLARME e a prendere nota di quanti "click" servono per andare in allarme.
- se il contatto è pulito, forse bisogna attivare il pullup interno o (forse meglio) mettere una resistenza sul pin 2 di Arduino da 10k verso 5V (qualche esperto di HW mi corregga se sbaglio)
- per quanto riguarda il passaggio dallo stato di allarme a quello di riposo, si potrebbe mettere un timeout, scaduto il quale viene chiamata una funzione tipo "allarmeTerminato", eventualmente affiancandolo da un pulsante che in un sistema reale sarebbe un segnale HIGH/LOW proveniente dal modulo tastiera, e che assume un particolare stato quando l'utente digita il codice corretto di disattivazione...

Go Up