Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 24 lis 2024, o 15:00


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 19 ] 
Autor Wiadomość
PostNapisane: 13 sty 2013, o 16:28 
Offline
Użytkownik

Dołączył(a): 29 gru 2011
Posty: 82
Lokalizacja: Gdańsk
Pomógł: 0

Witam,

Przerabiam teraz pomiar napięcia za pomocą ADC. Lecz naszła mnie pewna wątpliwość a raczej niezrozumenie. Otóż jak wiadomo, aby wykonać zadanie trzeba wybrać napięcie odniesienia, włączyć moduł, ustawić preskaler w zależności od rozdzielczości bitowej itd. Następnie wykonanie drobnych obliczeń dla naszego dzielnika oraz pomiarów. Mamy oczywiście to wszystko ładnie opisane w książce jak i na stronie atnela co i jak pomierzyć aby wszystko wykonać. I tu mi się pojawił pewien znak zapytania.

Cytaty z artykułu na stronie:
Cytuj:
musimy ustawić na wejściu maksymalne pożądane napięcie, które chcemy mierzyć, następnie suwakiem potencjometru ustawić napięcie WYJŚCIOWE do takiej wartości, jakie wybraliśmy źródło odniesienia.


Cytuj:
Jeśli wybierzemy programowo 2,56 V to suwakiem pokręcamy aż uzyskamy na suwaku (mierząc tym razem naszym miernikiem - woltomierzem) napięcie 2,56V


Nie wiem, czy dobrze rozumię. Ale ja to widzę tak. Podłączamy naszą płytkę do żródła zasilania w moim przypadku pod usb i mierzymy napięcie między suwakiem a naszą końcówką VOLT, dzięki temu będziemy mogli wyznaczyć wartość ADC. Ja tak to rozumię z tego fragmentu książki:

Cytuj:
Natomiast jeśli na suwaku będziemy mieli np. 1,5V to wartość ADC powinna wynieść: (1,5V * 1024)/ 2,56V = 600


I po tym jak wykonamy nasze pomiary, to możemy dalej kontynuować obliczenia i ustawić wszystko w programie, tak jak to jest opisane w książce.

Wydaje mi się, że skąplikowałem sobię trochę zagadnienie lub zbyt dosłownie to zrozumiałem, bąć co gorsza nie dokładnie. ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 sty 2013, o 17:27 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27310
Lokalizacja: Szczecin
Pomógł: 1041

Gdy pisałem książkę, to jeszcze nie było takiego fajnego regulowanego dzielnika napięcia w starszych wersjach zestawów ATB, jak teraz ;) .... Wtedy był tylko zwykły potencjometr wpięty pomiędzy VCC a GND i suwak można było podłączyć do ADC

Więc to CAŁKIEM dwie różne rzeczy. Nie rób więc sobie MIXU w głowie i poczytaj to co na stronie

http://atnel.pl/atb-pomiar-napiecia-adc.html

i daj znać czego tu nie rozumiesz - bo rzeczywiście z tego co opisałeś to skomplikowałeś i pogmatwałeś sobie zdaje się wszystko.

czekam więc na info po lekturze ze strony ok?

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 sty 2013, o 17:29 
Offline
Użytkownik

Dołączył(a): 10 paź 2012
Posty: 123
Pomógł: 10

Witam.
Moim zdaniem chodzi tu o to że:
1. Ustalasz sobie wartość napięcia odniesienia dla przetwornika ADC procka (np. te 2,56V)
2. Na wejście układu pomiarowego czyli to co w książce oznaczone jest jako Uwe musisz podać maksymalne napięcie jakie chcesz mierzyć (z jakiegoś zewnętrznego zasilacza a jeśli maksymalne napięcie będzie np 5 V to możesz je podać z własnej płytki)
3. Regulujesz potencjometrem teraz tak aby przy maksymalnym napięciu Uwe jakie chcesz mierzyć (a które podłączyłeś w punkcie 2. i jest cały czas podłączone) napięcie wyjściowe (w książce oznaczone jako Uwy czyli to co podajesz na procek na przetwornik ADC) osiągnęło wartość równą napięciu odniesienia jakie ustawiłeś w punkcie 1.
Dzięki temu pomiar będzie obejmował cały zakres przetwornika więc będzie dokładniejszy.
Pozdrawiam
Jarek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 sty 2013, o 17:30 
Offline
Użytkownik

Dołączył(a): 26 lip 2012
Posty: 291
Lokalizacja: okolice Opola
Pomógł: 20

Za mocno skomplikowałeś prostą sprawę :D

Ustawiasz potencjometr tak aby przy największym mierzonym napięciu (w tym wypadku to 5V z USB) na suwaku potencjometru było 2,56V (co powinno się równać wartości w rejestrze ADC 1023 (najłatwiej wyświetlić na lcd prosto wartość z tego rejestru) i gotowe.

Później w programie przeliczyć i gotowe.

------------------------ [ Dodano po: kilkunastu sekundach ]

O się spóźniłem i jark mnie ubiegł :D

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 sty 2013, o 17:43 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27310
Lokalizacja: Szczecin
Pomógł: 1041

krafin napisał(a):
Ustawiasz potencjometr tak aby przy największym mierzonym napięciu (w tym wypadku to 5V z USB) na suwaku potencjometru było 2,56V (co powinno się równać wartości w rejestrze ADC 1023 (najłatwiej wyświetlić na lcd prosto wartość z tego rejestru) i gotowe.


Może i się spóźniłeś - ale już chyba krócej się wyjaśnić tego nie da ;)

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 sty 2013, o 18:43 
Offline
Użytkownik

Dołączył(a): 29 gru 2011
Posty: 82
Lokalizacja: Gdańsk
Pomógł: 0

Artykuł na stronie już czytałem.
Czyli jak dobrze rozumiem, to napięcie 5V z płytki przykładam na nózki naszego woltomierza?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 sty 2013, o 18:51 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27310
Lokalizacja: Szczecin
Pomógł: 1041

Patryk55 napisał(a):
Artykuł na stronie już czytałem.
Czyli jak dobrze rozumiem, to napięcie 5V z płytki przykładam na nózki naszego woltomierza?


No na tą nóżkę VOLT możesz podać dowolne napięcie pod warunkiem że wcześniej sobie skalibrujesz ten regulowany dzielnik wg opisu ;) (tzn dowolne ale nie np zmienne) ;)

Oczywiście, że może to być +5V z układu ATB i dokładnie tak samo dla niego dokonaj tej kalibracji ;) czyli

1. zmierz najpierw napięcie na AREF
2. podłącz +5V do wejścia VOLT (masy już masz połączone w ATB)
3. ustaw suwakiem potencjometru napięcie = AREF z pkt.1
4. podłącz suwak do ADC

i już pięknie możesz mierzyć wejściem VOLT napięcia od 0 do +5V .... jak chcesz płynnie to oczywiście musisz sobie np jakiś zewnętrzny potencjometr podłączyć do tego wejścia.

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 sty 2013, o 18:52 
Offline
Użytkownik

Dołączył(a): 10 paź 2012
Posty: 123
Pomógł: 10

Witam.
Jeśli napięcie mierzone (bo nie napisałeś tak naprawdę co chcesz mierzyć) będzie miało maksymalnie 5 V to tak.
Pozdrawiam
Jarek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 sty 2013, o 19:01 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27310
Lokalizacja: Szczecin
Pomógł: 1041

jark napisał(a):
Witam.
Jeśli napięcie mierzone (bo nie napisałeś tak naprawdę co chcesz mierzyć) będzie miało maksymalnie 5 V to tak.
Pozdrawiam
Jarek


Słuszna uwaga ;)

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 sty 2013, o 19:32 
Offline
Użytkownik

