DHT11 e pull up

ragazzi io questo pull up non ho proprio capito a cosa serve

ho letto che per il dht11 si consiglia una resistenza di 4.7 ohm se il collegamento e meno di 20 metri poi leggo che il pull up da usare come standard è 10 kohm poi però leggo che per arduino uno ha un pull up interno che si attiva via codice

a cosa devo credere ?

qualcuno mi fa un esempio pratico nell'usare una resistenza piuttosto che un'altra e soprattuto perche è necessario un pull up??

Si è vero, Arduino ha una resistenza di pull up interna attivabile via software.

Per le spiegazioni ne trovi quante ne vuoi in rete; basta usare google ;)

Cerca per esempio: "resistenza di pull up" o "resistenza di pull up arduino" e vedrai che escono tonnellate di spiegazioni compresi sketch di esempio.

Ciao

Attilio

E proprio quella tonnellata di roba che mi ha creato dei dubbi non so cosa fare

forse ho capito... premettendo (se non ho capito male) che il pull up serve per "forzare lo stato di un pin" su alto o basso

il dht11 forse non fornisce un segnale abbastanza alto per far capire alla board che deve ricevere dati sul (nel mio caso) pin2 e quindi ci si aiuta con questa resistenza di pull up

non posso usare il pull up interno perche la libreria lo disattiva

se quello che ho detto non sono assurdità, mi rimane un unico dubbio perchè usare 10 o 4.7 kohm se il risultato finale è identico?

Non è un problema di segnale debole inviato dal DHT11 ma è un problema di indeterminatezza dello stato della porta logica di Arduino.

Senza resistenza (pull up/pull down) non hai la certezza del livello logico (HIGH/LOW) in cui si trova la porta, dal momento che qualsiasi interferenza esterna può provocare un cambio di stato. Quindi, a seconda della necessità devi forzare, in condizione di riposo, uno stato HIGH (pull up collegata a V+) o uno stato LOW (pull down collegata a GND) della porta logica. Lo stesso concetto è spiegato QUI come ti avevo già indicato nel mio post precedente.

Il tipo di collegamento e il valore della resistenza da usare sono generalmente indicati nel datasheet di ogni singolo componente. Per il DHT11 devi forzare la porta logica ad uno stato HIGH che verrà variato dal sensore quando invia i dati.

QUI il datasheet del DHT11.

Se ci fai casso, anche prendendo ad esempio solo il mondo Arduino, l'uso delle resistenze di pull up/pull down è abbastanza frequente, basti pensare alla gestione di un semplice pulsante, proprio per il motivo di cui sopra, ossia avere la certezza che una porta logica si trovi esattamente nello stato in cui ci aspettiamo che sia, senza cambiamenti incontrollati dalle conseguenze imprevedibili.

Ciao

Attilio

@albertsal :

Considera che molto probabilmente l'uscita digitale del DHT11 sarà di tipo Open-Drain, qualche cosa così :

|500x252

... ovviamente questo è un esempio esplicativo e la sigla AD5290 non ha nulla a che vedere ;)

Come vedi, è progettato per chiudere verso massa (ovvero dare il segnale LOW), ma la condizione di HIGH la devi fissare TU con una R1.

Il valore di detta R1 è variabile (da un 10K a 2.2K e anche meno) e ... possiamo semplicemente dire che ... diminuisce all'aumentare della filatura per ragioni di impedenze e di disturbi ... :roll_eyes:

Guglielmo