Skocz do zawartości
Aleksander_42

Termistor 10k ntc + serwo. Jak to połączyć?

Pomocna odpowiedź

Napisano (edytowany)

Witam. Potrzebuję napisać program, który będzie odczytywał temperaturę z ntc 10k i konwertował go na ruch serwa.

Chciał bym ustawić żeby przy 50*C serwo było w pozycji 0*, a przy 48.2 było 180* Serwa, no i oczywiście zmiana 10*serwa co 0.1*C nie dwu stanowo.

Z góry dziękuję za zainteresowanie się tematem i pomoc.

Edytowano przez Aleksander_42

Udostępnij ten post


Link to post
Share on other sites

OK, to już wiemy co chcesz. Włączmy zatem myślenie i zadajmy kilka pytań:

  1. Jaką rezystancję ma ten czujnik w 50°C?
  2. Jaką rezystancję ma w 48.2°C?
  3. Jaki to przyrost procentowy w stosunku do 10kΩ?
  4. Czy to ma być jednostkowe urządzenie?
  5. Jeśli nie, to jakie są rozrzuty rezystancji między kolejnymi czujnikami? Bo jeśli choćby porównywalne z 1/10 Twojego zakresu zmian rezystancji (a sądzę, że tak z 10 razy większe) to kicha - będziesz musiał każdą sztukę precyzyjnie kalibrować osobno.
  6. Jeśli tak (wykonanie jednostkowe), to następny problem: podłączasz ten czujnik do rezystora tworząc dzielnik, zasilasz ten zestaw z jakiegoś napiecia - powiedzmy z 5V i jakie wtedy zmiany napięcia dostaniesz na wejściu ADC w zakresie 48.8-50°C i jaki jest to procent tych 5V? Bo 10-bitowy ADC rozróżnia tylko 1024 przedziały w całym swoim zakresie pracy i może to być za mało. Nie mówiąc o jego błędach - nie możesz przecież bazować na jednym LSB w układzie, gdzie dokładność wyniku jest na poziomie 1-2LSB.

Jeśli którejś odpowiedzi nie znasz, nie ma sensu byś zamartwiał się programem, bo nawet najlepszy kod nic nie wskóra jeśli zwyczajnie nie umiesz/ nie możesz swojego czujnika zmierzyć z wymaganą precyzją.

Zatem karta katalogowa konkretnego termistora do ręki, czytasz, może nawet coś liczysz i wrzucasz tu odpowiedzi. Zobaczmy czy problem jest tylko w nieumiejętności napisania programu, czy może jednak w nierealnych założeniach.

Udostępnij ten post


Link to post
Share on other sites
(edytowany)

Ad6... Są gotowe kalkulatory np. sebulli obliczenia na liczbach całkowitych.

 

Wystarczy tylko znać NTC resistance at 25°C i BETA value of the NTC które też można obliczyć, ale te dane sa w katalogach producenta.  Wystarczy wrzucić do kalkulatora i zobaczyć czy akceptowana dokładność, która tez można zmienić w zależności od tego ile chcemy przeznaczyć na to pamięci...

Edytowano przez Jarewa

Udostępnij ten post


Link to post
Share on other sites
(edytowany)

Dziękuję jeszcze raz, za zinteresowanie się tematem i tak obszerną odpowiedź.

Jestem na tyle zielony że nie ogarniam żadnych wzmacniaczy operacyjnych i chcę projekt maksymalnie zminimalizować.

Czy żeby program uprościć i mógł działać poprawnie, mogę zamiast ntc 10k podłączyć DS18B20?

 

 

 

Edytowano przez Aleksander_42

Udostępnij ten post


Link to post
Share on other sites

Rodzajów i typów czujników temepratury jest mnóstwo i każdy ma jakieś wady i zalety. Nie można tak w ciemno powiedzieć, że możesz zastąpić bezkarnie jeden drugim, bo nie wiemy co robisz. Może więc napisz więcej o tym co to za projekt, bo pomiary temperatury w tak wąskim zakresie to jednak (może tylko dla mnie?) zagadka. W temacie czujnika najważniejsze jest to jak planujesz połączenia: jak daleko będzie od sterownika do czujnika, jakie to będzie środowisko (zakłócenia przemysłowe od napędów, styczników, duże zmiany temperatur, narażenia środowiskowe: woda/wilgoć, płyny, pyły, sól itp) i czy jesteś w stanie kupić wybrany czujnik w odpowiedniej obudowie wytrzymałej na te warunki. A wzmacniacze nie gryzą - jeśli umiesz lutować i odróżniasz opornik od scalaka to pewnie dałbyś radę zmontować ten prosty układ. No a jeśli nie, to może czas się nauczyć?

