Buonasera a tutti,
ho un quesito da esporvi. Ho collegato due potenziometri lineari da 10k ai due ingressi analogici (a4,a5) di arduino.In lettura dal monitor seriale ho notato che ruotando il primo ed il secondo contemporaneamente(senza che siano a 0 o a 1023) l'uno interferisce con l'altro.
Mi spiego meglio. Se il secondo potenziometro lo giro fino al valore 500 e dunque mi avvio a girare il primo da 0 a 1023 il valore del secondo potenziometro contemporaneamente passa, senza toccarlo, da 500 a 600...
Per logica sono andato a pensare che sia la variazione della resistenza del primo che influisce sul circuito . Come posso risolvere?
Per quanto scemo il problema potete aiutarmi?
Grazie a tutti e buona giornata
Ti invitiamo a presentarti (dicci quali conoscenze hai di elettronica e di programmazione) qui: Presentazioni
e a leggere il regolamento se non lo hai già fatto: Regolamento
Qui una serie di link utili, non inerenti al tuo problema:
... mmm ... mi dovrai spiegare COME fai ad avere il valore decimale 1024 da un oggetto che restituisce 10 bit :
Con 10 bit hai 1024 valori diversi che vanno da 0 a 1023
Relativamente al tuo problema, metti uno schema dei collegamenti e il codice che stai usando per leggere (... mi raccomando, racchiuso tra i tag CODE che, in fase di edit, ti inserisce il bottone </> ... primo a sinistra).
Guglielmo
@SukkoPera: ... ci siamo sovrapposti nella richiesta
gpb01:
... mmm ... mi dovrai spiegare COME fai ad avere il valore decimale 1024 da un oggetto che restituisce 10 bit :
Con 10 bit hai 1024 valori diversi che vanno da 0 a 1023
Relativamente al tuo problema, metti uno schema dei collegamenti e il codice che stai usando per leggere (... mi raccomando, racchiuso tra i tag CODE che, in fase di edit, ti inserisce il bottone </> ... primo a sinistra).
Guglielmo
Ho ovviamente sbagliato a scrivere XD mi stà uscendo la bile di fronte al problema XD
Lo schema è il più semplice possibile
Ho connesso i potenziometri alla linea 5v (su di una breadboard) di arduino e al GND del medesimo , dunque collegato il piedino di output dei potenziometri agli ingressi A4 e A5 di arduino.
... non dovrebbe essere influente, ma comunque LEVA quei due pinMode() perché, così facendo dichiari che vuoi usare i pin A4 ed A5 come ... pin digitali in input (... tutti i pin analogici di Arduino possono essere usati anche come pin digitali).
Per gli ingressi analogici NON serve dichiarare nulla.
Guglielmo
P.S. Facci e fatti un favore ... nell'IDE usa la funzione del Menu -> Tools -> Auto Format ... che ti formatta come si deve il codice
Sarà ma a me quel tipo di problemi mi capita se non collego bene le masse comuni... Io sto facendo una interfaccia per un braccio robotico e ho 5 trimmer da 10k, e non ho problemi.
Denial:
Invece di inviarmi 10 pot 10K me ne hanno inviati 5 da 1M di Ohm!!!! e 5 da 200K ! Misurati or ora! Di fatto quelli da 200k lavorano ottimamente....
Il motivo per cui ottenevi letture influenzate dalla posizione di entrambe i potenziometri è proprio l'eccessivo valore in ohm degli stessi,
Gli AVR come impedenza massima in ingresso richiedono non più di 10k, con i potenziometri da 10k non ci sono problemi, con potenziometri di valore maggiore i problemi sono sicuri
p.s.
Anche 200k sono troppi, non ti fidare assolutamente del'attuale funzionamento.
Grazie davvero ! Per tutto a tutti voi :)!
p.s per gpb01 : il format era orrendo essendo un estratto dal codice principale sarò più preciso cmq grazie per le info!!
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
Quanto è vero
Il convertitore analogico / digitale é costruito nel modo seguente:
Il Atmega328 ha solo un convertitore. Per avere piú entrate c'é prima un multiplexer analogico che collega un entrata analogia dopo l'altra al convertitore .
Il convertitore analogico digitale lavora secondo il principio del approssimazioni successive ADC ad approssimazioni successive - Wikipedia che ha bisogno di una decina di cicli di clock per convertire il valore analogico in digitale. I clock del ADC derivano dal clock del controller, percui la frequenza é piú bassa. Per avere la tensione di conversione per tutto il tempo di conversione stabile (che sono tra 13µ e 260µS) viene caricato un condensatore interno (sample and hold) con la tensione analogica e per la conversione viene usato la tensione del condensatore. Il convertitore carica il condensatore attraverso il multiplexer con la tensione applicata all'entrata analogica. Anche se il condensatore é piccolo e la resistenza del percorso é relativamente piccola in certe occasioni non é possibile che il condensatore venga caricato del tutto alla tensione da misurare perché il tempo di carica é molto breve. Questo avviene notevolmente visibile se la fonte della tensione analogica ha una resistenza interna alta (nel Tuo caso il partitore di tensione fatto col potenziometro). cosí una tensione analogica di un entrata influenza l'altra.
rimedi:
piú misure uno dopo l' altra dello stessa entrata analogica. Il condensatore sample and hold si carica in piú cicli di misura. si considera solo l'ultima misura.
fonte di tensione analogica con impedenza interna bassa (potenziometro o pertitore con resistenza complessiva minore di 10kOhm).
condensatore da 0,1µF tra entrata analogica e massa. La corrente necessaria per caricare il condensatore interno viene preso dal condensatore e non dalla fonte della tensione da misurare. Non puó essere usata se si vuole misurare tensioni che cambiano velocemente.
si mette un amplificatore operazionale in configurazione di inseguitore di tensione o chiamato anche o adattatore di impedenza (Amplificatore operazionale - Wikipedia) . Si deve aver cura che l' operazionale scelto sappia dare come tensione di uscita il pieno range di tensione (operazionale Rail to Rail)