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



Teraz jest 24 kwi 2024, o 04:02


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 18 ] 
Autor Wiadomość
PostNapisane: 27 lip 2012, o 17:57 
Offline
Nowy

Dołączył(a): 27 lip 2012
Posty: 12
Pomógł: 0

Witam

Chciałbym wykonać pomiar napięcia oraz prądu z wykorzystaniem mikrokontrolera ATmega8A.
Na początku chciałem odczytywać wartość napięcia na zaciskach PC 4 oraz PC 5.
Problem w odczycie polega na tym, że program zachowuje się tak jakby odczytywane napięcie było dokonywane tylko na 1 kanale (mimo, że jeden z kanałów podłączyłem do masy). Nie wiem co powinienem zmienić w programie, żeby możliwy był odczyt wszystkich możliwych kanałów ADC.

Uwagi ogólne:
- korzystam z Uref = 2.56V
- Zastosowałem dzielnik napięcia U = Uwe / 2


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




Pozdrawiam



Ostatnio edytowano 12 sie 2012, o 17:37 przez yanan, łącznie edytowano 2 razy

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 lip 2012, o 19:48 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 14 lut 2012
Posty: 598
Lokalizacja: Warszawa
Pomógł: 13

W funkcji analogread
ADMUX |= ch - źle


ADMUX = ch - dobrze

Reszty nie sprawdzałem .

------------------------ [ Dodano po: 4 minutach ]

Oraz wywal to ch=ch&0b00000111; z tej samej funkcji



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 lip 2012, o 21:05 
Offline
Nowy

Dołączył(a): 27 lip 2012
Posty: 12
Pomógł: 0

Program teraz zawiesza cały mikrokontroler. Na wyświetlaczu pojawia się w 2 liniach 5.11 (czyli maksymalna mierzalna wartość przy takim dzielniku napięcia).



Ostatnio edytowano 12 sie 2012, o 17:36 przez yanan, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 lip 2012, o 21:59 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 14 lut 2012
Posty: 598
Lokalizacja: Warszawa
Pomógł: 13

Mój błąd :(
Prawidłowo zmiana kanału powinna wyglądać tak:
ADMUX = (ADMUX & 0xF8) | ch;

------------------------ [ Dodano po: 9 minutach ]

Niestety nie bardzo mogę zajrzeć do noty, ale sprawdź jeszcze raz czy jest prawidłowo ustaione napięcie odniesienia, bo tak jakoś wzrokowo mi to nie pasuje. I pamiętaj o tym że częstotliwość próbkowania pomiaru dla 10 bitów powinna się zawierać kiedy 50-200kHz, co wiąże się z prawidłowym ustawieniem preskalera



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 lip 2012, o 10:23 
Offline
Nowy

Dołączył(a): 27 lip 2012
Posty: 12
Pomógł: 0

Faktycznie teraz to działa super nawet wyniki są stabilniejsze (przynajmniej tak mi się wydaje).

Co do pomiaru prądu to niestety nie mam wejść różnicowych i nie wiem jak w takim razie zmierzyć wartość prądu.
ATmega8 to już starszy układ, ale za to o wiele tańszy :)

Pomyślałem, że trzeba by jakoś mierzyć różnice napięć na boczniku który będzie podłączony do 2 kanałów ADC i podzielić to przez wartość rezystora R (przekładnika prądowego). Co tym sądzisz? I najważniejsze jaka będzie dokładność takiego pomiaru?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 lip 2012, o 16:01 
Offline
Moderator
Avatar użytkownika

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

lepiej powiedz jaka cię dokładność pomiaru interesuje, bo już ostatnio dwie osoby na forum wymyślały, że na tych prockach nie da się dokładniej zrobić niż co do 7,4% !!!! ;) ... ale to oczywiście bzdura.

jeśli nie potrzebujesz nie wiadomo jak dużej precyzji jeśli chodzi o ilość miejsc po przecinku to spokojnie da się to zrobić ;) ....

_________________
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: 28 lip 2012, o 16:18 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 paź 2011
Posty: 401
Lokalizacja: Siedlce
Pomógł: 7

Podstawą dokładnego pomiaru jest znajomość napięcia referencyjnego ATMegi - trzeba zmierzyć multimetrem napięcie na nodze Vref.
Zdarzają się bowiem egzemplarze z dość dużym odchyleniem tego napięcia od 2.56V np. 2.65V

Polecam również obejrzenie filmików użytkownika anajonesr na YT.
Na przykład jeden z odcinków dotyczących ADC - http://www.youtube.com/watch?v=sVvDiACf3yE

_________________
Czekamy na RedBook'a!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 lip 2012, o 16:24 
Offline
Moderator
Avatar użytkownika

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

szopler napisał(a):
Podstawą dokładnego pomiaru jest znajomość napięcia referencyjnego ATMegi - trzeba zmierzyć multimetrem napięcie na nodze Vref.
Zdarzają się bowiem egzemplarze z dość dużym odchyleniem tego napięcia od 2.56V np. 2.65V


