logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak ustabilizować odczyt z LM335 na ATmega8 z użyciem Bascom?

Michał_z1 13 Lut 2008 18:27 2800 4
REKLAMA
  • #1 4801375
    Michał_z1
    Poziom 16  
    Posty: 190
    Pomógł: 13
    Ocena: 2
    Witam.
    Szukałem na forum i niestety nie znalazłem jednoznacznej odpowiedzi na mój problem (tak czasami bywa). Tak więc atmega8 to tego wykorzystany wewnętrzny ADC, kanał 0, wpięty lm335+4k7 do VCC, kwarc 11059200, zasilanie przez dławik 10uH do AVCC, 10uF pomiędzy AREF i GND zgodnie z opisem z helpa, configuracja ADC: Config Adc = Single , Prescaler = auto , Reference = Avcc. LM335 wlutowany bezpośrednio do wyprowadzenia procesora, połączone obie końcówki GND i podczas pomiaru temperatury co około 0,5s......1s wynik na wyświetlaczu wacha się w bardzo szybkim tempie o 3.....4 stopnie w górę i w dół np: 28>30>26>27>30>29>31 itd. Dodatkowo podczas procedury Getadc(0) blokuje przerwanie odpowiedzialne za multipleks LED-a.
    pozdrawiam.
  • REKLAMA
  • #2 4804502
    mick
    Poziom 15  
    Posty: 212
    Pomógł: 2
    Ocena: 204
    1. Zobacz czy nie masz zbyt wąskich ścieżek na VCC i GND do procka.
    2. Zrób osobny kabelek do zasilania AVCC i AGND bezpośrednio z wejścia zasilania.
    2. spróbuj dać opornik między wejście ADC i czujnik (zobacz 4.7k...10k)
    3. możesz dać z AVCC do masy kondensator 100nF
    4. zsumuj np 3 pomiary i uśrednij wynik (tj. tutaj podziel przez 3)
  • REKLAMA
  • #3 4804686
    PiotrPitucha
    Poziom 34  
    Posty: 2658
    Pomógł: 201
    Ocena: 424
    Cześć
    Uwagi cenne i dobre ale co do ilości pomiarów to zrób 32 lub 64, sumuj i przesuń wynik w prawo o odpowiednią ilość miejsc co jest szybsze niż dzielenie.
    Dzielenie jest sensowe jak chcesz zwiększyć rozdzielczość.
    Piotr
  • REKLAMA
  • #4 4813162
    magik128
    Poziom 22  
    Posty: 654
    Pomógł: 20
    Ocena: 27
    Najlepiej uśredniane przeprowadzać w czasie jednego półokresu sieciowego tzn 20ms.Zmniejszy to wpływ zakłóceń sieci energetycznej.
  • #5 4839883
    pitlab
    Poziom 13  
    Posty: 84
    Pomógł: 3
    Ocena: 3
    W pierwszej kolejności spróbuj ustalić co jest przyczyna tak dużego pływania. Może to być licha referencja i pomimo że czujnik daje stabilny sygnał to mierzysz wachania napięcia referencyjnego. Zrób test mierząc stabilne źródło napięcia np. nieobciążoną baterię. Wynik musi stać w miejscu, jeżeli nie, to w pierwszej kolejności daj porządną referencję, ewentualnie popracuj jeszcze nad filtrowaniem zasilania.
    Drugie możliwe źródło zakłóceń, które kiedyś zauważyłem u siebie (co prawda na przetworniku 12-bit i wysokiej impedancji źródła), to ładowanie wewnętrznego kondensatora sample and hold powodowało chwilowe zakłócenie mierzonego sygnału. U Ciebie impedancja źródła sygnału jest 4,7k, czyli sporo ale jeszcze nie jest tragicznie. Spróbuj dać kondensator rzędu kilkadziesiąt - kilkaset nF na wyjściu sygnału, najlepiej blisko przetwornika. To zmniejszy Ci impedancję dynamiczną źródła sygnału.

    Ten czujnik spokojnie da radę mierzyć wahania temperatury rzędu dziesiątych części stopnia. Pod poniższym linkiem znajdziesz kilka wykresów zarejestrowanych w czasie lotu szybowca, gdzie temperaturę (granatowa linia) mierzono właśnie za pomocą LM355: http://www.pitlab.pl/forum/viewtopic.php?f=5&t=297
REKLAMA