"Sketch Button" dubbio riguardo la resistenza

Ciao ragazzi ho un dubbio sulla posizione della resistenza di un circuito (sketch button)....
Vi allego l'immagine...

in pratica non capisco a cosa possa servire quella resistenza :confused:

insomma limita la corrente che arriva a GND, ma non dovrebbe esserci anche un resistenza che limiti (quando il pulsante è premuto) la corrente al pin 2 ???

Un entrata ha un impedenza cosí alta che vengono lette disturbi elettrici percui un entrata lasciata aperta non ha sicuramente un potenziale di HIGH o LOW. La resistenza tra entrata e massa porta l' entrata a massa. Non ci sará un flusso di corrente significativo perché l' entrata é a alta impedenza. Se schiacci il pulsante porti l' entrata a HIGH e ci sará una corrente non proprio voluta che circola tra massa e +5V atttraverso la resistenza. Questa corrnete é piccola perché la resistenza ha un valore abbastanza alto.

Ciao Uwe

uwefed:
Un entrata ha un impedenza cosí alta che vengono lette disturbi elettrici percui un entrata lasciata aperta non ha sicuramente un potenziale di HIGH o LOW. La resistenza tra entrata e massa porta l' entrata a massa. Non ci sará un flusso di corrente significativo perché l' entrata é a alta impedenza. Se schiacci il pulsante porti l' entrata a HIGH e ci sará una corrente non proprio voluta che circola tra massa e +5V atttraverso la resistenza. Questa corrnete é piccola perché la resistenza ha un valore abbastanza alto.

Ciao Uwe

perdonami, ma per via della mia ignoranza in materia, non ho capito molto :frowning: potresti spiegarti con termini più semplici? te ne sarei veramente grato

allego anche lo schema

Forse ho capito:

Quando premiamo il pulsante la corrente va dal pin 5 volt al pin 2, e a sua volta la corrente va a GND. Solo che per evitare il corto coorcuito tra pin2 e GND ci vuole la resistenza.

Pero' mi sfugge ancora del tutto il perche' tra pin 5 volt e pin 2 non ci voglia la resistenza....

Eureka! Credo di aver capito:

Nello sketch "Button" si dichiara il pin 2 come pin di INPUT tramite pinMode().

Quando si dichiara un pin come INPUT si attiva una resistenza interna, quindi ecco spiegato perche' non ci vuole una resistenza :smiley:
Mentre la resistenza presente nello schema serve a non fare andare in corto alimentazione e massa.

Giusto?????? :slight_smile:

