La corrente negli schemi pull-up/down.

Buongiorno a tutti :smiley:
Tempo fa proposi una domanda simile, ho però necessità di chiedere nuovamente, dato che alcune cose non mi sono ancora chiare.

I soggetti sono gli schemi di pull-down/up, in questo caso specifico di pull-down; mi vorrei soffermare con più attenzione sull’aspetto corrente, dato che conosco abbastanza il loro utilizzo e funzionamento per la logica tri-stato.

Allego sotto lo schema che ho provato a realizzare e poi ne descriverò il comportamento e cosa non mi è chiaro.
Come potete notare c’è un led in serie al pulsante, l’ho voluto mettere come “segnalatore”.

Naturalmente se il pulsante è rilasciato, se si va a leggere lo stato del pin, esso segnalerà lo stato LOW, a causa della connessione di pull-down, mentre se si schiaccia il pulsante lo stato letto dal pin sarà HIGH.

Come già dissi, la spiegazione più semplice di cui mi sono accontentato fin ora, che si trova su internet per spiegare ai novizi, è che:
Il segnale di pull-up riusce a sopraffare quello di pull-down, in quanto più forte, non essendo intermediato da resistenze.
Ed ecco che cominciano a nascere i dubbi:

Il pin di lettura, di input ovviamente, per poter leggere ed essere collegato al polo negativo o positivo, deve avere internamente sia un collegamento a massa (0v) che all’alimentazione (5v) , (qualcuno mi corregga se sbaglio) come anche notai da un’immagine, presa dal datasheet, che mi inviarono, che allego insieme allo schema.
Però ciò che non riesco a capire è, essendoci una connessione a tutti e due i poli (seppur una limitata dal resistore), il comportamento della piccolissima corrente che scorre nel pin input, a causa dell’alta impedenza.

Escludo la possibilità di due correnti di verso opposto che scorrano su tale pin, anche perché non credo sia possibile.

La seconda cosa che non mi è chiara è il fatto dell’impedenza: essendoci più vie per scaricarsi, secondo la legge che afferma che la via presa dalla corrente è sempre quella di minor resistenza/impedenza (sempre se non sbaglio), non dovrebbe passare tutta da un polo all’altro, attraverso led e resistore, a causa dell’elevata impedenza del pin input?

Per questo motivo ho voluto mettere li quel led, che seppur minimamente, a causa della resistenza da 10k, si illumina alla pressione del tasto. Dunque la connessione fra polo e polo avviene.
Allora, o si crea una connessione in parallelo, nonostante le due diverse vie per scaricarsi, oppure… Non so spiegarmelo.
Avviene lo stesso se si inverte lo schema, utilizzando una pull-up.

Alcuni mi hanno consigliato, per facilitare il tutto, di considerare il pin di lettura come neutro, come un lettore appunto, tralasciando le connessioni che vi si stabiliscono dietro.

So di inerpicarmi sempre per discorsi molto capziosi,e alla fine inutili per la pratica, ma al mio spirito di conoscitore non va giù questa cosa.
Spero che qualche buon samaritano, abbia la pazienza di rispondermi, o per lo meno di leggere tutto quello che scrivo.

Grazie a tutti voi! :slight_smile: :stuck_out_tongue: :slight_smile: :stuck_out_tongue:

Digital IO.jpg

Vi ho messo in crisi? :roll_eyes:

Io mi sono perso a metà perchè non vedo la prima domanda epoi ti sei in parte risposto da solo.

Però ciò che non riesco a capire è, essendoci una connessione a tutti e due i poli (seppur una limitata dal resistore), il comportamento della piccolissima corrente che scorre nel pin input, a causa dell'alta impedenza.

quello che non riesco a capire è ( due punti) ..... e poi? la domanda? :D

So di aver scritto in modo abbastanza za complicato ma cercavo di spiegare meglio i dubbi che avevo.

Per capire quella domanda, leggila togliendo l'inciso fra le virgole, in questo modo: Però ciò che non riesco a capire è il comportamento della...

Non ho capito nulla neanch'io.

