premetto che sono completamente digiuno di elettronica. Ho comprato un clone di Arduino UNO e sto seguendo i tutorial che sono giunti con il kit. In una lezione precedente spiegavano la necessità di inserire (via codice, nel nostro caso) una resistenza pull-up per stabilizzare il livello di corrente in ingresso in un pin in modo da non falsarne la lettura. Il caso in questione era un semplice switch, comunque veniva spiegata la necessità di inserire questa resistenza.
int ledPin = 5;
int buttonApin = 9;
int buttonBpin = 8;
byte leds = 0;
void setup()
{
pinMode(ledPin, OUTPUT);
pinMode(buttonApin, INPUT_PULLUP);
pinMode(buttonBpin, INPUT_PULLUP);
}
Andando un po' più avanti, ora sto seguendo un semplice caso di interruttore a inclinazione, che dovrebbe essere niente altro che un semplice interruttore attivato da una sfera metallica all'interno di un cilindro... però nel codice che accompagna la lezione la resistenza pull-up non viene menzionata
void setup()
{
pinMode(13,OUTPUT);//initialize the ledPin as an output
pinMode(2,INPUT);
digitalWrite(13, HIGH);
}
Perché questa differenza secondo voi? E' davvero il caso di inserire SEMPRE una resistenza pull-up in caso di lettura di input?
... un pin dichiarato come INPUT è un pin che si trova in stato di "alta impedenza" e, come tale, in grado di captare dall'ambiente qualsiasi disturbo elettromagnetico. In parole povere, un pin in INPUT lasciato aperto, senza essere portato a a LOW o ad HIGH (ovvero lasciato flottante) può leggere, in modo del tutto casuale ed in qualsiasi momento, sia valori HIGH che LOW.
Per evitare questo problema, ogni volta che un pin è collegato ad un interruttore, la cosa migliore è imporre uno stato fisso per quando l'interruttore è aperto (ovvero il pin non è collegato a nulla), e lo stato opposto per quando l'interruttore è chiuso.
Il consiglio è di mettere una resistenza di "pull-up", ovvero una resistenza verso Vcc (o usare quelle che si possono attivare internamente al chip) così da avere il pin normalmente a livello HIGH e mettere il pulsante che chiude a GND così da avere LOW quando esso è chiuso.
Grazie Guglielmo, chiarissimo... rispecchia quello che avevo letto sulle resistenze pull-up. Quindi o si usano quelle integrate o si inseriscono nel circuito esterno, ma comunque è sempre meglio inserirle. Grazie ancora.
Grazie anche a te Gianluca, mi hai tolto un bel dubbio
Nel frattempo ho chiesto a mio padre (ex ferroviere in pensione) di prestarmi il suo vecchio libro di elettronica... devo partire dalle basi e non credo che i principi della fisica siano cambiati nel tempo.
... puoi anche fare questa ricerca con Google "imparare l'elettronica partendo da zero pdf" ... sicuramente troverai un bel libro, in .pdf, che pubblico molto tempo fa Nuova Elettronica. Non posso metterti il link perché ... pur essendo Nuova Elettronica ormai fallita, comunque il materiale è soggetto a copyright ... ma vedrai che con una ricerca su Google lo trovi al primo colpo ...