Dołączył(a): 29 gru 2011
Posty: 82
Lokalizacja: Gdańsk
Pomógł: 0

Dziękuję za wytłumaczenie, lecz mam jeszcze jedną wątpliwość.
Dlaczego na pinie AREF mamy mierzyć napięcie, skoro jeśli go podłaczymy do 5V to, będziemy korzystać z zewnętrznego żródła odniesienia?
Chcę mierzyc napięcie na zasilaniu(usb).



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 sty 2013, o 19:37 
Offline
Użytkownik

Dołączył(a): 26 lip 2012
Posty: 291
Lokalizacja: okolice Opola
Pomógł: 20

Nie masz podłączać AREF do 5V, ono ma być podłączone przez kondensator do masy (jest już podłączone na ATB) czyli pin aref ma zostać wolny.

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 sty 2013, o 19:40 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27310
Lokalizacja: Szczecin
Pomógł: 1041

Patryk55 napisał(a):
Dziękuję za wytłumaczenie, lecz mam jeszcze jedną wątpliwość.
Dlaczego na pinie AREF mamy mierzyć napięcie, skoro jeśli go podłaczymy do 5V to, będziemy korzystać z zewnętrznego żródła odniesienia?
Chcę mierzyc napięcie na zasilaniu(usb).


Typowy błąd początkujących powielany na setkach stron internetowych :( ..... napięcie VCC możesz i powinieneś jak już chcesz ustawić programowo w rejestrze ADMUX za pomocą bitów REFSx .... a nie przez fizyczne podłączanie tam +5V

tak jak pisze kolega wyżej - AREF podłączaj przez kondensator 100nF do GND

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 sty 2013, o 19:46 
Offline
Użytkownik

Dołączył(a): 10 paź 2012
Posty: 123
Pomógł: 10

Witam.
Tak jak napisł krafin nie masz podpinać AREF do zasilania. Korzystanie z napięcia USB jako napięcia odniesienia to kiepski pomysł.
Do AREF lepiej podłączać specjalnie przeznaczone do tego układy np REF02AP (źródło napięcia odniesienia 5V) a jeśli takiego nie masz to lepiej jest korzystać z wewnętrznego źródła odniesienia.
Pozdrawiam
Jarek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 sty 2013, o 20:06 
Offline
Użytkownik

Dołączył(a): 29 gru 2011
Posty: 82
Lokalizacja: Gdańsk
Pomógł: 0

Pogubiłem się już. ;)

W programie ustawione jest wszystko tak:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Na płytce mam podłączony pin od suwaka do PA5(ADC5), pużniej do pinu VOLT 5V z płytki, no i oczywiście lcd.
Tak jak Pan Mirek mówił skalibrowałem dzielnik tak jak mówił. Lecz gdy mierzę napięcie na AREF-5V to nic się nie wyświetla. 0V na multimetrze.
Kwarc mam 16MHz.


Kod umieszczamy w znacznikach Syntax - Zielony J.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 sty 2013, o 21:47 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27310
Lokalizacja: Szczecin
Pomógł: 1041

A możesz wyjaśnić co to znaczy:

" Lecz gdy mierzę napięcie na AREF-5V ..."

o czym ty piszesz ? tak się zastanawiam ???

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 sty 2013, o 13:57 
Offline
Użytkownik

Dołączył(a): 29 gru 2011
Posty: 82
Lokalizacja: Gdańsk
Pomógł: 0

Przepraszam wszystkich za mój niezrozumiały język, który jak widać ne jest dobrym przykładem i wprowadza wszystkich w rwanie włosów. :lol: Lecz dopadła mnie grypa i jestem trochę zacięty. A, że nie potrafię siedzieć bez ruchu, dlatego kontynuuję książkę. ;)

Dzisiaj jest już ok. Więc od początku:
Cytuj:
Oczywiście, że może to być +5V z układu ATB i dokładnie tak samo dla niego dokonaj tej kalibracji czyli