Un pin di input riesce a leggere lo stato di un collegamento analizzando il suo potenziale. Quando il pin è collegato a massa, il pin legge LOW. Se lo colleghi a 5V, legge lo stato HIGH. Per poter lavorare correttamente senza danneggiarsi, il pin in input è un pin ad alta impedenza, ossia ha internamente una impedenza tale per cui la corrente che può scorrere in uscita o in ingresso da quel pin non danneggia il pin stesso. Evita cioè il corto circuito che lo brucerebbe. Siccome però un pin in questo stato è flottante, ossia non ha un suo stato definito e può leggere le variazioni del campo elettromagnetico (anche una mano che si avvicina ne modifica lo stato), si usa dare uno stato definito ad un pin usando un resistore esterno, che può essere collegato a massa (pull-down) oppure a 5V (pull-up). Questo resistore è di valore elevato (10K o più) affinché la corrente che scorre sia minima. Su quasi tutti i microcontrollori esistono delle pull-up interne, da 30/50K di valore, che svolgono lo stesso lavoro di quelle esterne.

Nel tuo circuito tu non sfrutti la pull-up per far illuminare il led: la pull-up è appunto un resistore collegato a 5V quindi essa fornisce corrente, non la assorbe. Il tuo led si illumina perché crei un passaggio per la corrente, premendo il pulsante, tra 5V e massa, tra il led e la R da 10K, che scarica anche la corrente in uscita dal pin di input con pull-up. Questa corrente, poi, viene scaricata sempre: se tu attivi un pin in input con pull-up interna e colleghi un led a massa, vedrai una debolissima corrente illuminare quel led.

Nello schema allegato i diodi sono di protezione per evitare che delle cariche possano distruggere l'isolazione gate-source dei MOSFET. Essendo fatti di un buon isolante una scarica alta potrebbe provocare una scarica che distrugge l' isolamento. Il MOSFET con la resistenza é la resistenza pullup interna che puó essere accesa o spenta dal MOSFET. Nel pin di entrata circola una piccola corrente di leccaggio perché l' isolamento non é perfetto. La grandezza della corrente é minore al µA. Inoltre il gate isolato é a tutti gli effetti un piccolo condensatore che deve essere caricato quando il livello cambia da LOW a HIGH (entra per un breve tempo una corrente nel pin) e scaricata quando passa da HIGH a LOW (esce per un breve tempo una corrente).

Non capisco di quali collegamenti interni parli.

Il circuito non funzionerá (dipende dal colore del LED). Non puoi mettere un LED in serie al pulsante perché quando viene premuto la tensioen sul pin sará i 5V meno la tensione forward del LED. Alcuni LED hanno una tensione forward maggiore di 2V e percui la tensione sul Pi non sará riconosciuto come HIGH. Il LED sará acceso leggermente quando premi il pulsante a causa della corrente che passa attraverso la resistenza 10kOhm.

Togli il LED

Ciao Uwe

So di aver chiesto cose strane, ma penso si capisca quello che cerco di capire. La parte focale della domanda comincia circa a metà, se vi va di rileggerla :)

Comunque leo cosa intendi tecnicamente quando dici:

leo72: Un pin di input riesce a leggere lo stato di un collegamento analizzando il suo potenziale. Quando il pin è collegato a massa, il pin legge LOW. Se lo colleghi a 5V, legge lo stato HIGH

Sapevo che a seconda del polo dove lo si collegava cambiava lettura, ma pensavo in base alla piccolissima corrente che scorresse nel pin input, non in base alla tensione del punto dove si collega. Comunque sia parlando di tensione: 1) la resistenza di pull up/down che ruolo ha a che fare con questa? 2) per misurare/avere una tensione devono essere presi di riferimento due punti a potenziale diverso, quali sarebbero questi due punti? Ci devono essere per forza i poli, + e -, intermante al pin.

Scusate per gli errori ma sto scrivendo col cellulare ed il correttore :roll_eyes:

uwefed:
Non capisco di quali collegamenti interni parli.

Ai collegamenti interni di cui parlo ci sono arrivati seguendo questo pensiero:
Se nel pin di input passa (entra o esce) un corrente, sia pur piccolissima, esso deve essere necessariamente collegato a qualcosa che la possa fornire (positivo) o assorbire (negativo) questa corrente.
Allora pensavo che esso internamente fosse collegato sia al polo positivo che al negativo.

In poche parole vorrei capire con quale diavolo di tipo di connessioni sul pin input é possibile leggere l’Input.
:drooling_face:

Comunque parlando del led, quello lo avevo messo solo per verificare la mia ipotesi, non lo avrei mai usato per un collegamento “ufficiale” diciamo.
Io ne ho usato uno verde e sembrava tutto funzionare.
Comunque il motivo per cui non dovrebbe andare se ho capito bene, e che è soggetto ad una caduta di tensione (che non dovrebbe esserci) , che altera in qual modo la lettura no?
Io al posto del led ho usato anche resistenze, di svariati ohm anche ed è saltato infine fuori che il segnale letto da arduino (HIGH o LOW) è sempre quello del polo a cui il pin input è collegato con minor resistenza.
Anche un potenziometro per curiosità ho provato, ed ha funzionato tutto secondo la teoria che ho citato, appena la resistenza scendeva sotto l’altra collegata all’altro polo, variava il valore letto.

Infine ho provato anche ad utilizzare reistenze uguali per i due collegamenti (up e down), ed è saltato fuori che il valore letto è sempre quello del primo polo collegato.

Penso come abbiate capito sono un sperimentatore, ma vorrei capirci qualcosa di questi comportamenti, non solo limitarmi all’osservazione esterna.

TheBoss97: So di aver chiesto cose strane, ma penso si capisca quello che cerco di capire. La parte focale della domanda comincia circa a metà, se vi va di rileggerla :)

aiutaci, riscrivila con parole piú chiare. Quá nessuna ha voglia di indovinare quello che vuoi dire.

Comunque leo cosa intendi tecnicamente quando dici:

leo72: Un pin di input riesce a leggere lo stato di un collegamento analizzando il suo potenziale. Quando il pin è collegato a massa, il pin legge LOW. Se lo colleghi a 5V, legge lo stato HIGH

Sapevo che a seconda del polo dove lo si collegava cambiava lettura, ma pensavo in base alla piccolissima corrente che scorresse nel pin input, non in base alla tensione del punto dove si collega.

Circuiti CMOS funzionano a tensione. Hanno imperfezioni percui circola una piccola corrente dato dalla differenza di potenziale tra pin di ingresso e i 5V o la massa ( a secondo la tensione aplicata al pin). se i Transistori dei COMOS fossero perfetti non ci sarebbe corrente. Su entrate di amplificatori operazionali con entrate JFET hai impedenze nell ordine di 10^12.

Comunque sia parlando di tensione: 1) la resistenza di pull up/down che ruolo ha a che fare con questa?

serve dare un potenziale definito quando l' entrata non é collegata a una sorgente di tensione ( 5V, Massa, partitore resistivo o un uscita qualsiasi).

2) per misurare/avere una tensione devono essere presi di riferimento due punti a potenziale diverso, quali sarebbero questi due punti? Ci devono essere per forza i poli, + e -, intermante al pin.

La tensione viene normalmente misurato tra entrata e massa.

Ciao Uwe

TheBoss97:

uwefed: Non capisco di quali collegamenti interni parli.

Ai collegamenti interni di cui parlo ci sono arrivati seguendo questo pensiero: Se nel pin di input passa (entra o esce) un corrente, sia pur piccolissima, esso deve essere necessariamente collegato a qualcosa che la possa fornire (positivo) o assorbire (negativo) questa corrente. Allora pensavo che esso internamente fosse collegato sia al polo positivo che al negativo.

È una corrente parasita data da imperfezioni dei transistori di cui é costruito il Controller. I transistori sono collegati all' alimentazione o a massa.

In poche parole vorrei capire con quale diavolo di tipo di connessioni sul pin input é possibile leggere l'Input. :drooling_face:

Datti una calmata. Limitati a sapere che é cosí. Senó devi imparare i circuiti interni degli integrati che sono 1) non reperibili e 2) complicati perché sono fatti di tantissimi transistori.

Comunque parlando del led, quello lo avevo messo solo per verificare la mia ipotesi, non lo avrei mai usato per un collegamento "ufficiale" diciamo.

Ti ho risposto.

Io ne ho usato uno verde e sembrava tutto funzionare.

Funziona per caso perché se avresti usato uno blú non funziona. Non sai delle problematiche collegate all elettronica. Ti mancano le basi.

Comunque il motivo per cui non dovrebbe andare se ho capito bene, e che è soggetto ad una caduta di tensione (che non dovrebbe esserci) , che altera in qual modo la lettura no?

Perché non dovrebbe esserci. Se attraverso un LEd circola corrente c' é una caduta di tensione. Se la tensione all entrata é minore di 0,6*Valimentazione ( 3V con aliemntazione 5V) non viene piú riconosciuto HIGH.

Io al posto del led ho usato anche resistenze, di svariati ohm anche ed è saltato infine fuori che il segnale letto da arduino (HIGH o LOW) è sempre quello del polo a cui il pin input è collegato con minor resistenza. Anche un potenziometro per curiosità ho provato, ed ha funzionato tutto secondo la teoria che ho citato, appena la resistenza scendeva sotto l'altra collegata all'altro polo, variava il valore letto.

