Problema digital input (va HIGH senza motivo)

Ho appena acquistato il mio primo arduino ma ho subito dei problemi:

Avevo iniziato con un progetto semplice ma non andava o andava a casaccio, allora ho provato una cosa banalissima.

Se chiudo il circuito mi viene un messaggio sulla seriale. in pratica se metto un PInN in input, per esempio il 6, e chiudo il circuito dovrei vedere un messaggio sulla seriale.

Sketch banalissimo:

int bottone = 6;

void setup() {
  Serial.begin(9600);
  pinMode(bottone,INPUT);

}

void loop() {
  if(digitalRead(bottone)== HIGH){
    Serial.println("Bottone premuto");
  delay(2000);
  }

}

Il problema è che se carico il programma e poi collego un cavetto nel pin 6 mi viene rilevata una lettura (anche se dall’altra parte non è collegato nulla, cioè cavo volante). Lo stesso avviene se muovo il cavo o se chiudo il circuito con le dita. La cosa ancora più strana è che mi fa lo stesso problema anche se metto il cavetto in uno dei pin vicini Es 4 e 5. Ho provato a mettere come pin nel programma il numero 8, mi da lo stesso problema di contatto, ma non da errore se collego i pin vicini. Secondo voi sbaglio io ho è fallata la board?

Il tuo pin di input è floating, devi usare un pull-up o pull-down, vedi qua per un esempio:

Hai inserito il resistore di pull up?

No, non so nemmeno cosa sia un resistore di pull up, come ho detto il cavo è collegato solo da un parte. quindi il circuito è aperto! Ma la cosa più strana è che mi fanno contatto i pin vicini.

Non c'è niente di strano, è un effetto più che noto a chi studia l'elettronica. Leggi il tutorial che ti ho linkato e scoprirai cos'è un pull-up/down e come può risolvere il tuo problema.

Ho seguito il tuo consiglio e ho messo la resistenza di pull-up. IL problema del falso contatto è risolto, tuttavia quello dei pin vicini no. Cioè se il cavo lo metto nel 5 o nel 7 viene visto valore alto nel 6.

Temo che tu non abbia capito granché di come e perché si usa il pull-up/down... Rileggi e cerca di CAPIRE.

Un entrata ha un impedenza cosí alta che disturbi o pin vicini influenzano il pin. Per quello devi mettere una resistenza (basta un valore altino, qualcosa tra 100k e 10kOhm) tra il pin e massa o +5V (secondo collegamento del pulsante o uscita open Collector collegato.

La resistenza porta l' entrata a un potenziale logico definito.

Ciao Uwe

Grazie a tutti. Mi sono informato e ho letto, più ho guardato alcuni schemi che mi hanno chiarito alcuni punti. Sono passati diversi anni dall'ultima volta che io e l'elettronica ci siamo visti!

non so nemmeno cosa sia un resistore di pull up

e no, non te la cavi con

Sono passati diversi anni dall'ultima volta che io e l'elettronica ci siamo visti!

Perchè Vi mettete a fare certe cose se non avete le più pallide idee di elementi base dell'elettronica?

pablos: Perchè Vi mettete a fare certe cose se non avete le più pallide idee di elementi base dell'elettronica?

Perché all'inizio non ci si pensa che l' alettronica possa essere cosí complicata. Ciao Uwe

peg1987:
Ho appena acquistato il mio primo arduino ma ho subito dei problemi:

Ti invitiamo a presentarti (dicci quali conoscenze hai di elettronica e di programmazione) qui: Presentazioni
e a leggere il regolamento se non lo hai già fatto: Regolamento
Qui una serie di link utili, non inerenti al tuo problema: