Lettura tensione interna Arduino. (precisamente ArduinoNano)

Buongiorno,
volevo chiedere come potrebbe essere possibile una lettura costante della tensione interna di Arduino. Più precisamente il progetto consisterebbe in un tensiometro (poi i volt trasformati in km/h, tipo tachimetrica) , grazie al partitore di corrente dato da due resistenze (30k - 7,5K) per trasformare la proporzione di un massimo di 25 Vdc in 5 Vdc leggibili sull'ingresso analogico A0. Fin qui tutto ok, ma il problema mi sorge nella precisione, perché nel calcolo " Valore = (InputA0 * 4.90) / 1024.0;" per poi " Volt = Valore / (R2/(R1+R2)); " , il 4,90 me lo devo misurare io col tester(GND-VCC5V), e quando mi serve in assenza di un tester e ho un alimentatore diverso, quel valore cambia e cambia anche tutto il risultato visto che il valore ultimo che mi serve per trasformare i volt in km/h sono ancora più approssimati.

Quindi il mio quesito è:

Come faccio a misurare la tensione interna ad Arduino (nel Void Loop o ciclo) senza avere bisogno di un tester sempre con se o di programmarlo di continuo ?

Ovviamente questo mi serve anche per altri progetti che richiedono l'alimentazione a VCC e non sapendo i dati reali posso solo mettere quelli approssimati (5V?) e le approssimazioni finali cambiano un bel po'.

scusate se sono stato lungo ma volevo essere chiaro, e non avevo trovato alcun argomento a riguardo, nel caso ce ne fosse già un altro aperto chiedo scusa. (nel caso se potesse essermi lincato sarebbe il top).

Grazi Mille.

EDIT: ti avevo dato una risposta, ma ho visto che non hai ancora fatto la presentazione come richiesto dal regolamento, per cui falla subito!

@iaq: Buongiorno,

prima di tutto ti segnalo che, nella sezione in lingua Inglese, si può scrivere SOLO in Inglese ... quindi, per favore, la prossima volta presta più attenzione in quale sezione metti i tuoi post; questa volta esso è stato spostato, da un moderatore della sezione di lingua Inglese, nella sezione di lingua Italiana ... la prossima volta potrebbe venire direttamente eliminato, dopo di che ...

... essendo il tuo primo post, nel rispetto del regolamento della sezione Italiana del forum (… punto 13, primo capoverso), ti chiedo cortesemente di presentarti IN QUESTO THREAD (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con molta attenzione tutto il succitato REGOLAMENTO ... Grazie.

Guglielmo

P.S.: Ti ricordo che, purtroppo, fino a quando non sarà fatta la presentazione nell’apposito thread, nel rispetto del suddetto regolamento nessuno ti risponderà (eventuali risposte verrebbero temporaneamente nascoste), quindi ti consiglio di farla al più presto. :wink:

Mi scuso, essendo nuovo non avevo bene chiare le procedure di ingresso / utilizzo del forum, cercherò di rimediare subito. Presentazione fatta. mi scuso ancora per l'inconveniente.

Hai due possibilità ...

  1. usare il riferimento interno di Arduino ad 1.1V.
    Al suo interno, Arduino, ha un riferimento di tensione che è piuttosto stabile a circa 1.1V (una volta fatta la calibrazione il valore, come detto, rimane abbastanza stabile). Puoi selezionare tale riferimento interno e dovrai aggiustare il tuo partitore resistivo in modo che sul pin analogico NON arrivino più di 1.1V

  2. usare un chip esterno per fornire un riferimento stabile.
    Ci sono chip didicati a fare da "generatori di tensione di precisione", estremanente precisi e stabili. Puoi montanre uno e dire ad Arduino di usare quello come riferimento di tensione invece della sua tensione interna.

Vedi tu quale strada ti sembra la più semplice ... probabilmente la 1.

Guglielmo

Si esatto, ieri sono rimasto molto a studiarmi il comando analogReference() e ho capito come funziona, guardando anche il datasheet. Molto interessante il punto 1, dovrò correggere i partitori su quel tipo di proporzione e mi sa quasi scontato anche metterci una protezione tra i partitori e i il pin A0 oppure direttamente tra la tensione iniziale e i partitori, tipo un Diodo Zener?

ma avendo questa scheda con montato ATmega328p, nello sketch qual'è la sintassi corretta se posso? volendo se si potesse usare anche la 3.3v sempre su quel chip la sintassi come si scriverebbe ?

Grazie Mille.

@docdoc ti avevo risposto ma poi ho cancellato perhè avevo scritto una buffonata. volevo risponderti questa mattina, comunque grazie mille anche a te. :heart_eyes:

la funzione analogReference(), che puoi chiamare, ad esempio, subito all'inizio nel setup(), ti permette di decidere che cosa il ADC usi come riferimento per fare la misura. Se scegli il riferimento interno a 1.1V (passandogli INTERNAL) non richiede altri collegamenti, se invece usi un riferimento esterno (passandogli EXTERNAL), allora devi dare la tensione di riferimeto sul pin AREF.

Guglielmo

Perfetto molto chiaro,

La ringrazio tanto e ringrazio anche @docdoc per la disponibilità.

Risolto

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.