I limiti di riconoscimento con 5V di alimentazione sono: sotto 1,5V LOW sopra 3V HIGH. Se usi un partitore resistivo devi calcolare la tensione che ha il pin.

Infine ho provato anche ad utilizzare reistenze uguali per i due collegamenti (up e down), ed è saltato fuori che il valore letto è sempre quello del primo polo collegato.

tra 1,5V e 3V non cambia stato. resta HIGH o LOW come era prima.

Penso come abbiate capito sono un sperimentatore, ma vorrei capirci qualcosa di questi comportamenti, non solo limitarmi all'osservazione esterna.

Devi imparare le basi dell elettronica senó sperimentando richi velocemente di rompere qualcosa e di farti male. Ci sono discussioni di questo tema.

Ciao Uwe

Grazie Uwefed per le risposte, per fortuna ci sei te che te ne preoccupi sempre. Ti volevo dire comunque che ero e sono calmissimo, forse hai frainteso il mio modo di dire :) Comunque non pensavo di poter rischiare qualcosa, almeno su delle innocue misurazioni, con quai problemi potrei avere a che fare, oltre ai soliti sovraccarichi?

Finalmente ho scoperto "cosa leggono" questi input:

Circuiti CMOS funzionano a tensione. Hanno imperfezioni percui circola una piccola corrente dato dalla differenza di potenziale tra pin di ingresso e i 5V o la massa ( a secondo la tensione aplicata al pin). se i Transistori dei COMOS fossero perfetti non ci sarebbe corrente. Su entrate di amplificatori operazionali con entrate JFET hai impedenze nell ordine di 10^12.

Per voi saranno cose scontate e banali, ma per chi ci sbatte la testa per i primi tempi è alquanto arduo da comprendere fermamente, anche perchè nessun testo per chi inizia se ne fermo a parlare, ma si limita a citare la storiella del segnale più forte.

Dunque se è per la tensione, e se questa è misurata in base a massa, potrei leggere la tensione letta dal pin misurando ad esempio la d.d.p. fra il punto dove vorrei collegare il pin input e la massa giusto?

Poi ti vorrei chiedere un altra cosa, anche se banale.Mi potresti spiegare con poche parole e calcoli come funziona questa lettura sul classico schema di pull-down (ad esempio) con R = 10k? Essendoci una resistenza sola, quale è il valore proprio di tensione misurata? Dovrebbe essere sempre intero, dato che non c'è un vero e proprio partitore. Perchè non riesco a capire, essendo collegati sia GND che 5V, come uno dei due viene preso di riferimento, per il livello di tensione, e come alla pressione del pulsante il " segnale più forte sovrasti quello intermediato da resistenze". In sostanza come fa a leggerne uno solo se sono collegate tutti e due.

Sento che mi sto avvicinando alla comprensione :) Grazie ancora

Sento che mi sto avvicinando alla comprensione

Più che altro ti stai avvicinando a costruire nella tua mente una parvenza di realtà approssimata che ti permetta di andare avanti senza sconforto e confusione, questo inizialmente è un processo comune a tutti gli esseri umani.

La realtà è abbastanza complessa e piena di varianti che possono anche essere studiate se si hanno le basi di elettronica ed elettrotecnica, diversamente c'è la certezza di prendere fischi per fiaschi.

Se hai interesse verso la materia, puoi cominciare dalla elettrotecnica, correnti alternate, continue, frequenza ecc, circuiti CRL (componenti passivi) sottoposti a corrente alternata, continua, a impulsi ecc.

Poi legge di ohm e poi puoi passare allo studio dei componenti elettronici attivi, per scoprire che in un mostef o bjt tra gli elettrodi c'è un condensatore. Poi si studiano le porte logiche TTL, CMOS ecc.

Alla fine dello studio scoprirai che il mistero rimane in quanto con precisione e dettaglio cosa c'è dentro il micro io non lo so. :stuck_out_tongue_closed_eyes:

Ciao.

Hai descritto a perfezione Mauro :D Comunque hai proprio ragione, tanti testi sono proprio devianti per questo, si limitano al livello empirico. Non ne ho ancora trovato qualcuno che "spieghi le basi in modo approfondito" Comunque sia di sicuro dopo queste domande ho capito qualcosa di più. Adesso andrò più a fondo con questo studio, anche se già ho cominciato e appreso diversi concetti. Le correnti alternate non ne ho molto sentito parlare in questi casi, forse solo in ambiente musicale/radio/trasmissione, se non sbaglio, ma sono ancora lontano. Adesso mi devo concentrare più sul funzionamento di questi componenti per la DC.