1. zmierz najpierw napięcie na AREF
2. podłącz +5V do wejścia VOLT (masy już masz połączone w ATB)
3. ustaw suwakiem potencjometru napięcie = AREF z pkt.1
4. podłącz suwak do ADC


Wykonałem kalibrację:
1. Mam 2,53V
2. Podłączyłem.
3. Ustawiłem suwakiem napięcie AREF i sprawdziłem czy jest ok, między pinem VOLT a suwakiem i jest OK.
4. Podłączyłem.

I teraz po zakończeniu kalibracji, możemy ze wzorów sobie wszystko ładnie policzyć.
Czyli:
- Narpierw ADC
U mnie:
Vin = 2.53V
Vref = 2,56V

ADC = 2,53 * 1024 / 2,56 = 1012

Pużniej mamy:

Vin = ADC * (Vref / 1024) * K K=1 dla 5V
Vin = 1012 * (2,56/1024) * 1 = 2.53V czyli się zgadza.

Czyli w programie mamy tak:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Preskaler na 128, bo kwarc 16MHz, mamy Atmega644PA i kozystamy z 10-bitowej rozdzielczości, czyli po podzieleniu naszej częstotliwości mieścimy się w przedziale 50kHz - 200kHz.

I jak wybieram kanał ADC w rejestrze ADMUX to mogę też tak napisać jak mam zakomentowane w definicji funkcji?

No i mamy poza tym oczywiście podączony wyświetlacz zgodnie z ustawieniami jakie ustawiliśmy w pliku ".h" w naszej bibliotece oraz podświetlenie do 5V.

Wgrywamy program i powinno nam sie wyświetlać mierzone napięcie na zasilaniu( USB).

A u mnie są tylko dwa podświetlone rządki, czyli nasze "piksele".

I tu jest pytanie do was co robię zle? ;)

Jeśli jakieś informacje się jeszcze przydadzą to piście. ;)

I jeszcze raz przepraszam. ;) :)

Patryk - czytałeś moją uwagę w poprzednim Twoim poście?? Zielony J.



Ostatnio edytowano 14 sty 2013, o 14:10 przez Patryk55, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 sty 2013, o 14:11 
Offline
Użytkownik

Dołączył(a): 29 gru 2011
Posty: 82
Lokalizacja: Gdańsk
Pomógł: 0

Czytałem, czytałem, tylko coś nie wyszło. ;) :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 sty 2013, o 15:32 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27310
Lokalizacja: Szczecin
Pomógł: 1041

Patrtyk44 ---> ty może rozdziel dwa tematy w swojej głowie ;) bo będzie źle.

Ty masz kłopot z samym LCD czy z ADC. Bo czytam, czytam, czytam ... wywody długie o ADC a na końcu że nie działa mi LCD ;)

tak to do niczego nie dojdziemy .... przyznam szczerze, że mi coraz trudniej podpowiadać w takim układzie :(

Proponuję ci szczerze - zostaw na razie ADC a poćwicz sobie LCD, jego podłączanie i obsługę. A jak czegoś nie wiesz to załóż osobny wątek i najpierw naucz się go obsługiwać. Bo nie ma to NIC WSPÓLNEGO z ADC i w każdym projekcie tak samo się go obsługuje ...

a jak dojdziesz do wprawy to wtedy wróć do ADC ok ?

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 sty 2013, o 15:51 
Offline
Użytkownik

Dołączył(a): 26 lip 2012
Posty: 291
Lokalizacja: okolice Opola
Pomógł: 20

Dokładnie tak jak mówi mirek a oprócz tego zapomniałeś zrzutować na uint32 ale to nie wyjaśnia i tak twojego problemu.

Najpierw poćwicz wyświetlanie na lcd różnych rzeczy w tym zmiennych a potem się za to zabie.

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 19 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO