Cześć, mam straszne problemy ze stabilnością pomiaru przez przetwornik ADC na ATmedze 328. Układ ma służyć do oszacowania wartości rezystorów z zakresu 100kohm do 10Mohm. O stabilność i filtrowanie napiecia zadbałem tak jak tylko się da, zgodnie z instruktażami o podłączeniu (osobne kondensatory 100nF na VCC, AVCC, AREF, dławik 10uH na AVCC, po prostu wszystko jest.) + układ jest zasilany z akumulatora a następnie przez przetwornicę, która daje mocno stabilne 5,25V na wyjściu.
Próbowałem wykonywać pomiary zarówno z napięciem odniesienia jako wewnętrzne 2,56V, jak i napięcie zasilania podpięte jako referencyjne. Za każdym razem dokładność pomiaru jest strasznie kiepska, zmienia się w granicach +/- 40% wartości rzeczywistej.
Dla testów prówałem też zmniejszać zakres pomiarowy (zmiany w dzielniku i odpowiednie zmiany w kodzie) na np 4,7kohm rezystory. To samo.
Cały układ robię w środowisku Arduino.
Pierwsze pytanie jakie mam, to o ustawienie napięcia referencyjnego jako:
Kod:
analogReference(DEFAULT);
1) gdy ATmega jest na płytce Arduino UNO, wtedy wiem, że to napięcie to ustawione jest jako 5V ze stabilizatora napięcia na płytce. Jakie napięcie jest przyjmowane, gdy układ pracuje bez płytki uruchomieniowej, po prostu w układzie?
tak czy inaczej, niezależnie od ustawienia:
Kod:
analogReference(DEFAULT); czy
analogReference(INTERNAL); czy
analogReference(EXTERNAL); i podpięcie VCC na AREF
pomiar był tak samo niestabilny.
2) w opisie* ADC na arduino.cc spotkałem się, że AREF nie może przekroczyć zakresu 0-5V. Czy jeżeli VCC = 5,25, to czy podpięcie tegoż samego napięcia na AREF może jakkolwiek zaszkodzić układowi?
Cytuj:
*IMPORTANT NOTE: do NOT apply to AREF any voltage out of the 0-5V range. Whenever using an external reference voltage call the analogReference(EXTERNAL) command before calling the analogRead() command, a good place to do it is the setup() method. If the AREF pin is connected to an external source do not use the other reference voltage options in the application, as they will be shorted to the external voltage and cause permanent damage to the microcontroller in the board
.
3) czy jest możliwość, aby uszkodził się tylko obszar mikroprocesora odpowiedzialny za ADC a cała reszta działała normalnie?
Aha, układ równocześnie obsługuje pomiar temperatury na ds18b20 i wyświetla go na ekranie - tutaj robi to kompletnie bez zastrzeżeń, jest super dokładnie.