Innanzitutto, dimentica la resistenza da 100 Ω per ora. Non è necessario per il funzionamento del pulsante, è lì solo come protezione nel caso in cui si commettesse un errore di programmazione.
- Se si preme il pulsante P2 verrà collegato direttamente a +5 V, quindi verrà visualizzato come livello alto, essendo "1".
- Se il pulsante viene rilasciato, +5 V non conta più, ci sono solo 10 kΩ tra la porta e la terra.
×
Ora la resistenza da 100 Ω. Se si crea accidentalmente l'uscita del pin e la si imposta in basso, la pressione del pulsante provocherà un corto circuito: il microcontrollore imposta 0 V sul pin e l'interruttore +5 V sullo stesso pin. Al microcontrollore non piace e l'IC potrebbe essere danneggiato. In questi casi la resistenza da 100 Ω dovrebbe limitare la corrente a 50 mA. (Che è ancora un po 'troppo, un resistore da 1 kΩ sarebbe meglio.)
Dato che non ci sarà flusso di corrente in un pin di ingresso (a parte la bassa dispersione) non ci sarà quasi alcuna caduta di tensione attraverso il resistore.
10 kΩ è un valore tipico per un pull-up o pull-down. Un valore più basso garantisce una caduta di tensione anche inferiore, ma 10 mV o 1 mV non fanno molta differenza. Ma c'è qualcos'altro: se il pulsante viene premuto ci sono 5 V attraverso il resistore, quindi fluirà una corrente di 5 V / 10 kΩ = 500 µA. È abbastanza basso da non causare alcun problema e comunque non tieni premuto il pulsante per molto tempo. Ma è possibile sostituire il pulsante con un interruttore, che può essere chiuso a lungo. Quindi se avessi scelto un pull-down da 1 kΩ avresti 5 mA attraverso il resistore fintanto che l'interruttore è chiuso, e questo è un po 'uno spreco. 10 kΩ è un buon valore.
Nota che puoi capovolgerlo per ottenere una resistenza di pull-up e passare a terra quando viene premuto il pulsante.
Questo invertirà la tua logica: premendo il pulsante ti darà uno "0" invece di uno "1", ma il funzionamento è lo stesso: premendo il pulsante renderai l'ingresso 0 V, se rilasci il pulsante il resistore collegherà il ingresso al livello +5 V (con una caduta di tensione trascurabile).
Questo è il modo in cui di solito viene fatto e i produttori di microcontrollori ne tengono conto: la maggior parte dei microcontrollori ha resistenze pull-up interne, che è possibile attivare o disattivare nel software. Se usi il pull-up interno devi solo collegare il pulsante a terra, tutto qui. (Alcuni microcontrollori hanno anche pull-down configurabili, ma questi sono molto meno comuni.)