Pomiar różnicowy Atmega16

To forum jest dla wszystkich pasjonatów mikrokontrolerów AVR Atmela. Wymiana doświadczeń i pomoc dla początkujących w pisaniu programów zarówno w C, Asemblerze jak i BASCOM. Zapraszam znawców tematu, aby pomogli wszystkim początkującym!
ODPOWIEDZ
snow
Użytkownik
Posty: 794
Rejestracja: 16 sty 2007, 3:44
Lokalizacja: lubelskie
Kontakt:

Pomiar różnicowy Atmega16

Post autor: snow » 19 lut 2008, 18:59

Witam,

Mam pytanie odnośnie pomiaru różnicowego w Atmedze. Mam trzy źródła napięcia połączone szeregowo i chciałbym na każdym z nich zmierzyć napięcie. Każde ma ok 4V. Pomyślałem że do tego celu użyje pomiaru różnicowego lecz niestety widzę że chyba to będzie niewykonalne (albo ja źle myślę). Źródła kolejno podłączone do ADC0, ADC1, ADC2 . Czy takie podłączenie nie uszkodzi portu? wejście ADC1 będzie na potencjale 8V a ADC2 na 12V względem masy i obawiam się o uszkodzenie tych wejść? Chyba że przy pomiarze różnicowym nie ma znaczenia które wejście na jakim jest potencjale względem GND?

Awatar użytkownika
RcTomek
Moderator
Posty: 243
Rejestracja: 27 wrz 2007, 21:15
Lokalizacja: Głogów / Wrocław

Post autor: RcTomek » 19 lut 2008, 21:28

Nie powinno się podawać do mikrokontrolera napięcia większego od zasilającego. W przeciwnym wypadku uszkodzisz uC. Proponuję zastosować dzielniki napięć. Wejścia różnicowe w m16 posiadają możliwość programowego ustawienia wzmocnienia sygnału.

snow
Użytkownik
Posty: 794
Rejestracja: 16 sty 2007, 3:44
Lokalizacja: lubelskie
Kontakt:

Post autor: snow » 20 lut 2008, 7:26

Ddevil pisze:Nie powinno się podawać do mikrokontrolera napięcia większego od zasilającego.
No to jest oczywiste, myślałem że wtedy jest to jakoś inaczej rozwiązywane.
Ddevil pisze: Proponuję zastosować dzielniki napięć.
Niestety odpada gdyż pomiary będą się zmieniać w zależności od poziomu naładowania poszczególnych ogniw. Już pomiar napięcia na 2 ogniwach będzie zależał od jednego z nich. Chciałbym mieć kontrolę niezależną napięcia każdego ogniwa niż grupy ogniw. Oczywiście istnieje możliwość zastosowania 3 procesorów do każdego z nich. Pozostaje problem np. wyświetlenia wartości napięcia na każdym z ogniw na jednym wyświetlaczu. Trzeba się bawić wtedy w RS485 i jakieś optoizolację bo mas 3 procesorów nie można połączyć razem. Dodatkowo w celu pilnowania napięcia na każdej celi i ich wyrównania będą te ogniwa zwierane zatem przy pomiarze za pomocą dzielników wyniki otrzymane podczas zwarcia któregoś ogniwa będą różne w zależności które ogniwo zostaje zwarte. Chyba żeby nie stosować pomiaru ciągłego a jedynie co jakiś czas sprawdzać jakie jest napięcie i matematycznie wyznaczać sobie ile jest na każdym napięcia, chociaż przyznam że wolałbym mieć kontrolę nad każdym z osobna.

Drugim rozwiązaniem jest zastosowanie 3 komparatorów i olanie techniki mikroprocesorowej, tyle że posiadanie informacji jakie jest napięcie na każdym ogniwie byłoby mi bardziej na rękę :)

Awatar użytkownika
RcTomek
Moderator
Posty: 243
Rejestracja: 27 wrz 2007, 21:15
Lokalizacja: Głogów / Wrocław

Post autor: RcTomek » 20 lut 2008, 15:42

A co myślisz o wzmacniaczu różnicowym? Można by do tego wykorzystać jakiś wzmacniacz operacyjny, a właściwie trzy dla każdego ogniwa. Maksymalne napięcia wejściowe nie są tak krytyczne jak w przypadku mikrokontrolerów.

snow
Użytkownik
Posty: 794
Rejestracja: 16 sty 2007, 3:44
Lokalizacja: lubelskie
Kontakt:

Post autor: snow » 21 lut 2008, 0:00

Narazie zrobiłem działający prototyp na 3xTL061 i działa ale nadal myślę nad tym jak zaprzędz do tego procesor i dochodzę do wniosku że jedynym sensownym rozwiazaniem jest zrobić poprostu dzielniki a pomiaru napięcia dokonywać co jakiś czas przerywając na czas pomiaru zwieranie ogniw.

ODPOWIEDZ