Buonasera, sto creando un piccolo allarme che quando rileva un movimento mi invia un sms sul mio cellulare ! ma il problema è che appena attivo l'allarme il sensore si attiva anche senza rilevare movimenti e comincia ad inviarmi sms finché non lo fermo :o ! Il codice mi sembra esatto ma forse sbaglierò qualcosa altrimenti avrebbe dovuto funzionare bene ... vi posto il codice
Forse è il caso di procedere per gradi... Innanzitutto fai sì che quando rilevi movimento si accenda un led, anche quello integrato sul pin 13 va bene. In questo modo potrai facilmente verificare "sperimentalmente" che la rilevazione del movimento funzioni correttamente.
Quando poi sei certo di questo, sostituirai l'accensione del LED con l'invio dell'SMS.
PS: STATOALLARME = LOW e STATOALLARME == 00 fanno un po' a pugni... Qual è il senso di questa variabile?
Il senso è se viene rilevato un movimento e lo stato dell'allarme è 00 (che corrisponde ad allarme attivato) deve inviarmi l'sms altrimenti se rileva un movimento 01 (disattivato anche se rileva il movimento non deve fare nulla
Edison ho fatto la prova con il led ma il problema rimane rimane il led acceso anche senza movimenti.
Grazie della risposta anche a te nid69ita ma lasciando stare quando l'ho disconnesso il problema quale può essere (che viene dato con il sensore normalmente collegato come se rimanesse sempre su high) ? grazie
Up
ragazzi ho notato che il sensore rimane sempre aperto l'ho provato con un led e non chiude mai il segnale!! Ma la cosa assurda è che lo stesso problema viene dato su due sensori differenti dello stesso modello! È possibile che bisogna regolarl io sono rotti ?
Certo che il led rimane acceso, era solo una prova per debuggare il problema senza inviare milioni di SMS. Anche perché forse dimentichi che il loop viene eseguito milioni di volte al secondo e, per come l'hai scritto tu, manda un SMS a ogni iterazione... (Vedi quanto detto da nid)
Quanto al sensore, immagino che ci siano sopra un paio di potenziometri (nonché un jumper): ti sei preoccupato di capire a cosa servono?
const int allarmePin = 2; // the number of the pushbutton pin
// the number of the LED pin
// variables will change:
int buttonState = 0; // variable for reading the pushbutton status
// Array per contenere numero di telefono relativo a
char senderNumber[20];
// Stringa messaggio in arrivo
String message = "";
void setup() {
// initialize the pushbutton pin as an input:
pinMode(allarmePin, INPUT);
}
void loop() {
// inizzializza porte seriali ed aspetta che le porte si aprano
if (allarmeState == HIGH) {
sendFeedbackSMS("392000000","ALLARME","PERICOLO FURTO");
delay(4000);
}
}
non ho fatto altro che cambiar ei nomi alle variabili dell'esempio button nella categoria digital !
Ok, il jumper non c'è, ma i potenziomentri di cui parlavo prima sì. TI SEI CHIESTO A COSA SERVONO??? Se guardi il PDF che ti hanno linkato magari troverai anche la risposta e capirai cosa devi fare.
Certo che fai proprio perdere la voglia di aiutarti. La gente perde tempo a scriverti suggerimenti e soluzioni e tu manco ti preoccupi di leggerli e di fare quanto ti si chiede.
Mi spiace che dici questo.. io quando chiedo un aiuto e mi viene dato veramente vorrei rendermi utile x ricambiare il favore ma non ho aperto quel pdf perchè parlava di un sensore con jumper diverso dal mio ! adesso lo leggo e vi faccio sapere :))
... dalla foto sembra che non abbia il jumper ma ha le piazzole da saldare
Io tenterei a seguire il datasheet che ti ho dato, tanto i modulini cinesi solitamente sono un copia e incolla di altri eheheh
const int allarmePin = 2; // the number of the pushbutton pin
int buttonState = 0; // variable for reading the pushbutton status
char senderNumber[20];
String message = "";
void setup() {
pinMode(allarmePin, INPUT);
}
void loop() {
if (allarmeState == HIGH) {
sendFeedbackSMS("392000000","ALLARME","PERICOLO FURTO");
delay(4000);
}
}
non ho fatto altro che cambiar ei nomi alle variabili dell'esempio button nella categoria digital !
Ma stiamo ancora discutendo del HW quando lo sketch è ERRATO ? Ne hai postati due pezzi di codice errati, questo poi!! Nella loop() NON leggi mai il pin, MANCA:
allarmeState=digitalRead(allarmePin );
Orpo, mi son perso il fatto che aveva postato il codice per intero...
Non l'ho neanche guardato perchè, viste le dimensioni, pensavo fosse slo la parte che secondo lui non funzionava (se è per quello mi sembra che anche la variabile allarmeState non sia neanche dichiarata)...