Esperimenti con logiche programmabili
Elettronica, OpenPicus

Flyport Ethernet leggere dai pin analogici

Come acquisire un segnale analogico tramite modulo Flyport

L’acquisizione di segnali analogici permette l’interfacciamento del Flyport Ethernet con svariate tipologie di sensori e trasduttori che forniscono una tensione analogica in funzione della grandezza fisica misurata.
Il modulo dispone di 4 ingressi analogici (p18, p20, p23, p25) con una risoluzione di 10bit (valori restituiti da 0 a 1023) ed una tensione di riferimento molto precisa fissata a 2.048V.
I pin analogici non supportano tensioni superiori a 3.3V quindi dobbiamo stare attenti al valore di tensione che sarà applicato sul pin analogico.

Dato che la tensione di riferimento è di 2.048V, il convertitore analogico digitale fornirà il valore intero zero(0) quando in ingresso sarà presente una tensione di 0V, fornirà invece il valore 1023 quando sul pin analogico sarà presente una tensione pari a 2.048V. Superata questa soglia, fino al valore consentito di 3.3V il convertitore restituirà sempre 1023.

La relazione tra valore di conversione e tensione è la seguente

tensione di riferimento / risoluzione => 2.048/1024 = 0.002V

quindi se il convertitore restituirà il valore di 560, potremmo facilmente constatare che sul pin analogico sarà presente la tensione di 1.12V

valore conversione * valore minimo di conversione => 560 * 0.002 = 1.12V

Ho realizzato il seguente circuito per provare le istruzioni che acquisiscono il segnale analogico presente sul pin p18.

il pin p24 è quello che fornisce la 3.3Vdc, il pin p22 è la massa ed il pi p18 è l’ingresso analogico 4 del modulo Flyport Ethernet.
Il potenziometro PT è da 5Kohm mentre la resistenza R è da 47Ohm e serve per evitare il cortocircuito nel caso in cui ci sia un malfunzionamento della meccanica del potenziometro che porta il collegamento della 3.3Vdc direttamente al gnd.

Le istruzioni per acquisire il segnale analogico sono molto semplici, i commenti nel codice illustrano questo procedimento:

[c]<br />#include "taskFlyport.h"<br /><br />void FlyportTask()<br />{<br /><%%KEEPWHITESPACE%%>  int Valore_ADC = 0;<br /><%%KEEPWHITESPACE%%>  char Dato_ADC[5];<br /><br /><%%KEEPWHITESPACE%%>  while(1)<br /><%%KEEPWHITESPACE%%>  {<br /><%%KEEPWHITESPACE%%>    //acquisisco ildato presente sul pin p18<br /><%%KEEPWHITESPACE%%>    Valore_ADC = ADCVal(4);<br /><%%KEEPWHITESPACE%%>    //converto il valore intero in un array di char<br /><%%KEEPWHITESPACE%%>    sprintf(Dato_ADC, "%d\n", Valore_ADC);<br /><%%KEEPWHITESPACE%%>    //invio il dato al serial monitor<br /><%%KEEPWHITESPACE%%>    UARTWrite(1, Dato_ADC);<br /><%%KEEPWHITESPACE%%>    //attesa di 1 secondo<br /><%%KEEPWHITESPACE%%>    vTaskDelay(100);<br /><%%KEEPWHITESPACE%%>  }<br />}<br />[/c]

L’unica raccomandazione nell’uso dei pin analogici è quella di non superare mai la tensione massima in ingressi di 3.3Vdc. Nel caso in cui la tensione da acquisire fosse maggiore si potrebbe adottare un semplice partitore di tensione.

Related posts

Accedere ai registri dell’MCP9803 (2° parte)

Marco Lai
13 anni ago

MCP9700A Netduino e sensore di temperatura analogico

Marco Lai
13 anni ago

Flyport Ethernet, conoscere i pin digitali

Marco Lai
11 anni ago
Exit mobile version