Modo giusto di collegare "roba" ai pin.

Ciao :slight_smile:

Ho googlato ma son confuso :cold_sweat:
Con i pulsanti va messa una r di pull-up/down per evitare che il pin in ingresso legga uno stato HIGH/LOW a caso dato da interferenze e un condensatore da 1uf per evitare il debounce.
Con i transistor PNP va una r di pull-up con i NPN una di pull-down.

Questa eeprom a sinistra è collegata direttamente, mentre a destra ha condensatore e resistenze.
[EDIT: IMMAGINE NELL'ALLEGATO SOTTO]

edit by mod: non siamo ciechi :wink:

Il condensatore lì serve per evitare sbalzi di corrente e le resistenze per evitare interferenze ?
Perchè il condensatore è 100nf e le r da 2.2k ? Non andrebbero collegate al - invece che a +5?

Le r di pull-up/down vanno messe sempre su tutti i pin che si usano per evitare interferenze ?
Vanno calcolate o vanno bene "a caso" tipo 2k, 10k, 20k o anche 100k se non ho altro a disposizione ?

No, in quel caso è il bus I2C che necessita di una piccola corrente di pull-up, tipicamente nell'ordine dei 2/3 mA. Per questo si aggiungono 2 R sulle linee SDA e SCL.

Tieni però presente che l'Arduino di default attiva le piccole resistenze di pull-up integrate (~30K) nei in per cui quel valore di 2K2 è riferito all'uso in parallelo con le prime, in modo da arrivare al valore di corrente su citato.

Il condensatore di 0.1 uF serve come disaccoppiamento. Va messo sui pin VCC e GND in tutti gli integrati per filtrare disturbi sull'alimentazione e come piccolo serbatoio di energia per eventuali sbalzi.

Quindi quando sul pin c'è LOW la corrente passa da +5 nella R e nell'arduino, quando invece ce HIGH passa dall'arduino più quella dal +5 nel pin della EEPROM ?

Non esattamente.
Il bus I2C si basa su componenti open drain, per cui essi sono capaci di "mandare giù" il segnale basso (Low) ma non sono capaci di 2 "tirarlo su" (High). Per questo ci sono le resistenze di pull-up: per dare il segnale alto, che a mandarlo basso ci pensano i dispositivi stessi. La R va poi calcolata per fornire la corrente che ti dicevo prima.

Però l'ho collegato "nudo" e va cmq è grazie alle r di pullup dell'arduino ? (non avevo ancora visto lo schema :cold_sweat: )

Sì, ma essendo resistenze abbastanza altine di valore, si tende ad aggiungerne un paio esterne.

Faccina:
Però l'ho collegato "nudo" e va cmq è grazie alle r di pullup dell'arduino ? (non avevo ancora visto lo schema :cold_sweat: )

Se funziona o no dipende dal numero ci dispositivi collegati alla I2C e dalla lnghezza dei cavi di collegamneto.

IL Bus I2C viene tenuto HIGH dalle resistenze colleate a +V. Le uscite possono portarlo a massa. Perché ritorna a +V la resistenza deve caricare le capacitá parasite del cavo e dei dispositivi. Se la corrente attraverso queste resistenze é troppo piccola il Bus non viene portato di nuovo a tensioni riconosciute HIGH prima che l' uscita lo porti a massa per mandare il prossimo Bit.

Ciao Uwe

Modo giusto di collegare "roba" ai pin.

Però l'ho collegato "nudo" e va cmq

insomma qui si collegano robe nude

Articoli da wikipedia :slight_smile:

pablos:

Modo giusto di collegare "roba" ai pin.

Però l'ho collegato "nudo" e va cmq

insomma qui si collegano robe nude

Articoli da wikipedia :slight_smile:

sì, faccina ha un vocabolario piuttosto liberale per trovarsi a scrivere su un Forum che parla di Arduino ed Elettronica; non ti nascondo che appena ho letto il titolo del Topic avevo pensato che volesse realizzare un analizzatore di sostanze stupefacenti :stuck_out_tongue_closed_eyes:

A cosa pensate?? È caldo.

uwefed:
A cosa pensate?? È caldo.

Allora sta lavorando in zona lineare. :smiley:
Quindi non commuta, non va su e giù ma rimane a centro, insomma non switcha.

PS:si fa caldo, però il sensore NTC posato a terra segna 22.92 mentre quello vicino alla tastiera segna 26.57, mi sa che dormo per terra.

@Mauro:
alle 3:41 ancora a decidere dove dormire? :wink:

Incredibile!!!
Avete scoperto che l'aria calda tende a salire. :grin: :astonished:

Si vede che abbiamo studiato? :wink: