Go Down

Topic: Analog e digital read stesso pin (Read 413 times) previous topic - next topic

Standardoil

Ho una curiosità:
Ma se io nello stesso programma, faccio un lettura analogica e una digitale dello stesso pin, funziona?
Intendo ovviamente che se ci fosse un potenziometro, su quel pin, avrei con la analogica un intero "congruo" con la posizione del potenziometro, e con la digitale alto o basso a seconda se la lettura supera o meno la soglia
Utilità della cosa nulla (messa così, se la si pensasse in ottica di conigli e cappelli invece....)
Ma utilità a parte, funzionerebbe?
Purtroppo non ho qui una UNO per provare....
Prima legge di Nelson (che sono io): Se vuoi il mio aiuto dimostrami almeno che hai letto il nostro "aiutateCi ad aiutarVi"

Non bado a studenti, che copino altrove

Tu hai problema-Io ti domando-Tu non mi rispondi: vuol dire che non ti serve più

gpb01

#1
May 16, 2019, 08:39 am Last Edit: May 16, 2019, 08:39 am by gpb01
Secondo me dovrebbe funzionare ...
... questo è lo schema dei collegamenti di un generico pin Pxn con tutte le sue possibili "funzioni alternative" (ove presenti).



Come si vede il collegamento che va al AIOx è indipendente dai collegamenti della parte digitale, quindi non vedo perché non dovresti poter fare le due cose ;)

Guglielmo
Search is Your friend ... or I am Your enemy !

gpb01

... aggiungo solo che, relativamente alla lettura sui pin digitali, ti ricordo quanto ho già scritto QUI ;)

Guglielmo
Search is Your friend ... or I am Your enemy !

Standardoil

Prima legge di Nelson (che sono io): Se vuoi il mio aiuto dimostrami almeno che hai letto il nostro "aiutateCi ad aiutarVi"

Non bado a studenti, che copino altrove

Tu hai problema-Io ti domando-Tu non mi rispondi: vuol dire che non ti serve più

paulus1969

Però spesso i circuiti esterni sono ottimizzati in modo diverso a seconda che si vogliano usare letture digitali o letture analogiche.

Standardoil

Vediamo se ho capito giusto
Le due funzioni sono indipendenti e quindi io potrei avere anche un riferimento di tensione AREF non pari av5 volt, giusto? Pur lavorando, quando in digitale, a 5 volt
Prima legge di Nelson (che sono io): Se vuoi il mio aiuto dimostrami almeno che hai letto il nostro "aiutateCi ad aiutarVi"

Non bado a studenti, che copino altrove

Tu hai problema-Io ti domando-Tu non mi rispondi: vuol dire che non ti serve più

uwefed

Puoi leggere un entrata analogica anche in modo digitale ma secondo me non ha tanto senso visto la zona morta tra 1,5 e 3V (ATmega alimentato a 5V) in questo range puoi avere letture sia H che L a secondo del andamento precedente della tensione analogica.
Sotto 1,5V leggi L
sopra 3V leggi H
In mezzo puoi leggere L o H.
Puó essere che devi fare 2 letture analogiche e scartare la prima per avere una lettura affidabile.

Ciao Uwe

 

docdoc

#7
May 17, 2019, 11:22 am Last Edit: May 17, 2019, 11:23 am by docdoc
ma secondo me non ha tanto senso visto la zona morta tra 1,5 e 3V
Ah ecco me lo chiedevo anche io infatti. Quindi in pratica non conviene usare questo approccio a meno che non si sia certi del range di tensioni.

Quote
Sotto 1,5V leggi L
sopra 3V leggi H
In mezzo puoi leggere L o H.
Il famoso "Pin di Schrödinger" :D
Alex "docdoc" - ** se ti sono stato d'aiuto, un punto karma sarà gradito, clicca su "add" qui a sinistra, vicino al mio nome ;) **

gpb01

... rammento comunque che, sul ATmega328P, c'è un "comparatore analogico" e quello si che può essere usato per avere una soglia ben definita ed un interrupt al superamento :)

Guglielmo
Search is Your friend ... or I am Your enemy !

Standardoil

Manno...
La mia domanda andava in un'altra direzione
Tenere basso il riferimento dello adc, per distinguere letture analogiche da letture digitali
In ottica di multiplex estremo, come in un'altra discussione
Grazie per le risposte
Prima legge di Nelson (che sono io): Se vuoi il mio aiuto dimostrami almeno che hai letto il nostro "aiutateCi ad aiutarVi"

Non bado a studenti, che copino altrove

Tu hai problema-Io ti domando-Tu non mi rispondi: vuol dire che non ti serve più

paulus1969

Ma se invii tensioni superiori ad aref cosa succede?

gpb01

#11
May 17, 2019, 05:27 pm Last Edit: May 17, 2019, 05:28 pm by gpb01
Ma se invii tensioni superiori ad aref cosa succede?
... purché nel limite di Vcc, se superi Aref ottieni sempre il valore massimo 0x3FF (a 10 bit).

Guglielmo
Search is Your friend ... or I am Your enemy !

paulus1969

Allora ricordavo bene.
Se mette aref basso, potrebbe avere uno stato in cui legge 3FF in ared e LOW in digitale.

gpb01

#13
May 17, 2019, 05:41 pm Last Edit: May 17, 2019, 05:42 pm by gpb01
Se mette aref basso, potrebbe avere uno stato in cui legge 3FF in ared e LOW in digitale.
Si, infatti, basta che seleziona il riferimento interno a 1.1V e arriva a 0x3FF prima che in digitale possa leggere HIGH  :D

Guglielmo
Search is Your friend ... or I am Your enemy !

uwefed

Ah ecco me lo chiedevo anche io infatti. Quindi in pratica non conviene usare questo approccio a meno che non si sia certi del range di tensioni.

Il famoso "Pin di Schrödinger" :D
No. niente gatti e niente Schrödinger.

Nella zona morta il valore letto non é casuale ma rimane quello letto prima di entrare nalla zona morta.
Esempio: ho una tensione analogica che aumenta e va da 0 a 5V Viene letta LOW finche raggiunge i 3V. viceversa se una tensione che diminuisce da 5V a 0 viene letta HIGH fino che raggiunge i 1,5V. Percui la tensione da 1,5V a 3V puó essere letta H o L.

Ciao Uwe

Go Up