Udostępnij ten post


Link to post
Share on other sites

Powiem tak, czujników ntc mam kilka, za to 18b20 mam jeden na wyposażeniu.

Mianowicie chcę zrobić sterownik do pieca, zasada działania:

48.2°C (serwo 180°) klapka maksymalnie otwarta,

48.3°C (serwo 170°) klapka zaczęła się opuszczać,

48.4°C (serwo 160°) klapka dalej się zamyka

i tak dalej aż:

50°C (serwo 0°) klapka maksymalnie zamknięta

Serwo steruje klapką a czujnik przytulony do rury, do wyjścia podgrzanej wody.

Mam nadzieję że trochę rozjaśniłem.

Udostępnij ten post


Link to post
Share on other sites

Trochę. Nie odpowiedziałeś na podstawowe pytanie - wytłuszczyłem je dla podkreślenia - to po pierwsze, ale to tylko hardware. A po drugie - czy masz w ogóle jakieś wyczucie ile to jest jeden stopień Celsjusza? W bardzo stabilnym i separowanym środowisku - np. jakiś termostatowany analizator/reaktor chemiczny czy coś takiego, może byłoby rozsądne takie wymaganie, bo od temperatury zależy prędkość reakcji a gdy szukamy wirusa czy tworzymy nowe materiały to dokładność i powtarzalność badań jest kluczowa. Ale tutaj? Przecież piec jest w stanie w ciągu kilku sekund zmienić temeperaturę wody o kilka(naście?) stopni a Ty chcesz ją stabilizować do 0.1°? Czy spodziewasz się jak wielką pracę będziesz musiał wykonać by zasymulować ten układ i znaleźć/dobrać/policzyć wszelkie stałe czasowe? Jak bardzo program będzie musiał być inteligentny by odwzorować sobie w środku całą dynamikę pieca po to by przewidywać jego zachowanie w zależności choćby od ciśnienia gazu, temperatury wody wejściowej i wielkości jej przepływu? Inaczej nie masz szans tego zrobić, bo jakakolwiek zmiana położenia serwa spowoduje bardzo opóźnioną i bardzo przesterowaną reakcję pieca.

