Leggere una tensione sul pin A0 - strano comportamento.
ciao, vi scrivo perché mi sta capitando una cosa che non riesco capire.
praticamente nel mio codice misuro una tensione sul pin a0 (una tensione da 0 12v, in questo momento proveniente da un alimentatore ma solitamente da una o piu batterie da auto).
ho usato un metodo piuttosto empirico (credo) per calcolarla e il circuito che ci va dietro sinceramente non lo ho fatto io personalmente quindi non sarei in grado di postarvelo.
il problema è che la primissima lettura - arduino appena partito - è sbagliata e di molto, circa 1v7 ed è una cosa che mi da fastidio perché non comprendo..
e' vero che dopo un po' di warm up, il problema si risolve e la tensione comincia ad essere sempre più vicina alla realtà.
la parte di codice che ho usato per misurare la tensione è semplicemente:
dove:
ho usato internal perché mi è sembrato più preciso / più lineare
45.83 è perchè quando misuro quello che ho su a0 trovo 550 e siccome che l'alimentazione attuale è 12v ho fatto conti..
idea del momento, potrei "mappare" il valore ?
il problema è che la prima lettura al primo "avvio" è sbagliata, non che sia un gran problema ma vorrei capire le cause
grazie tutti !
praticamente nel mio codice misuro una tensione sul pin a0 (una tensione da 0 12v, in questo momento proveniente da un alimentatore ma solitamente da una o piu batterie da auto).
ho usato un metodo piuttosto empirico (credo) per calcolarla e il circuito che ci va dietro sinceramente non lo ho fatto io personalmente quindi non sarei in grado di postarvelo.
il problema è che la primissima lettura - arduino appena partito - è sbagliata e di molto, circa 1v7 ed è una cosa che mi da fastidio perché non comprendo..
e' vero che dopo un po' di warm up, il problema si risolve e la tensione comincia ad essere sempre più vicina alla realtà.
la parte di codice che ho usato per misurare la tensione è semplicemente:
code: [select]
analogreference(internal);
letto = (analogread(a0)/45.83);
dove:
ho usato internal perché mi è sembrato più preciso / più lineare
45.83 è perchè quando misuro quello che ho su a0 trovo 550 e siccome che l'alimentazione attuale è 12v ho fatto conti..
idea del momento, potrei "mappare" il valore ?
il problema è che la prima lettura al primo "avvio" è sbagliata, non che sia un gran problema ma vorrei capire le cause
![smiley :)](https://forum.arduino.cc/smileys/arduino/smiley.gif)
grazie tutti !
senza avere lo schema del circuito e lo sketch completo è impossibile capire dove puoi sbagliare, potrebbero essere tante cose.
per usare il reference interno la tensione esterna deve essere ridotta nel range 0-1,1v. sopra 1,1v tutto viene letto fondo scala (1023). inoltre la tensione in arrivo dall'esterno deve essere ridotta max 5,5v: dare più di questo valore su un pin dell'arduino equivale fare seri danni.
per usare il reference interno la tensione esterna deve essere ridotta nel range 0-1,1v. sopra 1,1v tutto viene letto fondo scala (1023). inoltre la tensione in arrivo dall'esterno deve essere ridotta max 5,5v: dare più di questo valore su un pin dell'arduino equivale fare seri danni.
Arduino Forum > International > Italiano > Software (Moderator: leo72) > Leggere una tensione sul pin A0 - strano comportamento.
arduino
Comments
Post a Comment