• Non ci sono risultati.

2Inputdigitaleconunpulsante 1Inputdigitali Inputdigitali AzzoliniRiccardo2020-10-22

N/A
N/A
Protected

Academic year: 2021

Condividi "2Inputdigitaleconunpulsante 1Inputdigitali Inputdigitali AzzoliniRiccardo2020-10-22"

Copied!
4
0
0

Testo completo

(1)

Azzolini Riccardo 2020-10-22

Input digitali

1 Input digitali

Una porta di I/O digitale di un microcontrollore, se messa in modalità di input, legge la tensione applicata ad essa e la trasforma in uno stato logico high (1) o low (0):

• lo stato high si ha tipicamente quando la tensione sulla porta è (circa) uguale alla tensione di alimentazione del microcontrollore;

• si ha invece lo stato low quando la tensione sulla porta è di circa 0 V.

2 Input digitale con un pulsante

Il modo più semplice per fornire un input digitale a un microcontrollore è un pulsante.

Questo può essere collegato a una porta di I/O in due modi: pull-up o pull-down.

+

I/O

+3.3 V

0 V

+

I/O

+3.3 V

0 V Pull-up

10 kΩ

Pull-down

10 kΩ

Nella configurazione pull-up:

• quando il pulsante è aperto (non premuto), la resistenza mette la porta di I/O alla tensione di alimentazione, quindi si ha uno stato logico high;

1

(2)

• quando invece il pulsante è chiuso (premuto), collega la porta di I/O direttamente a 0 V, e così si ha uno stato logico low.

Invece, nella configurazione pull-down, si ha lo stato low quando il pulsante è aperto, e high quando il pulsante è chiuso.

In entrambe le configurazioni, la resistenza ha un’importanza fondamentale: senza di essa, a pulsante aperto la porta di I/O risulterebbe effettivamente scollegata dal circuito, quindi la tensione su di essa, e dunque il suo stato logico, non sarebbero ben definiti (in questa situazione, si dice che la porta è flottante).

2.1 Scelta tra pull-up e pull-down

Tra le due configurazioni, solitamente si preferisce il pull-up, anche se il funzionamento del pull-down può risultare più intuitivo (si ha un input high, 1, quando il pulsante è premuto, e low, 0, quando non è premuto).

Un vantaggio del pull-up è la presenza di una resistenza tra la tensione di alimentazione e il pulsante: se il cavo collegato al pulsante facesse cortocircuito, creando un collegamento indesiderato a 0 V, la resistenza limiterebbe la corrente, evitando di bruciare l’alimenta- tore. Invece, nella configurazione pull-down, questo stesso cortocircuito risulterebbe in parallelo alla resistenza: di fatto, si avrebbe un collegamento diretto tra i due terminali dell’alimentatore, che rischierebbe di bruciarsi.

+

I/O

+3.3 V

0 V

+

I/O

+3.3 V

0 V Cortocircuito con pull-up

10 kΩ

Cortocircuito con pull-down

10 kΩ

2

(3)

2.2 Pull-up interni

Molti microcontrollori hanno porte di I/O dotate di resistenze di pull-up interne, che possono essere attivate o disattivate via software. In tal caso, si può omettere il pull-up esterno, collegando il pulsante come segue:

+

I/O

+3.3 V

0 V

Disattivare il pull-up interno e usarne uno esterno ha però alcuni vantaggi:

• il funzionamento del pull-up non dipende dal software (se invece si usasse quello interno, bisognerebbe assicurarsi di attivarlo);

• si può cambiare liberamente tipo di microcontrollore (ad esempio per ridurre i costi di produzione in serie di un circuito), senza essere vincolati a quelli dotati di pull-up interno né dover riprogettare il circuito;

• se per caso si bruciasse una resistenza di pull-up esterna, questa potrebbe sempli- cemente essere sostituita, mentre se si bruciasse quella interna andrebbe sostituito tutto il microcontrollore.

2.3 Pulsanti collegati da cavi lunghi

Quando un pulsante è collegato a un microcontrollore tramite un cavo lungo, il modo più sicuro per proteggere il microcontrollore da tutto ciò che potrebbe succedere al cavo (cortocircuiti, scariche elettriche dovute a fulmini, ecc.) è inserire un optoisolatore tra il microcontrollore e il cavo. Ad esempio:

3

(4)

+

I/O

+3.3 V

0 V 10 kΩ

1 kΩ +12 V

0 V

Così, quando il pulsante viene premuto, si accende il LED dell’optoisolatore, che fa accendere a sua volta il fototransistor, e questo porta vicino a 0 V la tensione alla porta di I/O. Quando invece il pulsante è aperto, il fototransistor non conduce corrente, dunque la porta di I/O rimane a 3.3 V (in questo esempio) grazie alla resistenza di pull-up.

4

Riferimenti

Documenti correlati

una delle due esecuzioni parallele di simula... (lo stesso linguaggio riconosciuto da

Questo fatto è importante perché una resistenza deve essere selezionata non solo in base al suo valore di resistenza, ma anche in base alla potenza che è in grado di dissipare

Infatti, due fili conduttori paralleli (o, in generale, vicini ma non collegati) formano di fatto un condensatore, creando una rete RC indesiderata che limita la velocità di

Appena la tensione supera un certo valore chiamato tensione diretta (forward voltage, V F ), che tipicamente è di circa 0.6–0.7 V, le cariche riescono ad attraver- sare la giunzione

Se però si applica tra gate e source una tensione che polarizzi inversamente la giunzione p-n, si crea una zona di svuotamento che restringe il canale attraversato dalla corrente

Per scaricare questa tensione senza danneggiare altri componenti del circuito (ad esempio il transistor che comanda la bobina), bisogna collegare un diodo in “antiparallelo”

Ad esempio, sul tipo di scheda più comune (Arduino UNO, e i suoi tanti cloni), le porte di I/O digitali sono 14, numerate da 0 a 13, e alla porta 13 è già collegato un LED

La causa di questo comportamento strano non è un errore nel software, bensì un comportamento fisico del pulsante, chiamato bouncing: quando esso viene premuto (e quando