Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

89c4051 i czujniki temperatury

20 Lip 2004 20:41 2597 6
  • Poziom 19  
    Witajcie mam 89c4051 i chce do niego podłączyć dwa czujniki temperatury
    ale czujniki tanie lm335 nie dallasy
    układ ten ma dwa wejcia ain0 ain1 co można z nimi zrobić
    może ktos podsunie ciekawy pomysł schemat
    chodzi mi o maxymalnie tani układ temperatury 0-100
  • Specjalista techniki cyfrowej
    W nocie katalogowej procka (do pobrania na stronie Atmela i może na elektrodzie) jest prosty przetwornik analogowo-cyfrowy, gdzieś tam nawet jest jak zbudować termometr na lm335. wejścia ain0 i ain1 to wejścia komparatora analogowego, niestety tylko komparatora, nie ma wbudowanego ADC. Jeżeli zbudujesz ten przetwornik z noty katalogowej, to możesz podłączyć tylko jednego LM-a, dwa przez multiplekser analogowy, albo klucze 4066. przeszukaj sieć, nie jestem pewien, ale na stronce atmela ten termometr był kompletny, ze schematem i programem.
    ---------------
    Znalazłem przetwornik A/C (nota aplikacyjna z Atmela), opisana zasada działania, wszystkie potrzebne wzory, ale bez programu.
  • Poziom 30  
    albo zrobić troszkę inaczej. Zrobić prosty przetwornik CA na rezystorach(R 2R) i wypuścić wyjście z przetwornika na komparator. Drugi koniec komparatora na czujnik temperatury(to jest bezwzgledny więc będzie jakieś 2,75V dla 20stopni). Podawać na przetwornik jakąś liczbę i sprawdzać które wejście jest większe. Taki pomysł może niekonwencjonalny ale coś słabo mi ta procedurka ze strony atmela działała(właściwie to pokazywało jakieś bzdury) Ale może tobie zadziała.
  • Specjalista techniki cyfrowej
    :arrow: szymtro
    niestety przetwornika R-2R nie można zrobić na końcówkach atmelka. Taki przetwornik powinien być sterowany (w najlepszym wypadku) z dwukierunkowych źródeł prądowych, można też od biedy dać jakiś sterownik linii TTL (np 74245). Piny 89Cx051 mają ogromną różnicę prądu emitowanego/pochłanianego, w związku z czym napięcie na wyjściu przetwornika będzie znacznie różniło się od pożądanego. Może dla tego słabo Ci działało?
    Zaproponowana przez Ciebie metoda jest jak najbardziej "konwencjonalna" i stosowana w wielu przetwornikach A/C, fachowo nazywa się to metoda sukcesywnych aproksymacji. W zamieszczonej przeze mnie nocie aplikacyjnej jest też taki przetwornik A/C, ale z wykorzystaniem "przwdziwego" przetwornika C/A.

    A może prościej będzie wykorzystać gotowy przetwornik A/C, np. PCFcośtam - kosztuje jakieś 9 PLN (Dziwne, w Gliwicach prawie wszystkie PCFy kosztują około 9PLN :D ), albo ADC0809 (cena zbliżona) ?
  • Poziom 11  
    Ja u siebie zastosowałem LM35 - 8.5 PLN/szt. Do tego układ generowania napięcia piłokształtnego (2xBC547 + 1xBC328 takie posiadam).
    W sumie koszt tych układów to 10 PLN.
    Może by tak zastosować 2xLM35DZ + 4051 do przełączania sygnałów.
    Sygnał z czujnika dochodzi na jedno z wejść AIN np. AIN0. Sygnał z generatora napięcia tu na AIN1. Programowo odliczamy czas od wyzwolenia generatora do zmiany stanu wewnętrznego kompratarora i mamy jako taki pomiar temp. Podobno rozdzielczość to ok. 0.5 st.C. Jednakże jeszcze nie uruchomiłem tego pomiaru bo skupiam sie na razie na wyświetlaczu tej temperatury (6 x 7-segm) również sterowanego z 89c4051.
    Czujnik podłącza się prosto VCC, GND i OUT zależny od temperatury.
  • Specjalista techniki cyfrowej
    Oddaję w ręce Wasze schemat przetwornika napięcie/czas.

    Sposób obsługi programowej w skrócie:
    Zabiegi wstępne:
    Timer 0 ustawiamy jako timer z wewnętznym taktowaniem i tak aby zliczał impulsy tylko wtedy, gdy na /INT0 jest stan wysoki (szczegóły->nota katalogowa)
    Kalibracja:
    Na P1.0 ustawiamy stan niski, na P1.2 stan wysoki
    Zerujemy timer0
    Ustawiamy P1.0 w stan wysoki
    czekamy na stan niski na /INT0 (nie obawiać się o żadne niedokładności, timer skonczy zliczanie we właściwym momencie, więc w pętli można robić coś pożytecznego :D )
    zawartość timera0 zapisujemy jako czas1
    Pomiar:
    Na P1.0 i P1.2 ustawiamy stan niski
    Zerujemy timer0
    Ustawiamy P1.0 w stan wysoki
    czekamy na stan niski na /INT0
    zawartość timera0 zapisujemy jako czas2
    Obliczanie wyniku:
    napięcie wejściowe obliczamy z zależności:
    Ux=(czas2*Uref)/czas1
    w tym wypadku Uref=2.5V
    Uwagi:
    napięcie wejściowe podawane z potencjometru, zamiast niego czujnik temperatury.
    VcSW1 i VcSW2 to klucze analogowe (np. 4066) - CircuitMaker nie miał odpowiednich symboli w bibliotece.
    Stabilność cieplna źródła prądowego - ok. 0.3%/stopień C, bez znaczenia, bo przed każdym pomiarem wykonujemy kalibrację.
    Układ niesprawdzoy w praktyce, na pewno będzie miał problemy z napięciem wejściowym bliskim napięciu zasilania, albo masy.

    To chyba wszystko, miłej zabawy :D