Skocz do zawartości

Problem z odczytem napiecia Arduino


dusi007

Pomocna odpowiedź

Witam !

Tak jak w temacie mam problem z odczytem napięcia na monitorze szeregowym. Odczytuje stan napięcia wy-indukowanego na cewce (uprzednio wyprostowanego) no i .... I odczytuje napięcie multimetrem, wychodzi od 40 do 110 mV w zależności od położenia i ruchu, no ale odczyt jakiś sensowny jest, podłączam teraz do Arduino + do pinu A1, masę do GND. Przebieg odczytu nie ma żadnego ładu, czasem pokaże 1023 czasem 0 czasem rośnie rośnie do 75 (czyli miej więcej coś takiego) potem opada do 0 potem 0 0 0 0 0 0 0 0 0 i znów rośnie. Generalnie cuda wianki. Przepraszam być może problem jest elementarny, ale mam nadzieje że któryś z użytkowników rozwieje moją niewiedze.

Z góry dziękuje i pozdrawiam.

Oto kod programu:

int nap = A1;

int odczyt;

void setup() {

Serial.begin(9600);

pinMode(nap, INPUT);

}

void loop()

{

analogRead(nap);

odczyt = analogRead(nap);

Serial.print(odczyt);

Serial.println(" V");

Serial.println("------------");

delay(100);

}

__________

Komentarz dodany przez: Treker

Kod programu, dla lepszej czytelności, należy umieszczać w tagach .

Proszę to poprawić.

Link do komentarza
Share on other sites

Po pierwsze, to co odczytujesz, to nie są wolty, tylko jednostki równe 1/1024-tej napięcia zasilania, czyli przy Arduino UNO jakieś 0.005V na jednostkę.

Po drugie, ADC w Arduino jest wolne -- zrobienie pomiaru zajmuje mu ponad 0.1ms.

Po trzecie, jeśli podasz do ADC napięcie wyższe niż 5V, to masz bardzo dobrą szansę jego uszkodzenia.

Po czwarte, może daj tam jakiś kondensator, żeby to trochę wygładziło?

Po piąte, jak właściwie brzmi twoje pytanie?

Link do komentarza
Share on other sites

Niejasno zadałem pytanie? Poprostu chce się dowiedzieć dlaczego odczyt z arduino nie pokrywa się z odczytem z multimetru. Napięcie nie przekracza 5V napisałem już o tym. A i przepraszam za niedokładny program wiem że jedna jednostka jest 1/1023 częścią 5 V. Myślisz że arduino sobie z tym nie poradzi z pomiarem ? A co do kondensatora jak go włączyć? Mniej więcej jaki powinien być?

Link do komentarza
Share on other sites

Jeśeli to napięcie zmienia się bardzo gwałtownie, to odczyty z multimetru (który ma w środku sporo filtrów, żeby wyświetlać średnie napięcie) będą znacząco różne od chwilowego pomiaru zrobionego przez Arduino. Kondensator to przykład takiego prostego filtru, podpinasz go pomiędzy wejście analogowe a masę. Jego wartość zależy od tego jak bardzo wygładzony chcesz mieć sygnał (oraz przez jaką oporność się rozładowuje -- można dodać jeszcze opornik równolegle do kondensatora). Są na to wzory w książkach o elektronice, ale nie mam o tym zielonego pojęcia, bo jestem laikiem.

Filtrowanie możesz też zrobić programowo, zbierając w buforze kołowym pewną ilość pomiarów i licząc z nich średnią ruchomą.

[ Dodano: 27-02-2016, 11:53 ]

Popełniłem dzieło, które być może zilustruje z czym masz tutaj do czynienia:

A to pomiar zrobiony przy pomocy Arduino.

B to pomiar multimetrem.

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Jakościowo lepsze będzie rozwiązanie z buforem czy kondensatororem? Jak dobrać takowy? Chciałbym aby napięcie było możliwie maksymalnie wygładzone.

Dziękuję i pozdrawiam.

Link do komentarza
Share on other sites

Każda z tych metod ma swoje zalety, wady i ograniczenia. Co więcej, nie są one (metody: analogowa i cyfrowa) w ogólnym sensie wymienne i rzadko kiedy występują osobno. Może najpierw pokaż nam układ który skleciłeś i opisz warunki jego pracy. Nie da się wymyślić dobrej metody pomiarowej bez wiedzy o tym co chcemy mierzyć. W Twoim przypadku może być tak, że ani pomiary multimetrem ani to co zrobiłeś na Arduino nie mają sensu a wyniki nie niosą prawdziwej informacji którą chcesz uzyskać.

Tak więc czekamy na: prawdziwy schemat tego co już masz, opis zjawiska ("wsuwam ręką magnes" albo "drgania silnika kosiarki powodują drgania rdzenia") - chodzi o to byśmy wiedzieli jakie zjawiska zachodzą, z jaką szybkością itd. Dobrze byłoby też wiedzieć do czego tego potrzebujesz: czy do prostego wyświetlania jakiejś liczby, czy wynik pomiaru będzie dalej służył komputerowi do jakichś obliczeń i np. sterowania. Czym? Itd.

Wtedy możemy gadać, bo teraz - w tak bardzo ogólnym przypadku - to można książkę napisać a zaraz okaże się, że nie na temat.

Link do komentarza
Share on other sites

Przepraszam, to była pierwsza myśl, cofam kosiarkę (choć może to jakiś znak?). Niech będzie: "drgania gruntu wywołują impulsy w cewce i dzięki temu wiem kiedy przejeżdża i jakie spóźnienie ma poranny InterCity do Krakowa". Ojej, ale może pociągi też się z czymś kojarzą?..

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Gość
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.