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

Tani przetwornik A/D do termometru wielokanałowego z czujnikiem LM35

lukasb9 13 Wrz 2004 22:38 3707 18
  • #1 851379
    lukasb9
    Poziom 28  
    Posty: 1421
    Pomógł: 56
    Ocena: 70
    Witam musze zrobić termometr klkukanałowy i potrzebny jest mi jakiś przetwornik A/D najlepiej jak najtańszy:)
    tak żeby mógł przetworzyć sygnał z jednej czujki LM35 z dokładnościa do 0,5 stopnia, podpowiedzcie czym warto się zainteresować
    pozdrawiam Łukasz
  • #2 851595
    yarpen2
    Poziom 22  
    Posty: 549
    Pomógł: 39
    Ocena: 39
    jak z jednego czujnika to po co kilka kanałów?
    ale jeśli ma być kilka to do LM35 wystarczy ten przetwornik wbudowany w procek na ATMega8 (10 bitów)
    może lepszym rozwiązaniem byłoby dać czujnik na 1wire ? nie wiem co o tym myślisz, ale wtedy można dać jakiś tańszy procek bez przetwornika
  • #3 852058
    Tdv
    Poziom 34  
    Posty: 2237
    Pomógł: 150
    Ocena: 53
    Nie podałeś zakresu w jakim chcesz mierzyć temperaturę, ale w typowym zastosowaniu (temoeratura otoczenia) spokojnie Ci wystarczy przetwornik wbudowany w uC AVR, PIC czy jakieś klony '51.
    yarpen2: twierdzisz, że kilka czujników 1 wire będzie tańsze niż 1 uC z prztwornikiem kilkukanałowym?
  • #4 852258
    lukasb9
    Poziom 28  
    Posty: 1421
    Pomógł: 56
    Ocena: 70
    chciałem np cztery czujniki LM35 przelaczać kolejno na przetornik, tak więc dallas-y odpadają , w takim więc razie powiedzcie mi , jaki prcesor z rodziny 51 ma przetwornik A/C - bo nie orientuje się zupełnie
    pozdrawiam Łukasz
  • #5 852285
    Tdv
    Poziom 34  
    Posty: 2237
    Pomógł: 150
    Ocena: 53
    Np. T89C51AC2 zajrzyj www.seguro.pl są też takie układy innych producentów, choć chyba tańsze i bardziej dostęne są uC AVR (np. ATmega8 ma kilka kanałów ADC 10bit) i kosztuje kilkanaście złotych.
  • #6 853929
    lukasb9
    Poziom 28  
    Posty: 1421
    Pomógł: 56
    Ocena: 70
    dzięki chłopaki:)
    to mi chyba wystarczy, zainteresowal mnie ten Atmega
    a właśnie jeszcze jedno.... są jakieś przetworniki a/c z serii PCF...?
    pozdrawiam Łukasz
  • #7 854001
    gummis
    Poziom 15  
    Posty: 162
    Pomógł: 4
    Ocena: 1
    PCF8591 - masz tam cztery kanaly A/D i jeden D/A
  • #8 855718
    yarpen2
    Poziom 22  
    Posty: 549
    Pomógł: 39
    Ocena: 39
    Tdv: lukasb9 napisał że chce mierzyć "sygnał z jednej czujki LM35 z dokładnościa do 0,5 stopnia"
    jeśli czujników ma być więcej, co napisał później, to i tak zależy jakie byłyby odległości między nimi. 1wire to tylko dwuprzewodowa skrętka i łączysz wszystkie czujki równolegle, a jak chcesz do każdego kanału podłączać osobno czujnik (np. LM35 )to już zaczyna sie pajęczynka. i to nieważne czy masz jeden kanał i go multipleksujesz, no chyba że masz wszystkie czujniki na płytce z procesorem ale to raczej nie miałoby dużego sensu (może poza dydaktycznym)
  • #9 856192
    Tdv
    Poziom 34  
    Posty: 2237
    Pomógł: 150
    Ocena: 53
    Kolego Yarpen2: Proponuję dokładną lekturę:

    lukasb9 napisał:
    Witam musze zrobić termometr klkukanałowy i potrzebny jest mi jakiś przetwornik A/D najlepiej jak najtańszy:)
    tak żeby mógł przetworzyć sygnał z jednej czujki LM35 z dokładnościa do 0,5 stopnia, podpowiedzcie czym warto się zainteresować
    pozdrawiam Łukasz

    [/b]
  • #10 856225
    domin0
    Poziom 12  
    Posty: 54
    ma ktos moze procedurke w C do obslugi A/C w ATMEGA8535 bo mnie cosik nie dzala
  • #11 973891
    olo.d
    Poziom 15  
    Posty: 203
    przylączam sie do prozby ma ktos gotowy programik dzialajacy do szczytywania z przetwornika a/d?????
  • #12 974082
    rtom
    Poziom 18  
    Posty: 458
    Pomógł: 6
    Ocena: 18
    To zalezy jak sie komunikuje ten przetwornik z prockiem. Ale pewnie jak wiecej bitow to po SPI. Mam obsluge programowego SPI, dla procka '51 i przetwornika MCPxxx. Jak kogos interesuje to nie ma problemu.
  • #13 974148
    olo.d
    Poziom 15  
    Posty: 203
    bardziej mnie interesowalo cos pod atmega np 8535 ale nie pogardze i tym co msza??
  • #14 974929
    juntom
    Poziom 19  
    Posty: 216
    Pomógł: 35
    Ocena: 27
    To pochodzi z programu gdzie uzywany byl at90s8535, wiec chyba w atmega8535 jest podobnie. Moze sie przyda.
    Pozdr.

    void adc_init (void)
    {
    outp(0x85,ADCSR); // zalaczenie przetwornika,taktowanie /32
    }

    int read_adc (unsigned char input)// odczyt adc , input nr wejscia
    {
    int adc;
    outp(input,ADMUX);// zaladowanie rejstru admux nr wejscia
    sbi (ADCSR,ADSC);// start pojedynczej konwersji
    while (inp(ADCSR)&0x40); // czekanie na jej zakonczenie
    adc = (inp(ADCL)|(int)(inp(ADCH)<< 8 ));// odczyt zawartosci rejestru adcl i adch ( adcl pierwszy !)
    return (adc); // powrot z podprogramu
    }

    a to z atmega8 // opis jak wyzej

    void adc_init (void)
    {
    outp(0x86,ADCSRA);
    }

    unsigned int read_adc (unsigned char input)
    {
    ADMUX=(input&0x07)|0xc0;
    sbi (ADCSRA,ADSC);
    while (ADCSRA&0x40);
    return (ADCL|(ADCH<< 8 ));
    }
  • #15 975211
    olo.d
    Poziom 15  
    Posty: 203
    no tak, tylko slyszalem ze z tym atmega sa problemy niby identyczny a jednak cosik nie dziala. niewiem ale spruboje, tylko troche później, a jka ktoś ma wyprubowany z atmega to bardzo bym prosił.
  • #16 988775
    MAREK74
    Poziom 20  
    Posty: 475
    Pomógł: 3
    Ocena: 13
    ja robie temperature na DSach i 89C2051 lub 16F628 i działa bezbłędnie
  • #17 989248
    pioszc
    Poziom 12  
    Posty: 72
    Pomógł: 1
    Ocena: 1
    Może tylko jako ciekawostka (cena) max6675 termopara/SPI. niezła dokładność i powtarzalność.
  • #18 1080878
    tomekjan
    Poziom 11  
    Posty: 20
    Ocena: 3
    Do "juntom'a",
    możesz napisać co każda linijka kodu oznacza. Po prostu musze oprogramować przetwornik A/D w AT90s4433 i nie wiem jak się do tego zabrać.
  • #19 10121897
    zielon_y
    Poziom 11  
    Posty: 9
    Poruszam właśnie ten temat, bo sam chce zrobić podobne urządzenie. Mimo, że temat jest stary to dla potomnych napiszę, że przy multipleksowaniu czujników ważny jest czas odpowiedzi (ustabilizowanie się wyniku) po podaniu zasilania na czujnik. W nocie katalogowej czujnika jest to podane - wykres o nazwie "Start-Up Response". Dla LM35 jest to ok 30us

Podsumowanie tematu

LABEL_AI_GENERATED
Dyskusja dotyczy wyboru taniego przetwornika A/C do wielokanałowego termometru z czujnikami LM35. Zalecane jest wykorzystanie wbudowanego przetwornika ADC w mikrokontrolerach AVR, np. ATmega8, który oferuje 10-bitową rozdzielczość i kilka kanałów, co pozwala na przełączanie sygnałów z kilku czujników. Alternatywnie wspomniano mikrokontrolery z rodziny 8051 posiadające ADC, np. T89C51AC2, jednak są one mniej popularne i droższe. Poruszono też temat przetworników zewnętrznych, takich jak PCF8591, który ma 4 kanały A/D i 1 kanał D/A. Wskazano na kwestie praktyczne, jak multipleksowanie sygnałów i czas stabilizacji pomiaru LM35 (ok. 30 µs). Podano przykładowe fragmenty kodu w C do obsługi ADC w mikrokontrolerach ATmega8 i ATmega8535. Wspomniano także o alternatywnych czujnikach 1-wire (np. Dallas), które jednak nie spełniają wymagań autora. Poruszono też temat komunikacji SPI z zewnętrznymi przetwornikami MCPxxx. Wskazano, że dla typowego zakresu temperatury otoczenia wbudowany ADC mikrokontrolera jest wystarczający i najtańszy.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA