Controllare lo stato di un contatto

Ciao a tutti,

nella realizzazione del mio progetto ho bisogno di controllare ( ciclicamente nel metodo ( o funzione/routine ) loop() ) lo stato di un pin in entrata, cioé devo controllare se il pin sta ricevendo in input il consenso ( contatto chiuso ) oppure no. Girando in rete non ho trovato nulla a riguardo: avete qualche consiglio da darmi ?

Grazie

con digitalRead(pin_x) leggi lo stato dell'igresso lo metti in una variabile e controlli lo stato. Il pin naturalmente lo devi configrare come input.

val = digitalRead(Pin_X);
if (val == HIGH) {
// se è alto (vcc , 1 logico) esegui questo codice
} else {
// altrimenti fai quest'altro codice
}

Se é un contatto isolato senza riferimento a massa o a una tensione ti serve anche una resistenza.
Puoi usare la resistenza Pullop integrata ( facendo un digitalWrite (pin,HIGH) la attivi e metti il contatto tra entrata e massa o metti un resistenza tra entrata e massa e il contatto tra entrata e +5V.
Ciao Uwe

Ciao,

intanto grazie per le risposte. Quindi sostianzialmente se devo controllare che un contatto si aperto o chiuso ( ad esempio il mio termostato che non dovrebbe mandare nessuna tensione, anche se devo verificare, quando chiude il contatto ) in assenza di tensione ho bisogno di utilizzare una resistenza ? Intendevate questo ? Esiste un modo per calcolare da quanto deve essere la resistenza (quanti Ohm) ?

La logica é la stessa come usare un intruttore o un tasto.

Il valore non é critico; non deve essere troppo grande perché senó Arduino non lo vede HIGH. e non troppo piccolo perché consuma troppa corrente.
Valori tra 10kOhm e 100kOhm vanno bene.
Quello interno é tra 20kOhm e 50 kOhm.

Ciao Uwe

ciao uwefed,

grazie per la risposta. Appena ho terminato il progetto e la programmazione posterò tutto ( schema e scopo ).
:wink: