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

Przyrząd do pomiaru CO2 - Figaro TGS4161

Djuke 03 Mar 2012 12:30 6198 17
  • #1 03 Mar 2012 12:30
    Djuke
    Poziom 12  

    Witam,

    Przymierzam się do zaprojektowania i zbudowania mikroprocesorowego urządzenia do pomiaru CO2. Czujnik wykorzystywany to Figaro TGS4161 potrzebujący stabilne 5V +- 0,2V. Mikrokontroler to Atmega168PA (tani i lubię megi ;) - PS. wystarczy mi 10-bit ADC).

    Zanim przystąpię do projektowania i dalszych prac chciałbym wiedzieć czy zmierzam w dobrym kierunku oraz na co zwracać szczególną uwagę. Wymyśliłem sobie, że urządzenie będzie zasilane z USB, w środku jedno ogniwo Li-ion/Li-pol 3,7V. Do ładowania użyję MAX1811 i tu chyba nie mam większych wątpliwości bo schemat jest prosty i czytelny. Główny problem dotyczy samego zasilania urządzenia poprzez układ MAX1701 (taki obecnie posiadam), gdyż jest to przetworniczka impulsowa a nigdy dotychczas z takowej nie korzystałem. Moje pytanie brzmi czy zasilenie czujnika, układu analogowego (składającego się z dwóch WO TLC271) oraz Mikrokontrolera (w tym ADC), LCD (2x20) i DS1307 nie wniesie sporych zakłóceń na pomiary i pracę podzespołów. Głównie martwię się o samo przetwarzania ADC oraz wpływ na samo wyjście czujnika i dalej idących za nim wzmacniaczy operacyjnych.

    Jeśli ktoś ma lepszy pomysł niż zastosowanie MAX1701 to chętnie posłucham propozycji rozwiązania. Kwestia zasilania Ni-MH/Li-ion/Inne są otwarte, jednakże chciałbym aby urządzenie było mimo wszystko ładowane przez USB, gdyż tym samym portem chciałbym przesyłać dane na komputer podczas podłączenia (dzięki FT232RL).

    0 17
  • CControls
  • #2 04 Mar 2012 23:18
    Djuke
    Poziom 12  

    Wiem, że nie powinienem odpowiadać sam sobie, ale temat został przeniesiony pod Mikrokontrolery - chociaż o uC i tym podobne nie było pytania tylko o zasilanie. Główny problem to jak z Li-ion 3,7V otrzymać stabilne i najlepiej liniowe 5V w najrozsądniejszy sposób (koszt i ilość elementów). Kolejne pytanie to czy ładowanie ogniwa podczas pracy urządzenia poprzez MAX1811 to rozsądna opcja ? Producenci telefonów i innych urządzeń jakoś sobie z tym radzą natomiast ja widzę następujący problem. Skoro ładowanie ogniw ma ściśle ustalony charakter prądowo-napięciowy to czy pobór prądu przez urządzenie nie wpłynie niekorzystnie na ten proces ? I jaki będzie tego skutek ? Podłączenie USB będzie służyło także przesyłaniu danych więc uruchomienie urządzenia w czasie ładowania jest nieuniknione. Proszę o rady. Pozdrawiam

    0
  • #3 05 Mar 2012 09:38
    tmf
    Moderator Mikrokontrolery Projektowanie

    Raczej nie będzie, z drugiej strony polecam ci LTC1980, ma kontroler ładowania i osobną przetwornicę do zasilania reszty układu. Prosta i fajna. Co do zakłóceń - ponieważ sygnał się zmienia wolno to możesz zrobić kosmiczny oversampling i uśrednianie, co zredukuje szumy masakrycznie. Natomiast niesądzę aby wyjście z tego czujnika można było podłączyć bezpośrednio pod wejście ADC AVR. Ten czujnik zachowuje się jak ogniwo paliwowe, tyle, że ma kosmiczny opór wewnętrzny i potrzebuje wejścia pomiarowego o rezystancji rzędu GOmów. W praktyce potrzebny będzie bufor w postaci wzmacniacza operacyjnego z wejściem FET. Też w szufladzie mi leży ten czujnik i czeka na swoją kolejkę, także jak coś ruszysz to się odezwij. BTW, myślałeś jak to skalibrować?

    0
  • CControls
  • #4 05 Mar 2012 10:20
    Djuke
    Poziom 12  

    Ja część analogową rozwiązałem w sposób sugerowany przez producenta czujnika. Zastosowałem tanie i łatwo dostępne wzmacniacze operacyjne TLC271 w sposób jaki przedstawia schemat poniżej. Pierwszy fragment symuluje wyjście napięciowe czujnika (w celu symulacji w programie). Dokładne testy mojego egzemplarza czujnika jeszcze przede mną ale pierwsze testy w komorze w laboratorium dały obiecujące wyniki. Wzmocnienia jeszcze to kwestia odpowiedniego dobrania bo zmiana siły elektromotorycznej wg producenta waha się w przedziale ~40-70mV w pełnym zakresie - docelowo chcę otrzymać zakres na wyjściu 15mV(ze względu na WO) - 2,5V żeby dać sobie referencje na ADC 2,5V. Przyjrzę się LTC1980 ale na pierwszy rzut oka ma sporo niezbędnych dodatkowych elementów. Sygnał będzie bardzo wolno zmienny więc uśrednianie to jakaś opcja - nie potrzebny mi pomiar częściej niż raz na parę sekund więc to nie problem - bardziej martwi mnie to jak takie zasilanie (impulsowe) wpłynie na samą pracę czujnika i dalej idących elementów aż do ADC. Kalibracja ? Mam zamiar ustawić pod dany czujnik odpowiednią wartość napięcia odejmującego na potencjometrze (patrz RV2), możnaby PWM programowo kalibrować ale wolę unikać sygnałów szybkozmiennych w układzie. Programowo z poziomu mikrokontrolera dwie opcji kalibracji - metoda dwóch punktów i liniowa aproksymacja(dwa punkty ustalone w komorze) lub metoda jednego puntku - kalibracja w przewietrzonym pomieszczeniu - chociaż to kiepska opcja tym bardziej na śląsku ;)

    Może ktoś rozwieje definitywnie moje wątpliwości co do zasilania impulsowego ? :)
    Pozdrawiam

    0
    Załączniki:
  • #5 15 Mar 2012 16:08
    Djuke
    Poziom 12  

    Witam wszystkich zainteresowanych ;)

    Chciałbym prosić bardziej doświadczonych kolegów o rady oraz sprawdzenie schematu, który wykonałem na potrzeby omawianego projektu. To mój pierwszy tak duży (dla mnie wręcz olbrzymi) dlatego proszę o wyrozumiałość jeśli popełniłem jakieś karygodne błędy. Kondensatory rzędu uF będą wszystkie Tantalowe aby jak najlepiej odfiltrować zakłócenia - tak mnie jakaś mądra strona poinstruowała ;) Atmega168PA ma wewnętrzne diody na wszystkich pinach więc podarowałem je sobie przy przyciskach. Ze złącza ISP nie korzystam z VCC - nie miałbym go chyba jak rozsądnie poprowadzić a do programowania wystarczy chyba wspólna masa ? Proszę również o rady na co zwrócić szczególną uwagę podczas projektowania płytki PCB - przeraża mnie to ze względu na ilość elementów/ścieżek/rozmiarów układów dlatego pomoc w tym zakresie mile widziana. Do tej pory wykonywałem płytki sam ale przy tych rozmiarach chyba rozsądniej byłoby zlecić to jakiejś firmie, jakby ktoś w okolicach Zabrze/Gliwice/Katowice
    znał godną polecenia firmę to również proszę o informację.

    Mam prośbę również do moderatora, który wcześniej przeniósł ten temat tutaj - wydaje mi się, że bardziej pasuje do podforum AVR lub innego - tutaj nijak ;)
    Pozdrawiam
    Przyrząd do pomiaru CO2 - Figaro TGS4161

    0
  • #6 29 Mar 2012 23:01
    Djuke
    Poziom 12  

    Tracę nadzieje, że ktokolwiek się zainteresuje ;) Ale spróbować nie zaszkodzi... Dzisiejsze pytania dotyczy zabezpieczenie wyjścia z wzmacanicza operacyjnego które ma wchodzić na ADC w Atmedze w której Aref = 2,5V (schemat wyżej). Postanowiłem zabezpieczyć układ w sposób jaki prezentuje schemat poniżej. Pytanie czy takie zabezpieczenie bedzie wystarczające i czy znacząco wpłynie na wynik przetwarzania (diody zenera 2,4V). Kondensator będzie przed samym kontrolerem w celu eliminacji szumów.
    Przyrząd do pomiaru CO2 - Figaro TGS4161

    0
  • #7 30 Mar 2012 17:38
    alagner
    Poziom 25  

    Powinno wystarczyć, ale ja bym dał zwykłą diodę do Vref i GND. Na ile to wpłynie na liniowość - no to zależy od diod, ciężko powiedzieć.
    BTW - a co do płytkarni ;) to ze swojej strony polecam firmę Kono z Gliwic.

    Pozdrawiam.

    0
  • #8 31 Mar 2012 00:01
    Djuke
    Poziom 12  

    Dziękuje za odpowiedź ;) Cieszy mnie jakiekolwiek zainteresowanie moim tematem. Faktycznie zaproponowane przez Ciebie rozwiązanie przynajmniej wg SPICE daje lepsze wyniki ;) Z kolei kalkulator KONO wyrzuca mi jakieś kosmiczne ceny rzędu >100zł za płytkę jednostronną... Gdzie w Markerze wychodzi około 20zł ;)

    0
  • #9 07 Paź 2012 23:39
    zbrozw
    Poziom 9  

    Witam,
    mam pytanie odnosnie samego czujnika Figaro TGS4161. Czy udało sie Panu osiagnąc wynik pomiaru zblizony do rzeczywistego pomiaru CO2 (np miernikiem fabrycznym). Sporo kombinowałem jak obejśc fabryczny procesor do tego czujnika FIGARO FIC03272. Cały problem,bo dla kazdego czujnika zarówno poziom EMF jest inny jak i próg odniesienia dla 350ppm (zerowy). W fabrycznym zastosowaniu procesor wytwarza próg odniesienia przez wyj PWM na wzm. róznicowy. Ja zastosowałem mocny przetwornik ADC 12 BIT i za pomoca jego przeliczałem dryf napiecia, ale powtarzalnośc dla kilku czujników była co najmniej "marna". Wydaje mi sie, ze sam producent pewnych rzeczy nie ujawnia w nocie katalogowej, aby kupować gotowe moduły z wyj DAC i szeregowym np. CDM4161. Model z PR-kami jak Pan przedstawił moze miec miejsce dla danego czujnika, pod warunkiem, że go skalibruje w jakiejś komorze CO2. Ja próbowałem zbudowac taki układ autokalibracji, który na podstawie poziomu dolnego (przyjmie go jako 350ppm) przetestuje go w zakresie dryfu EMF i wyliczy poziom rzeczywisty CO2. Tylko, ze jeden czujnik pokazywał mi np 550ppm a inny 900ppm. No i sie poddałem...
    Pozdrawiam
    Zbyszek

    0
  • #10 17 Paź 2012 21:03
    Djuke
    Poziom 12  

    Fakt, ja korzystałem z kalibracji w komorze - urządzenie jest dostosowane do konkretnego egzemplarza. Każdy czujnik ma niestety inny EMF i delta EMF co utrudnia sprawę. Rozrzut technologiczny jest spory. Offset można odjąć mierząc bezpośrednio wyjście czujnika po ustaleniu w warunkach zerowych (350ppm) lub ew. w czystym powietrzu zakładając te 400-600ppm zależnie od pory roku, miejsca zamieszkania (niestety wpłynie na dokładność). Jak skalibrować czułość (definiowaną jaką delta EMF na danym zakresie) bez komory aby wyniki zgadzały się dla większej ilości egzemplarzy to szczerze powiedziawszy nie mam pojęcia.

    Co do pytania o dokładność pomiaru to badania wykazały wyższą dokładność niż 20%. Jednakże nie miałem porównania z mieszankami wzorcowymi a jedynie punktem odniesienia był miernik wyższej klasy +-(50ppm + 3% wartości mierzonej). Zakres w jakim pracowało urządzenie to ~350-5000ppm. Stabilność w okresie 11h to 49ppm (amplituda peak-to-peak w dolnym zakresie pomiaru gdzie zgodnie z zastosowaną charakterystyka logarytmiczną do przeliczania czułość jest wyższa).

    W razie pytań służę w miarę możliwości pomocą.

    P.S. Na forum sobie nie "panujemy" :)

    0
  • #11 21 Paź 2012 23:02
    zbrozw
    Poziom 9  

    Witam,
    wg noty katalogowej poziom EMF TGS4161 dla 350ppm CO2 może wynosić od 220..490mV a d_EMF (EMF 350ppm-EMF 3500ppm CO2) może być od 44..72mV.
    Trochę to pokręcone, bo dużo niewiadomych (2) i jak tu dalej to skalibrować (automatycznie)...??? Założyłem, oglądając noty gotowych procesorów FIGARO (poniżej schemat), że da się to zrobić automatycznie tj poziom EMF i d_EMF są proporcjonalne tj. dla niższego EMF np. 220mV d_EMF wynosi 44mV a dla wyższego EMF np. 490mV wynosi 72mV. Nie do końca wiem, czy to prawda, ale ogólnie można założyć, że jest to w pewnym stopniu logiczne… Mając takie założenia oraz fakt, że „czyste” powietrze powinno mieć 350ppm (poziom zerowy) – można zbudować układ z autokalibracją . Na wej zastosowałem TLC271 jako bufor o dużej rez. (musi być DIL bo SMD źle mi działały z tym czujnikiem). Później był wzm. różnicowy z progiem ust na stałą około 200mV i niedużym wzm. – na wyj był poziom stały minus d_EMF. Przetwornik ADC 12 BIT MCP3208 i 89S52 załatwiał resztę – to jest przeliczał i wyliczał poziom CO2 na LCD. Sęk w tym, że dla kilku układów (miałem 5 sztuk TGS4161 i kilka płytek pomiarowych) nawet po wygrzaniu kilkudniowym czujników wyniki były nieco różne np. jeden pokazywał np. 550ppm a inny 950ppm. Wydaje mi się że nota TGS4161 nie zawiera wszystkich danych (np. procesor FIGARO mierzy jeszcze temp. samego czujnika), a sam producent przez to może sprzedawać swoje procesory…
    Raczej nie chce mi się dalej tym bawić, wolę kupić gotowe moduły np. CMD4161A – chociaż przy produkcji seryjnej różnica ponad 200zł miedzy układem moim a gotowym modułem jest dość kusząca…
    Gdyby ktoś miał jakieś sugestie byłbym wdzięczny (zbrozw@wp.pl), ciekawi mnie bardziej fakt, gdzie był błąd …
    Podobna koncepcja z czujnikiem VOC i czujnikiem TGS 800 zasilanym ze źródła prądowego działała poprawnie i na kilku modułach uzyskiwałem podobne wartości VOC (czyli ogólnie „smrodków”) w ppm.
    Pozdr.
    Zbyszek Przyrząd do pomiaru CO2 - Figaro TGS4161

    0
  • #12 15 Mar 2013 13:31
    zbyszekd13
    Poziom 2  

    Witam wszystkich.

    Od kilku miesiecy pracuję nad tym czyjnikiem i wygląda ze rozwiązałem wszystkie podstawowe problemy. Sprawa nie jest taka prosta po pierwsze mierze temperature czujnika i dodaje kompensację temperaturową, po drugie chrakterystyka czujnika nie jest liniowa co utrudnia przeliczanie napiecia na sterzenie ppm. Po trzecie czujnik zaczyna fiksowac jak przypadkiem dotknie sie pinow wlaczonego czujnika (5V z wyjsciem)

    0
  • #13 18 Mar 2013 22:34
    Djuke
    Poziom 12  

    Charakterystyka jest logarytmiczna więc przeliczanie wcale nie jest takie trudne, natomiast kompensacja temperaturowa się przyda. Zwarcie pinów może zabić czujnik - nie bez powodu producent narzuca wysoką impedancję wejściową wzmacniacza op. Wrzucam wykres wpływu temperatury na wynik pomiaru bez kompensacji temperaturowej - pomiary wykonane w komorze klimatycznej. Jak widać temperatura ma spore znaczenie moim zdaniem głównie ze względu na wydajność grzałki. Zapraszam do dalszych dyskusji.

    Przyrząd do pomiaru CO2 - Figaro TGS4161

    0
  • #14 19 Mar 2013 09:34
    zbyszekd13
    Poziom 2  

    Charakterystyka jest połowicznie logarytmiczna tzn. os X jest logarytmiczna os Y nie. Co do kompensacji temperatury to zrobiłem to najprościej jak sie da tzn. dodaje lub odejmuję stała wartość (bity) przed linearyzacja w zależności od temperatury jako temperaturę odniesienia używam temperaturę kalibracji (fizycznie do czujnika doczepiam na stale czujnik temperatury). Wygląda na to ze działa to w miarę poprawnie. Nie posiadam dostępu niestety do komory klimatycznej aby sprawdzi jak dokładnie to zrobiłem.
    Nigdzie w dokumentacji nie znalazłem informacij jaki i czy w ogóle ma wpływ ciśnienie na poprawny pomiar stężenia.
    Co do dokładności mierników tego typu to można kupić w Chinach (okolo 100 euro) malutki miernik Co2, temperatury, a od pewnego czasu tez wilgotności o tolerancji +-50ppm + 3% wartości mierzonej. W ramach testu wsadziłem go do plastikowego woreczka i dałem gas 1400ppm +/- 2% a miernik pokazał 1665ppm. Dodam ze miernik pracował bez przerwy ponad 2h. Mój miernik a w zasadzie wskaźnik chciałbym zmieścić w +/-50 +10%. Czas pokarze zostały 2 miesiące

    0
  • #15 19 Mar 2013 18:14
    Djuke
    Poziom 12  

    Mówiąc na myśli logarytmiczna miałem na myśli półlogarytmiczną oczywiście ;) Testując czujnik faktycznie tak wyszło dlatego skorzystałem z kalibracji w dwóch punktach. Prosta regresja liniowa i przesuwanie się po charakterystyce. Ja przeliczałem na bieżąco wartość korzystając z funkcji potęgowej ale równie dobrze można zapisać sobie tablicę wartości. Przy takiej dokładności samego sensora metoda ma pomijalne znaczenie. Taka kalibracja + kompensacja temperaturowa którą już masz zrealizowaną powinna przynieść zadowalający efekt.

    0
  • #16 21 Mar 2013 15:55
    zbyszekd13
    Poziom 2  

    Pozostaje kwestia kalibracji. Jak taki czujnik skalibrować domowymi sposobami z użyciem dwóch rożnych gazów. Próbowałem umieścić czujnik w plastikowym woreczku z doprowadzonym gezem kalibrującym, efekt średnio zadowalający a na dodatek spore zużycie gazu. Próbowałem również podawać gas bezpośrednio na sensor poprzez dość szczelnie dopasowana rurkę (stad to wcześniejsze pytanie odnośnie ciśnienia), efekt podobny do woreczka plastikowego tylko zużycie gazu nieco mniejsze. Średnia tolerancja około 10% ale zdarzają sie tez powyżej tej wartości niestety. Precyzja jest lepsza w wyższej koncentracji gazu.
    Chce sprobować również kalibracji z użyciem jednego gazu i miernikiem wzorcowym (sam go zbuduje tylko poświęce znacznie więcej czasu na jego kalibrację i precyzję). Pomysł jest aby połączyć dwa czujniki rurka i kablem RS232, ale nie jestem pewien czy zda to jakikolwiek efekt? Pracuje nad tym. Może ktoś ma jakiś jeszcze pomysł jak szybko i dobrze skalibrować taki czujnik "domowym" sposobem?

    0
  • #17 24 Mar 2013 21:52
    diablo666
    Poziom 9  

    Co do PCB to firma MERKAR z Katowic.
    A co do samego CO2 to słyszałem o metodzie wytwarzania z sody oczyszczonej i ocetu.

    0
  • #18 25 Mar 2013 17:17
    Djuke
    Poziom 12  

    Jeśli masz gazy kalibracyjne o znanym stężeniu w zakresie pomiarowym czujnika to proponuje wrzucić układ do szczelnego opakowania plastikowego, odessać powietrze i wpuścić mieszankę. Najlepiej w środku umieścić komercyjny układ jako punkt odniesienia. Ja swoją płytkę robiłem w Merkarze i byłem bardzo zadowolony.

    0