Problema lettura sensore

Aiuto sto impazzendo, il mio arduino è pazzo. Visto che il mio progetto non funzionava ho staccato tutto ed ho caricato uno sketch di prova in cui l arduino eseguiva una lettura in input. Ho collegato al pin di input la 5 volt e la stampa da 1 invece staccando il filo continua a darmi 1 oppure si alterna con 0 e 1. Oppure riattaccando il filo di 5 volt si altra ancora. Si è rotto l arduino ? Come posso fare ? Per favore aiutatemi

EDIT: cambiato titolo del thread

daniele_96:
. Oppure riattaccando il filo di 5 volt si altra ancora. Si è rotto l arduino ? Come posso fare ? Per favore aiutatemi

Se lasci un input flottante è normale che leggi stati logici random, è un ingresso ad altissima impedenza e basta avvicinare la mano per farlo "impazzire".
Setta l'input con la pullup interna attiva e collegalo a GND per le prove, vedrai che segna sempre uno quando lasci l'input libero, quando lo colleghi a gnd segna sempre zero.

Grazie...però rimane il fatto che collegando un sensore di movimento o un interruttore magnetico, da sempre 1 e 0 a caso senza motivo, mentre prima a rilevazione movimento dava 1, come giusto che sia, altrimenti 0..come posso fare?

sarebbe sempre utile fornire lo schema elettrico (non freetzing) reale e programmino, sennò capisci da te che è impossibile tentare una risposta, in più che sensore usi? (cosa che dovrebbe essere riportata nello schema elettrico :wink: )

Con certi sensori é possibile che devi mettere una resistenza Pullup o Pulldown perché il sensore mette l' ucita solo su uno dei due stati logici.
Ciao Uwe

da quanto la resistenza non capisco scusatemi!

,

pull.png

Ma quale schema usare dei 2 ? Poi la cosa che non mi spiego è perché prima funzionava ? Ora anche se non collego nessun sensore legge in input il valore hight poi low e si alterna come se giocasse....

Dipende dal circuito che utilizzi , se c è un integrato leggi il datasheet , li te lo dovrebbe dire.
Comunque resistenze alte come 10k

Ho paura che tu stia usando un sensore di movimento e quello scherzo che lui ti fa sia in realtà il suo corretto funzionamento.

Come ti è stato detto, se leggi lo stato di un pin non collegato, è logico che ti dia in modo random 0 o 1, in quanto sono input ad alta impedenza.

Se fai delle prove tipo

daniele_96:
... collegato al pin di input la 5 volt e la stampa da 1 invece staccando il filo continua a darmi 1 oppure si alterna con 0 e 1. Oppure riattaccando il filo di 5 volt si altra ancora.

DEVI mettere la resistenza di pulldown, altrimenti il risultato è proprio quello ottenuto.

Ora, se fornisci qualche info in più relativamente a sensore, schema elettrico e magari sketch, noi ti possiamo aiutare, altrimenti le spariamo a caso fino a che qualche fortunello non ci azzecca.

Ok ma il problema che si presenta ora con la porta flottante mi interessa relativamente adesso....il fatto è che anche quando collego ad esempio il sensore di movimento e mi metto a fare gesti con la mano avanti...continua a restituire valori a caso invece di dare sempre 1...

Ma che sensore stai usando? Ti è stato chiesto ma ancora non l'hai detto, mi pare.

Ho usato un sensore pir di movimento poi al suo posto ho usato un contatto magnetico che funziona come un interruttore ma nulla nessun risultato positivo... La cosa che mi da fastidio é che prima funzionava alla perfezione non ho cambiato niente.... Forse il problema è l arduino non so....

Quale pir e quale contatto magnetico ? Se il pir è quello che sospetto io funziona in modo corretto praticamente quando rileva un oggetto si porta a livello alto per un tempo t e poi torna basso.
Per utilizzarlo come interruttore puoi utilizzare un contatore e una soglia di tempo.

Il por in questione è questo http://www.cariatielettronica.it/images/20130424085501-pir.jpg io mettendo la mano D avanti rileva 0 e 1 alternandosi metre prima quando passavo la mano rilevava uno quando la levavo rilevava 0 ....

Si può riflashare l atmega o sostituirlo??

come ti avevo già detto ad inizio conversazione, ci volgiono:

1- gli schemi elettrici reali (con nome e cognome dei componenti)
2- il programmino che usi
3- optional il link al datascheet dei componenti critici (nel tuo caso il sensore ma non la sua foto)

sennò ci basiamo sul nulla per darti uan risposta, e tal risposta non vale più del nulla :frowning: (almeno che non intuiamo il problema)

Grazie a tutti per il supporto allora 1 problema l ho risolto ovvero quello che collegando direttamente la 5 volt al pin di input legge 1 e quando stacco il filo legge 0 :)) per risolverlo ho fatto semplicemente nel seguente modo: visto che l input risultava sempre 1 sia collegando il cavo di 5 volt al pin di input che levandolo ho collegato i
Pin di input alla gnd e mi ha dato finalmente 0 poi sempre che si sia ripreso infatti attaccando e staccando il cavo dalla 5 volt L pin di input da rispettivamente 1 e 0 grazie alla risoluzione di questo problema il sensore magnetico funziona invece continuo a riscontrare problema con i sensori pir ho provato gli schemi pulldown e pullup ma niente rileva sempre 0 come se non fosse attaccato ho provato tutti e 4 i miei sensori pir credendo che uno era rotto ma niente .....

lo sketch è questo semplicemente quello fornito dall ide nella sezione esempi basic digitalread

/digital pin 2 has a pushbutton attached to it. Give it a name:
int pushButton = 2;

// the setup routine runs once when you press reset:
void setup() {
  // initialize serial communication at 9600 bits per second:
  Serial.begin(9600);
  // make the pushbutton's pin an input:
  pinMode(pushButton, INPUT);
}

// the loop routine runs over and over again forever:
void loop() {
  // read the input pin:
  int buttonState = digitalRead(pushButton);
  // print out the state of the button:
  Serial.println(buttonState);
  delay(1);        // delay in between reads for stability
}