No. Un entrata legge una tensione non una corrente.
Un entrata ha una resistenza interna (resistenza tra l'entrata e massa o +5V mollto alta che quasi non circola corrente).
Per leggere qualcosa di sicuro quando il pulsante non é premuto ci vuole la resistenza esterena.
Quando é premuto il pulsante all' entrata arrivano i 5V. Una conseguenza é che circola una corrente piccola attraverso la resistenza esterna perché ci sono 5V ai suoi capi.

Ciao Uwe

Credo che il collegamento a massa, tramite resistenza, serva a
tenere pulito il pin da eventuali correnti induttive

uwefed:
No. Un entrata legge una tensione non una corrente.
Un entrata ha una resistenza interna (resistenza tra l'entrata e massa o +5V mollto alta che quasi non circola corrente).
Per leggere qualcosa di sicuro quando il pulsante non é premuto ci vuole la resistenza esterena.
Quando é premuto il pulsante all' entrata arrivano i 5V. Una conseguenza é che circola una corrente piccola attraverso la resistenza esterna perché ci sono 5V ai suoi capi.

Ciao Uwe

Ma come allora la storia dell'attivazione della resistenza interna quando si dichiara un pin come input e' na cavolata?

INPUT = Imposta il Pin come ingresso
INPUT_PULLUP = Imposta il Pin come ingresso e attiva la resistenza interna di PullUp

Brunello:
INPUT = Imposta il Pin come ingresso
INPUT_PULLUP = Imposta il Pin come ingresso e attiva la resistenza interna di PullUp

oppure

INPUT = imposta il pin come ingresso
digitalWrite(pin, HIGHT)

Ma il problema e' che nello sketch "Button", nella funzione setup non c'e'
digitaWrite.

Quindi continuo a non capire perche, tra 5v e pin 2 non ci sia una resistenza :frowning:
quando il circuito e' chiuso 5v non dovrebbe bruciare il pin2 ???

Vi prego fatemi capire :frowning:

Quindi continuo a non capire perche, tra 5v e pin 2 non ci sia una resistenza
quando il circuito e' chiuso 5v non dovrebbe bruciare il pin2 ???

Come ti ha gia' detto @Uwe, sul pin in input non leggi una corrente, ma una tensione. la corrente che scorre' e' bassa, proprio perche' si tratta di un ingresso ad alta impedenza.
Supponiamo che l'impedenza di ingresso del Pin sia 1 MOhm. La legge di Ohm ci dice che I=V/R =5/1000000 =0,000005 A = 5µA

Quindi, se guardi la figura, vedi i collegamenti possibili. su Fig1, Fig2, Fig3.
Mentre la Fig4, e' concettualmente errata, perche' in questo modo le due resistenze formano un partitore e per avere uno stato logico ZERO ben definito dovresti usare un valore di resistenza esterno molto basso. Il che porta a un consumo di corrente piu' alto

Brunello:

Quindi continuo a non capire perche, tra 5v e pin 2 non ci sia una resistenza
quando il circuito e' chiuso 5v non dovrebbe bruciare il pin2 ???

Come ti ha gia' detto @Uwe, sul pin in input non leggi una corrente, ma una tensione. la corrente che scorre' e' bassa, proprio perche' si tratta di un ingresso ad alta impedenza.
Supponiamo che l'impedenza di ingresso del Pin sia 1 MOhm. La legge di Ohm ci dice che I=V/R =5/1000000 =0,000005 A = 5µA

Quindi, se guardi la figura, vedi i collegamenti possibili. su Fig1, Fig2, Fig3.
Mentre la Fig4, e' concettualmente errata, perche' in questo modo le due resistenze formano un partitore e per avere uno stato logico ZERO ben definito dovresti usare un valore di resistenza esterno molto basso. Il che porta a un consumo di corrente piu' alto

Quindi la corrente che scorre e' bassa per l'alta impedenza. Ma cio avviene solo quando il pin e' dichiarato come INPUT ?

Rodrigoson6:
Quindi la corrente che scorre e' bassa per l'alta impedenza. Ma cio avviene solo quando il pin e' dichiarato come INPUT ?

Sí, perché come uscita serve dare o ricevere corrente e percui la resistenza interna del elemento di comutazione ( il transistor che porta la massa o l' altro che porta i 5V all uscita) é bassa per poter dare / ricevere fino 40mA.

Ciao Uwe

Ok lentamente sto capendo, ma c'e' qualcosa che mi sfugge....

  1. per dichiarare un pin come ingresso, basta solo "pinMode()" o anche "digitalWrite()". No, perchè qualora ci volesse anche "digitalWrite()" nello sketch button, nella funzione setup non c'e'.....

  2. nel precedente post @Brunello ha postato 4 schemi, dicendo che il 4° e' errato... Non capisco il perche'...

se il pin e' dichiarato come INPUT, allora la resistenza c'e' (mi riferisco all'impedenza interna) e allo stesso tempo c'e' anche la resistenza tra il pulsante e GND (per evitare il corto). E' cosi no??? Allora perche' e' sbagliato :frowning: ?

Grazie

  1. Per dichiarare il Pin come ingresso o uscita, basta il pinMode (xxx)
    il digitalWrite serve per mettere la porta LOW o HIGH se dichiarato come uscita
    Per inserire la resistenza di PullUp se dichiarato come ingresso

  2. Stai confondendo l'impedenza d'ingresso con la resistenza di PullUp interna
    Sono due cose completamente diverse.
    l'Impedenza ( vedila come un valore resistivo ) del pin messo come ingresso e' alta, quindi qualche MOhm e non influenza niente
    La resistenza di PullUp interna ha un valore di 20k-50K .
    Come dicevo, se attivi la PullUp interna, con le due resistenze formi un partitore resistivo. Quindi se ad esempio usi una resistenza di PullDown da 10k, sul pin non avrai ZERO volt, ma circa 1,5V. valore che Arduino non interpreta come LOW

Brunello:

  1. Per dichiarare il Pin come ingresso o uscita, basta il pinMode (xxx)
    il digitalWrite serve per mettere la porta LOW o HIGH se dichiarato come uscita
    Per inserire la resistenza di PullUp se dichiarato come ingresso

Quindi nello sketch "button" non e' attivata la resistenza interna, perche' basta e avanza l'alta impedenza interna. Quest'ultima e' presente perche usando "pinMode()" si e' dichiarato il pin come INPUT.
Giusto?

  1. Stai confondendo l'impedenza d'ingresso con la resistenza di PullUp interna
    Sono due cose completamente diverse.
    l'Impedenza ( vedila come un valore resistivo ) del pin messo come ingresso e' alta, quindi qualche MOhm e non influenza niente
    La resistenza di PullUp interna ha un valore di 20k-50K .
    Come dicevo, se attivi la PullUp interna, con le due resistenze formi un partitore resistivo. Quindi se ad esempio usi una resistenza di PullDown da 10k, sul pin non avrai ZERO volt, ma circa 1,5V. valore che Arduino non interpreta come LOW

Vero, vedendo il 4° disegno, credevo che la pull-up interna fosse l'impedenza interna.

P.S. Scusate la mia ignoranza :confused:

Rodrigoson6:

Brunello:

  1. Per dichiarare il Pin come ingresso o uscita, basta il pinMode (xxx)
    il digitalWrite serve per mettere la porta LOW o HIGH se dichiarato come uscita
    Per inserire la resistenza di PullUp se dichiarato come ingresso

Quindi nello sketch "button" non e' attivata la resistenza interna, perche' basta e avanza l'alta impedenza interna. Quest'ultima e' presente perche usando "pinMode()" si e' dichiarato il pin come INPUT.
Giusto?

No. Non serve attivare la resistenza pullu interna perché hai messo una esterna.
Se non metti una esterna devi attivare quella interna.

Quella interna si attiva con
pinMode(nrPin, INPUT);
digitalwrite(nrPin, HIGH);

oppure
pinMode(nrPin, INPUT_PULLUP);

Con digitalwrite(nrPin, LOW); puó essere disattivata.

Ciao Uwe

uwefed:

Rodrigoson6:

Brunello:

  1. Per dichiarare il Pin come ingresso o uscita, basta il pinMode (xxx)
    il digitalWrite serve per mettere la porta LOW o HIGH se dichiarato come uscita
    Per inserire la resistenza di PullUp se dichiarato come ingresso

Quindi nello sketch "button" non e' attivata la resistenza interna, perche' basta e avanza l'alta impedenza interna. Quest'ultima e' presente perche usando "pinMode()" si e' dichiarato il pin come INPUT.
Giusto?

No. Non serve attivare la resistenza pullu interna perché hai messo una esterna.
Se non metti una esterna devi attivare quella interna.

Ciao Uwe

Comunque esterna (o interna in assenza dell'esterna) serve sempre per evitare il corto con GND ??

Poi ho altre due domande:

  1. se attivo la pull-up interna, al pin ci sara' sempre alta impedenza??

  2. nel caso del mio circuito la resistenza esterna e' di pull-down ?? E serve per evitare il corto e per evitare fluttazioni ?

  3. domanda stupida: se nel mio circuito togliessi la resistenza esterna, e attivassi la pull-up interna, comunque considernado lo schema, la pull-up interna in realta' non fungerebbe da pull-down ?

Rodrigoson6:
Comunque esterna (o interna in assenza dell'esterna) serve sempre per evitare il corto con GND ??

NO. Serve per avere uno stato definito quando il pulsante non é premuto.

Rodrigoson6:
Poi ho altre due domande:

  1. se attivo la pull-up interna, al pin ci sara' sempre alta impedenza??

  2. nel caso del mio circuito la resistenza esterna e' di pull-down ?? E serve per evitare il corto e per evitare fluttazioni ?

  3. domanda stupida: se nel mio circuito togliessi la resistenza esterna, e attivassi la pull-up interna, comunque considernado lo schema, la pull-up interna in realta' non fungerebbe da pull-down ?

  1. NO, hai la resistenza pullup verso +5V Quando dai all entrata un segnale di 0V (massa) circolerá una corrente dato dalla tensione e dalla resistenza pullup.
  2. stessa cosa (vista dal lato sorgente di segnale) solo che la corrente ci sará quando dai un segnale +5V.
  3. Una cosa nera non é bianca. Quella interna é connessa dal pin verso +5V e percui non puó funzionare come una collegata verso massa.

Ciao Uwe

uwefed:
NO. Serve per avere uno stato definito quando il pulsante non é premuto.

Ok quindi serve per non avere fluttazioni. Ma quando il pulsante viene premuto serve per evitare il corto circuito tra 5v e GND ???

  1. NO, hai la resistenza pullup verso +5V Quando dai all entrata un segnale di 0V (massa) circolerá una corrente dato dalla tensione e dalla resistenza pullup.

In un mess precedente hai scritto che se manca la resistenza esterna devo attivare la pull-up interna...
Nel mio mess precedente ti ho chiesto se "attivando la pull-up interna, rimanesse ancora l'alta impedenza". Tu ora mi ha risposto dicendo di NO. E allora ti chiedo:
Senza l'impedenza i 5v non bruciano il pin ??? la pull-up non ha un valore pari all'impedenza.....

  1. Una cosa nera non é bianca. Quella interna é connessa dal pin verso +5V e percui non puó funzionare come una collegata verso massa.

Ti avevo chiesto se la pull-up interna fossa in realta' una pull-down, semplicemente perche negli schemi delle pull-up e delle pull-down, mi pare di aver capito che si chiama "PULL-UP" quando lo schema e':

5V --> resistenza --> pin input --> pulsante --> GND

Mentre per le "PULL-DOWN":

5v --> Pulsante --> Pin input --> resistenza --> GND

Ti ho domandato cio' perche' ho pensato che la pull-up interna si trovasse proprio sul pin (quindi dopo il pulsante come nello schema PULL-DOWN)

  1. un'ultima domanda.... Ragionando per ASSURDO, se nel mio schema togliessimo la resistenza esterna, attivando la pull-up interna, e se non dovessimo preoccuparci dei 5v che arrivamo al pin (perche' l'impedenza non c'e'), ti chiedo:

la pull-up interna svolgerebbe comunque le funzioni di evitare fluttazioni e di evitare il corto tra 5v e GND ???

P.S. Ti ringrazio per l'aiuto che mi stai dando :slight_smile: sto capendo molte cose