Obrazując to przykładem: masz zaporę gdzieś w górze sporej rzeki, powiedzmy 150km stąd, a Ty jesteś odpowiedzialny za stan jeziora tu gdzie jesteś. Próbujesz oczywiście ustabilizować poziom jego wody, bo jak za dużo to zalewa rolnikom pola a jak za mało to turyści narzekają, że żaglówki im mulą na płyciznach. Niestety jak to w naszym kraju bywa masz środki adekwatne do wykonywanej pracy i stanu technicznego naszej gospodarki: swoją robotę wykonujesz za pomocą komórki i dzwonienia do gościa pracującego na zaporze. Masz oczywiście przed swoim pomostem patyk wbity w dno z podziałką centymetrową i wyraźną kreską na 130cm - wtedy dzwonią z ośrodoka żeglarskiego i na 150cm - wtedy sąsiad zaczyna słać Ci k***y przez płot, bo mu podwórko zalewa. Zaplanowałeś sobie sumienną pracę i kilka razy dziennie wychodzisz na brzeg sprawdzić poziom. Pewnego dnia zrobiło się powiedzmy 145cm i wygląda, że rośnie. Na razie spoko - jest jeszcze zapas, ale już ładujesz komórkę. Przy 148 dzwonisz i budzisz gościa na zaporze. Tamten leci w te pędy i odpala siłowniki przycinające przepływ. Udało się? Ano nie, bo do wieczora woda wciąż rośnie. Przy stanie 155 sąsiad tłucze Ci kamieniem okno a Ty znów dzwonisz. Gość przykręca jeszcze bardziej, ale dopiero następnego dnia zaczynasz widzieć spowolnienie. Woda zatrzymuje się na 162, wieś chce Cię zlinczować bo traktory im potonęly w bagnie a Ty nie rozumiesz dlaczego, przecież sprawdzałeś co godzinę. Jak zapewne się domyślasz, w następnych dniach zamknięte stawidła(?) na zaporze spowodują, że woda zacznie opadać. Przy 135 zadzwonisz by je na gwałt otwierać, ale dopiero gdy wkurzony Kierownik Ośrodka przyjdzie z mordą bo mu ludzie wyjeżdżają zrozumiesz, że woda spadła do 125 i dopiero wtedy zaczęła rosnąć.. Jaki z tego morał? Tego nie robi się w ten sposób. Pomijam fakt, że na Twoim miejscu rzuciłbym tę robotę (bo prędzej czy później skończysz ze sztachetą między żebrami), ale sam widzisz, że musi to działać inaczej. Potrzeba gościa, który zrobi np. model tego systemu, gdzie co godzinę wprowadzane stany wody pozwolą na predykcję stanu jeziora i podejmowanie decyzji z wyprzedzeniem. Oczywiście model będzie tylko tak dobry jak dane które posłużyły do jego wymyślenia. Jeśli ktoś nie uwzględni np. opadów jakie mogą dodatkowo spłynąć do rzeki za zaporą czy rolników z Gospodarstwa Rybnego, którzy mają zawaliste stawy i od czasu do czasu potrzebują jakichś 10000 m3 wody bo im odparowało (czy tam ryby wypiły) to dalej będzie kiepsko. Moim zdaniem regulacja temperatury wylotowej pieca z dokładnością do 0.1° jest nierealna. Pomijając fakt, że zamocowanie czujnika w ten sposób dodatkowo opóźnia reakcję (rura musi się nagrzać najpierw) potęgując przesterowania (powódź/mielizna) a jakikolwiek przypadkowy przepływ powietrza wokół miejsca gdzie zamocowałeś czujnik spowoduje wahania jego temperatury nawet o kilka stopni. Ja bym zaczął od zamocowania czujnika i kilkudniowej obserwacji (np. nagrywania na komputerze) jak zachowuje się zmierzona temperatura w zależności od nastawów klapki. No a sam czujnik (pewnie cyfrowy się nada) - to gdy odpowiesz na pytanie o odległość.

  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites

Dziękuję za obszerny wykład 🙂 ale doskonale rozumiem to zjawisko (bezwładności), dlatego chcę poeksperymentować i ustawić różne wytyczne.

A na przykład, jak by ustawić większe wahania temperatury tj: 40°C klapka otwarta. 50°C klapka zamknięta.

Udostępnij ten post


Link to post
Share on other sites

Acha, rozumiesz zjawisko.. I mówisz, że zwiększasz zakres pomiaru nazywając to "wahaniami temperatury" - czyli myślisz o sterowaniu histeretycznym "od bandy do bandy". No dobra, to próbuj, sporo nauki przed Tobą. Powodzenia.

Udostępnij ten post


Link to post
Share on other sites

Temat jest trudny i oczywiście doceniam chęć pomocy. Zanim dyskusja wymknie się spod kontroli przypominam dla formalności o polityce przyjaznego forum. Rozumiem, że temat jest emocjonujący, ale pamiętajmy, że po drugiej stronie siedzi osoba początkująca, która może inaczej postrzegać omawiane zagadnienie. 

Cytat

Jeśli ktoś pyta, to znaczy, że nie potrafi sobie poradzić. Ludzie są różni. Może o radę prosi uczeń szkoły podstawowej, a może student elektroniki lub emeryt. Pamiętaj, że nie dla każdego elektronika jest jedyną pasję na całe życie.

PS Dodałem 3 gwiazdki w jednej z wcześniejszych wiadomości, prosiłbym o nieużywanie takiego słownictwa (niezależnie od kontekstu) 😉

Udostępnij ten post


Link to post
Share on other sites

