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 ). ;)