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



Teraz jest 27 kwi 2024, o 23:32


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 
Autor Wiadomość
PostNapisane: 3 lut 2014, o 21:17 
Offline
Nowy

Dołączył(a): 24 sty 2014
Posty: 23
Pomógł: 0

Witam serdecznie

Chciałem się podpytać bardziej zaawansowanych kolegów o następującą sprawę.
Zrobiłem sobie czujnik temperatury na LM35. skalibrowałem i działa mi teraz prawidłowo. ale chciałem dodać też czujnik i diodę nadającą podczerwieni.
dodałem i działa tak jak chciałem ale pojawił się pewien problem z odczytem temperatury. ponieważ chciałem aby detektor podczerwieni miał względnie duży zasięg dlatego podciągnołem na rezystorze prąd jaki jest dostarczany do diody do 10mA. to jednak spowodowało że odczyt temperatury zmniejszył się liniowo. czyli wyjmę diodę to wskazuje np 21st. jak podłączę diodę IR do procka to odczyt temperatury spada do 17st. napięcie odniesienia jest stabilne na poziomie 2,64 więc nie wiem skąd te przekłamania. pomiar na LM35 podaje prawidłowe napięcie dla 21st. czyli 210mV.

wyglada że im więcej ciągnę mocy z procka tym odczyty z ADC wskazują na mniejsze napięcia niż w rzeczywistości.

Proszę o pomoc w zrozumieniu dlaczego tak się dzieje.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 lut 2014, o 22:26 
Offline
Użytkownik

Dołączył(a): 07 gru 2013
Posty: 90
Pomógł: 6

A jak masz poprowadzone masy analogowa i cyfrowa, jak one się łączą ( jest to układ na płytce testowej ? ). Spróbuj zrobić tak - masy analogowa i cyfrowa łączą się w punkcie zasilania tak samo masa od diody ir a np masa od czujnika LM łączysz z masą przetwornika a/c. P.S. co do diody ir 10mA to trochę nie za mało ( np LD271 ma z tego co kojarzę prąd do 100mA - oczywiście w impulsie ).



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 lut 2014, o 00:11 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 26 gru 2012
Posty: 147
Lokalizacja: Zadupie/Wrocław
Pomógł: 6

Jest jeszcze inna sprawa - do którego portu masz podpiętą diodę? Bo jeśli do C (ten sam port, na którym znajduje się w Medze ADC przeważnie) i port zmienia stan w trakcie konwersji ADC to może mieć to duży wpływ na wynik pomiaru.
Dlatego wielu producentów mikrokontrolerów zaleca na czas konwersji ADC w ogóle usypianie rdzenia. Nie zapominając oczywiście o filtracji zasilania, prawidłowym prowadzeniu mas (co wskazał jony) oraz generalnym założeniu, że portów używających sygnałów analogowych generalnie nie powinno się używać do sygnałów cyfrowych.

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 lut 2014, o 10:00 
Offline
Nowy

Dołączył(a): 24 sty 2014
Posty: 23
Pomógł: 0

witam i dziękuję za odpowiedz.

cały układ mam podłączony na płytce stykowej. co do mas to są poprowadzone tak jak można to zrobić na płytce stykowej czyli masa analogowa po jednej stronie i cyfrowa po drugiej. połączone ze sobą gdzieś na przeciwległym końcu płytki.

dioda niestety jest podpięta pod port C więc pewnie kolega miał rację że dobrze było by to gdzieś indziej przepiąć. co do mas to odbiornik IR jest podpięty pod masę po stronie analogowej a dioda po stronie cyfrowej. filtracja zasilania zgodnie z dobrymi praktykami. 10uF elektrolit + 100nf ceramik na wejściu zasilania + 2x100nf po każdej ze stron procka przy nóżkach Vcc i Avcc. + kondensator przy Aref do masy cyfrowej i dławik 10mH przy Avcc.

Co do usypiania procka to wydaje mi się że jest parę przeciwności.
1) Jak to wygląda w wypadku sterowania LCD. czy podczas uśpienia ekran gaśnie? Mam poprowadzone z procka zasilanie podświetlenia wyświetlacza abym mógł go wygaszać jak jest dłużej nie używany. czy to spowoduje miganie przy uśpieniu?

2) jest też problem w samej funkcji pomiaru z ADC. konkretnie chodzi o tą pętlę
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
w moim przypadku powoduje calkowite zawieszenie wszystkiego. ekran LCD przestaje działać, dioda IR przestaje nadawać.wygląda że procek się wiesza. ponieważ zastąpiłem to zwykłym _delay_ms(1); to dalej nie drążyłem tematu dlaczego tak jest. jak zatem to będzie wyglądać przy uśpieniu procka?

tu zamieszczam boja minibibliotekę od pomiaru ADC jeżeli ktoś chciałby rzucić okiem.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


3) czy mogę "uśpić" tylko cały rejestr C na przykład?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 lut 2014, o 14:08 
Offline
Nowy

Dołączył(a): 17 gru 2012
Posty: 17
Pomógł: 1

Wchodzenie w "ADC Noise Reduction Mode" nie zmienia stanów na portach wyjściowych. Przed wejściem w ten stan musisz zapewnić odpowiednie wysterowanie portów.

Przy stosowaniu powyższego stanu pomiar uruchamia się sam w momencie wejścia w sleep.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 lut 2014, o 23:04 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 kwi 2013
Posty: 65
Pomógł: 0

Jak robiłem miernik napięcia też miałem bardzo dużo problemów z liniowoscia ADC , na to ma wpływ wiele czynników, zrobiłem kilka testów np. wyłączylem timer i okazało się że mój miernik dokładnie mierzy, wynik wyświetlalem sobie na terminalu bo wiadomo wyświetlacz led nie działał skoro zatrzymałem timer. Na końcu. okazało się, przynajmniej w moim przypadku, że dodanie zewnętrznego napięcia odniesienia załatwiło sprawę, bardzo szybko możesz sprawdzić czy u Ciebie to rozwiąże problem, ja użyłem L7805 czyli 5V na pin Vref, dwa kondensatory i problem nieliniowosci praktycznie znikł.



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

Strefa czasowa: UTC + 1


Kto przegląda forum

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


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:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO