Info su pulsante

Sono sempre io che vi scoccio con una delle mie domande sempre stupide XD
Volevo provare ad accendere un led con un pulsante, una cosa banale direste voi, .... ma mi sn reso conto che nn so quale resistenza ci voglia e soprattutto su quale pin mettere gnd su quale 5v e su quale leggo il valore digitale... Grazie

Cominciamo col dire che gli input sono normalmente tutti tri-state, parola magica che significa che in assenza di segnale non assumono un livello logico HIGH o LOW, ma, appunto, indeterminato.

In queste condizioni, devono per forza essere polarizzati mediante un resistore: di pull up se connesso ai +5V oppure di pull down se connesso a ground. Il valore di tale resistore è in genere piuttosto alto dai 10k in sù.

Fortunatamente all'interno del micro sono presenti per ogni linea di ingresso dei resistori di pull up da 20k che possono essere attivati mediante l'istruzione (da inserire nel setup) pinMode(Pin, INPUT_PULLUP): con questa istruzione non solo si dichiara il pin come ingresso, ma ad esso viene "collegato" il resistore di pull up da 20k.

A questo punto all'ingresso si può collegare un pulsante collegato verso ground: quando aperto lo stato del pin sarà HIGH (grazie al resistore), mentre quando chiuso sarà LOW (pulsante premuto).

Ci sono poi altre importanti questioni da tener presenti come ad esempio il "rimbalzo" del contatto del pulsante che richiede un circuito di "debouncing" (anti rimbalzo): ti consiglio di studiare la questione con l'esempio sull'IDE.

Ettore Massimo Albani

non pensavo che usare un pulsante fosse così difficile xD, cmq grazie mille mi sei stato di molto aiuto :slight_smile: ma posso chiederti un ulteriore favore?
In web ho trovato 100 diverse immagini di un possibile circuito XD mi potresti postare l'immagine giusta? xD
Grazie :slight_smile:

Anche il sito di Arduino ha degli esempi:

Oppure uno completo di spiegazioni e ben fatto è su Adafruit:
http://www.ladyada.net/learn/arduino/lesson5.html

leo72:
Anche il sito di Arduino ha degli esempi:
http://arduino.cc/en/Tutorial/Button

Questo esempio, a differenza della spiegazione di cyberhs, usa una pull-down esterna. Lui invece la pull-up interna di Arduino.
In base alla logica di programmazione, pulsante chiuso e segnale HIGH o LOW, si sceglie o l'una o l'altra soluzione.