Ponieważ praktycznie jako jedyny udzielam się w tym wątku to rozumiem, że Twoja uwaga, Treker, jest skierowana do mnie. Kolega napisał, że ostatecznie rozumie zjawisko więc nie wiem jak mógłbym więcej pomóc. Do pomysłu pomiaru z rozdzielczością 0.1°C policzyłem i narysowałem układzik, ale okazał się za skomplikowany. Potem okazało się, że chodzi o zwykły piec więc o samym pomyśle pomiaru temperatury wody z takimi wymaganiami napisałem co myślę. Kolega zaproponował pomiar w zakresie 10x większym, co już jest do zrobienia za pomocą dowolnego czujnika. Skoro jakieś elementy już ma, a bibliotek, gotowych kodów czy całych projektów na Arduino do obsługi pomiarów temperatury jest zatrzęsienie, nic tu po nas. Zaproponowałem podejście eksperymentalne z logowaniem wyników na kompie - projektów takich rejestratorów także są dziesiątki i tyle. Nic nie możemy więcej zrobić. Próbowałem przekazać, że nie w funkcji mapowania temperatury na wychylenie serwa (bo do jednej linijki w kodzie to się sprowadza) jest pies pogrzebany i chyba (taką mam nadzieję) udało mi się zasiać ziarno wątpliwości. Przecież pomoc Forum nie może sprowadzać się do wskazania tekstu jaki należy wstukać do wyszukiwarki, by otrzymać linki do używania takiego czy innego czujnika. Dalsze losy tego projektu są w ręku @Aleksander_42 - na konkretne pytania zwykle dostaje się konkretne odpowiedzi - i jakoś nie poczuwam się do roli winnego uchybień w dziedzinie naszej PPF. Jeśli Autor poczuł się czymś dotknięty, proszę o wskazanie rzeczonej wypowiedzi a stosowne przeprosiny (lub wytłumaczenie) zamieszczę.

BTW: Długo szukałem tych gwiazdek, bo spodziewałem się jakichś nieumyślnych drwin albo żartowania z niewiedzy Kolegi które mogły się prześlizgnąć i byłoby to rzeczywiście naganne, a znalazłem.. w historyjce o Regulatorze. Treker, naprawdę???  Gwiazdki w miejscu gdzie pojawia się popularne słowo oznaczające w zasadzie dowolną emocję i będące esencją wypowiedzi sąsiada są przesadą dokładnie taką samą jak zakrywanie dzieciom oczu na filmie w którym naga kobieta wchodzi pod prysznic i widać nie tylko jej piersi, ale o zgrozo włosy łonowe (a może p..si i wł..y  ło..we?). Przecież nie było to użyte w stosunku do żadnego rozmówcy a cytaty z życia obrazujące sytuację chyba nie są jeszcze zabronione? A z resztą kogo to.. i tak cały ten post słusznie wywalisz do kosza..

Udostępnij ten post


Link to post
Share on other sites

@marek1707 nie mam zamiaru usuwać nic do kosza 🙂 Udzielasz się na naszym forum od wielu lat i pomogłeś tysiącom osób odpowiadając cierpliwie na ich pytanie za co jestem ogromnie wdzięczny. W tym przypadku zareagowałem z dwóch powodów. Po pierwsze, takie słownictwo, nawet w formie cytatu, wydało mi się nieodpowiednie w tej sytuacji i nie pasowało mi jakoś do Twojego stylu wypowiedzi. Nie było to tylko moje odczucie - otrzymałem informację o tym słownictwie od innej osoby, która nie udziela się w tym temacie.

Po drugie, co najważniejsze, przytoczyłem też PPF, bo widzę, że się starasz pomóc, a autor pytania odpowiada zdawkowo i pomija Twoje pytania. Więc delikatnie przypomniałem, że pytający może być osobą początkującą, która inaczej postrzega to zagadnienie. Mam wrażenie, że @Aleksander_42 zakładając ten temat liczył raczej na szybką i prostą odpowiedź (np. w formie gotowca programu, o który pytał), a Twoje odpowiedzi odbiegają od jego wizji rozwiązania tego problemu, więc specjalnie (lub nie) omija Twoje pytania.

Może przez brak świeżego powietrza jestem zbyt mocno wyczulony, ale nie miałem złych zamiarów 😉

Udostępnij ten post


Link to post
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Gość
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.


×
×
  • Utwórz nowe...