Cenna uwaga, też o tym nieraz wspominałem na forum.

_________________
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: 28 lip 2012, o 20:32 
Offline
Nowy

Dołączył(a): 27 lip 2012
Posty: 12
Pomógł: 0

Może nie chodzi tu o dokładność, lecz zakres mierzonego prądu 10mA - 2A
Przykładowy pomiar np. 10.3 mA. Nie chciałbym dodawać do tego wzmacniaczy operacyjnych.
Jakieś pomysły jak to dokonać od strony sprzętowej oraz mile widziana programowa.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 sie 2012, o 11:36 
Offline
Nowy

Dołączył(a): 27 lip 2012
Posty: 12
Pomógł: 0

Nikt nie ma pomysłów jak zrobić to bez dodatkowych wzmacniaczy op.?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 sie 2012, o 11:43 
Offline
Moderator
Avatar użytkownika

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

yanan napisał(a):
Nikt nie ma pomysłów jak zrobić to bez dodatkowych wzmacniaczy op.?


Masz moją pierwszą książkę ?

http://atnel.pl/mikrokontrolery-avr-jezyk-c.html

przecież tam masz opisane krok po kroku jak się do tego zabrać i jak zrobić .... czy masz ale nie czytałeś ? czy nie masz ?

_________________
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: 2 sie 2012, o 13:47 
Offline
Nowy

Dołączył(a): 27 lip 2012
Posty: 12
Pomógł: 0

Książki nie mam (jeszcze). Na innych forach użytkownicy podpowiadają żeby wykorzystać wejście różnicowe, bo pomiar single ended jest niedokładny dla pomiaru napięć < 1V. Tylko jest jeden problem ATmega8 nie posiada wejść różnicowych (NEG).



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 sie 2012, o 14:24 
Offline
Moderator
Avatar użytkownika

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

yanan napisał(a):
Książki nie mam (jeszcze). Na innych forach użytkownicy podpowiadają żeby wykorzystać wejście różnicowe, bo pomiar single ended jest niedokładny dla pomiaru napięć < 1V. Tylko jest jeden problem ATmega8 nie posiada wejść różnicowych (NEG).


Dokładnie dlatego w książce opisywałem jak robić takie pomiary z wykorzystaniem wejść różnicowych bo inaczej TYLKO wzmacniacz operacyjny pomoże. W książce są przykłady chyba i z ATmega32 i z ATtiny26

_________________
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: 2 sie 2012, o 16:48 
Offline
Nowy

Dołączył(a): 27 lip 2012
Posty: 12
Pomógł: 0

Zatem albo inny mikrokontroler, albo wykorzystanie wzmacniacza operacyjnego.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 sie 2012, o 16:53 
Offline
Moderator
Avatar użytkownika

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

yanan napisał(a):
Zatem albo inny mikrokontroler, albo wykorzystanie wzmacniacza operacyjnego.


Dokładnie, a jak widzisz masz spory wybór procków z możliwością pomiaru różnicowego. Jeśli zależy ci na większej dokładności to też warto wiedzieć, że lepsze parametry będzie miał np ATtiny26 lub nowszy ATtiny861 niż taka np ATmega32. Porównaj sobie dane z PDF'a

_________________
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: 3 sie 2012, o 18:00 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 14 paź 2011
Posty: 307
Lokalizacja: Lbt
Pomógł: 8

A nie prościej na jakimś boczniku, na którym odkładało by się napięcie w zależności od wielkości płynącego prądu i później jakimś precyzyjnym wzmacniaczem trochę podbić (np OP07)?

_________________
Ujemna delta to dopiero początek zabawy...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 sie 2012, o 18:02 
Offline
Moderator
Avatar użytkownika

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

miszczo napisał(a):
A nie prościej na jakimś boczniku, na którym odkładało by się napięcie w zależności od wielkości płynącego prądu i później jakimś precyzyjnym wzmacniaczem trochę podbić (np OP07)?


No dokładnie tylko że kolega nie chce jakby użyć zewn. WO, wtedy pozostaje zmiana procka. Albo jeśli nie można wymienić procka to można dodać taki WO ;)

_________________
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: 6 sie 2012, o 14:27 
Offline
Nowy

Dołączył(a): 27 lip 2012
Posty: 12
Pomógł: 0

Zdecydowałem się na wzmacniacz operacyjny. Jaki konkretnie wzmacniacz można by zastosować do tego typu pomiaru? Ja zastosowałem LM358. Wynik też nie jest imponujący miernik mierzy z dokładnością +/- 3mA

P.S. Zauważyłem, że im większy prądy tym błąd się zmniejsza... Czy to jest normalne?
Pomiar prądu silnika powoduje, że pomiary zaczynają pływać jak sobie z tym poradzić?



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: 18 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 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