Buongiorno ragazzi,
mi serve leggere un contatto pulito con Arduino. Ho collegato i 5v ad una resistenza 1k, l'uscita è connessa ad una morsettiera che se mi chiude il contatto mi va a finire sul pin 5.
Il mio problema è che nella seriale il codice continua a leggere un attimo 0 e un attimo 1 senza collegare un ponticello.
Nel caso in cui collego il ponticello il codice continua a leggere 1, quindi chiuso contatto, senza problema.
Come posso risolvere?
Grazie
Giuseppe
#define CONTATTO 5 // pin in input collegato al pin digitale 5
int StatoPorte;
StatoPorte = digitalRead(CONTATTO);
if (StatoPorte == 0) { // controlla lo stato delle porte
Serial.print("Porte Aperte!");
Serial.println(StatoPorte, DEC);
// digitalWrite(4, LOW); // accende il led
}
if (StatoPorte == 1) {
Serial.print("Porte chiuse!");
Serial.println(StatoPorte, DEC);
// digitalWrite(4, HIGH);
}
Pull-UP sarebbe verso Vcc, verso massa si chiama pull-DOWN. Usi la prima se il tuo contatto chiude a massa, la seconda se chiude a Vcc. Un valore molto usato è 10k, ma in realtà va bene qualunque valore, vedi quel che hai.
SukkoPera:
Pull-UP sarebbe verso Vcc, verso massa si chiama pull-DOWN. Usi la prima se il tuo contatto chiude a massa, la seconda se chiude a Vcc. Un valore molto usato è 10k, ma in realtà va bene qualunque valore, vedi quel che hai.
da 1K ma non è precisa la cosa.Mi spiego meglio.
Se avvio arduino il contatto non me lo legge chiuso. Devo scollegarlo e ricollegarlo.
Come faccio a leggere da subito la chiusura?
Devi usare per la resistenza di PullDown un valore più alto, ad esempio 10K
In pratica hai un collegamento simile a questo
Dove R1 e' la tua resistenza da cui arrivano i 5V, R2 è la reisstenza di PullDown che hai aggiunto
Se fai il calcolo vedi che con le due reistenze uguali hai in uscita la meta' della tensione, 2.5V.
Un valore basso perche' Arduino lo interpreti con HIGH
Brunello:
Devi usare per la resistenza di PullDown un valore più alto, ad esempio 10K
In pratica hai un collegamento simile a questo
Dove R1 e' la tua resistenza da cui arrivano i 5V, R2 è la reisstenza di PullDown che hai aggiunto
Se fai il calcolo vedi che con le due reistenze uguali hai in uscita la meta' della tensione, 2.5V.
Un valore basso perche' Arduino lo interpreti con HIGH
Ho messo da 1k perchè avevo letto in giro sul forum che bastava anche da 1k. Messa da 10, alimento arduino e mi rileva subito il contatto chiuso. Grazie
Sto facendo un sistema di allarme