[MAX6675] Obsługa termopary

Pozostałe układy mikrokontrolerów, układy peryferyjne i inne, nie mieszczące się w powyższych kategoriach.
Awatar użytkownika
gaweł
Geek
Geek
Posty: 1321
Rejestracja: wtorek 24 sty 2017, 22:05
Lokalizacja: Białystok

[MAX6675] Obsługa termopary

Postautor: gaweł » niedziela 09 lip 2017, 21:08

Pomiar temperatury poprzez termoparę

Zaistniała potrzeba pomiarów temperatury. Niby nic wielkiego, ale... wymagany zakres pomiarowy obejmuje temperatury dodatnie do 300 stopni C. Już w przedbiegach wypadają wszelkiej maści rozwiązania typu sławetny DS1820. No cóż, za wysokie progi. Pozostaje zastosowanie rozwiązania opartego o termoparę. Trochę odstraszyła mnie konieczność budowania jakiegoś „chorego” rozwiązania do przetwarzania sygnału z termopary. Jak pogooglać, to nie jest tak źle. Można przykładowo zastosować układ MAX6675. Stanowi on kompletną obsługę toru pomiarowego. Mało tego, to da się zakupić to w formie już przylutowanej do maleńkiej PCB.
max6675_ilu01.jpg
Musiałem jedynie zrobić sobie maleńki kabelek, by złącze GOLDPINOWE modułku zintegrować z płytą do eksperymentów, czyli Solderless Breadboard. Na PCB jest nadruk opisujący funkcję poszczególnych pinów złącza, więc nie było żadnego kłopotu by stworzyć możliwość porozumienia ze wspomnianym układem MAX6675 (złącze ma 5 pinów: masa [GND], zasilanie [+5V], wybór układu [CS], sygnał zegarowy do taktowania szeregowej transmisji danych [CLK] oraz dane pomiarowe [SO]).
Środowisko uruchomieniowe oparte jest o moduł M32 (Opis modułu M32), do którego przyłączony jest dwuwierszowy display LCD i wspomniany MAX6675. Szczegóły pokazuje poniższa ilustracja.
max6675_ilu02.png
Zbudowanie środowiska do badań zajęło dosłownie chwilę.
max6675_ilu03.jpg
W niedzielne popołudnie miałem w pracowni 25.5 stopnia C.
max6675_ilu04.jpg
Zacząłem podgrzewać atmosferę.
max6675_ilu05.jpg
I szybko zrobiło się ciepło.
max6675_ilu06.jpg
Układ MAX6675, oprócz przetwarzania temperatury na bity, ma jeszcze dodatkową cechę (uważam, że istotną). Potrafi zasygnalizować, że nie ma kontaktu z sondą termopary.
Rzeczywiście, odłączenie sondy
max6675_ilu07.jpg
jest sygnalizowane, i procek może o tym się dowiedzieć (jak zwykle, wiedza to potęga).
max6675_ilu08.jpg
Implementacja obsługi również nie nastręczała żadnych problemów. W dokumentacji układu jest jasno określone co należy zrobić.
max6675_ilu09.png
Czyli: wystawić sygnał CS do logicznego zera, pomachać 16 razy pinem SCK zgarniając przy opadającym zboczu stan pinu SO. Zastosowana obsługa jest następująca:

Kod: Zaznacz cały

static void DoTheMeasurement ( void )
{
  uint8_t Loop ;
  uint8_t Data ;
  /*-------------------------------------------------------------------------*/
  MeasurementData = 0 ;
  MeasurementPort &= ~ ( 1 << Thermocouple_CS ) ;
  nop ( ) ;
  nop ( ) ;
  nop ( ) ;
  nop ( ) ;
  for ( Loop = 0 ; Loop < 16 ; Loop ++ )
  {
    MeasurementPort |= ( 1 << Thermocouple_SCK ) ;
    nop ( ) ;
    nop ( ) ;
    nop ( ) ;
    nop ( ) ;
    MeasurementPort &= ~ ( 1 << Thermocouple_SCK ) ;
    Data = MeasurementInputPort ;
    nop ( ) ;
    nop ( ) ;
    nop ( ) ;
    nop ( ) ;
    MeasurementData = MeasurementData << 1 ;
    if ( Data & ( 1 << Thermocouple_SO ) )
      MeasurementData |= 1 ;
  } /* for */ ;
  MeasurementPort |= ( 1 << Thermocouple_CS ) ;
  MeasurementTechData = MeasurementData ;
  MeasurementData = MeasurementData >> 3 ;
} /* DoTheMeasurement */


Załącznik: projekt w AVRSTUDIO:
avr-max6675.zip
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.

Prawdziwe słowa nie są przyjemne. Przyjemne słowa nie są prawdziwe.
Lao Tse

Awatar użytkownika
Antystatyczny
Geek
Geek
Posty: 1177
Rejestracja: czwartek 03 wrz 2015, 22:02

Re: [MAX6675] Obsługa termopary

Postautor: Antystatyczny » niedziela 09 lip 2017, 21:14

Czy do tego układu można podłączyć termoparę K, która często dodawana jest do średniej klasy multimetrów?
"The true sign of intelligence is not knowledge but imagination" Albert Einstein.

Awatar użytkownika
gaweł
Geek
Geek
Posty: 1321
Rejestracja: wtorek 24 sty 2017, 22:05
Lokalizacja: Białystok

Re: [MAX6675] Obsługa termopary

Postautor: gaweł » niedziela 09 lip 2017, 21:54

Antystatyczny pisze:Czy do tego układu można podłączyć termoparę K, która często dodawana jest do średniej klasy multimetrów?

Ta termopara (typu K) była zakupiona razem z modułem MAX6675. Cóż, gdzieś miałem taką termoparę od miernika. Jak znajdę, to zrobię badania.
IMG_6011.JPG
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.

Prawdziwe słowa nie są przyjemne. Przyjemne słowa nie są prawdziwe.
Lao Tse

Awatar użytkownika
gaweł
Geek
Geek
Posty: 1321
Rejestracja: wtorek 24 sty 2017, 22:05
Lokalizacja: Białystok

Re: [MAX6675] Obsługa termopary

Postautor: gaweł » poniedziałek 10 lip 2017, 00:51

Pomyślałem, że skoro do miernika również jest dawana sonda typu K, to może by tak zamiast szukać oryginalnej sondy, zastosować opisaną wyżej (nie mam pojęcia gdzie może być oryginalna sonda, więc nie ma zbyt wielkich szans na szybkie jej znalezienie). Wetknąłem posiadaną sondę do miernika i zadziałało. Eksperyment zajął mi minutę.Po "przypaleniu" jej zapalniczką, miernik coś wskazał. Przed "nagrzaniem" wskazywał na podobną wartość temperatury otoczenia jak w przykładzie wyżej.
IMG_6013.JPG
IMG_6012.JPG

Na zasadzie równoważności, klasycznej logiki, można wysnuć wniosek, że oryginalna sonda powinna współdziałać z układem MAX6675.
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.

Prawdziwe słowa nie są przyjemne. Przyjemne słowa nie są prawdziwe.
Lao Tse

StaryAnoda

Re: [MAX6675] Obsługa termopary

Postautor: StaryAnoda » poniedziałek 10 lip 2017, 16:38

Bardzo ciekawy artykuł.

Bawiłem się wieloma czujnikami temperatury. Termopary zawsze bałem się dotknąć, ze względu na to, że spodziewałem się dość skomplikowanego podejścia zarówno od strony programistycznej jak i tej czysto elektronicznej. A tutaj pokazujesz, że to nie takie trudne. Scalak w przystępnej obudowie więc da radę go przylutować każdą lutownicą. Jak uda mi się uruchomić swój prototyp to dam znać i się pochwalę.
Może się jeszcze zapytam jak jest z pomiarem temperatur poniżej zera, czy jest to wykonywalne?

Awatar użytkownika
gaweł
Geek
Geek
Posty: 1321
Rejestracja: wtorek 24 sty 2017, 22:05
Lokalizacja: Białystok

Re: [MAX6675] Obsługa termopary

Postautor: gaweł » poniedziałek 10 lip 2017, 21:24

StaryKatoda pisze:Może się jeszcze zapytam jak jest z pomiarem temperatur poniżej zera, czy jest to wykonywalne?

Nie wiem. Eksperymentów na ujemne temp. nie robiłem (trochę to teraz skomplikowane, w końcu mamy lato). Niby można włożyć do zamrażarki, ale kabelek trochę krótki. Z drugiej strony, potrzeby są takie, że realizowany jest pomiar temp. dodatnich. Z trzeciej strony w dokumentacji od MAX6675 jest napisane, że mierzy od 0 do 1024 stopni C, chociaż w tym układzie jest miejsce na znak (ale ustawiony na 0 na stałe). Reasumując: sam układ MAX6675 nie mierzy temp. ujemnych, ale to chyba nie oznacza, że nie jest to niewykonalne (z punktu widzenia samej fizyki). Jest niewykluczone, że istnieją inne rozwiązania, które umożliwiają taki pomiar.

Prawdziwe słowa nie są przyjemne. Przyjemne słowa nie są prawdziwe.
Lao Tse

Awatar użytkownika
acid3
User
User
Posty: 467
Rejestracja: czwartek 03 wrz 2015, 22:42
Lokalizacja: Kłopoty-Stanisławy
Kontaktowanie:

Re: [MAX6675] Obsługa termopary

Postautor: acid3 » poniedziałek 10 lip 2017, 21:42


DS tego układu zapewnia, że możliwe są pomiary temperatur od -270°C do +1800°C
Zapewne należy wtedy dobrać też odpowiednią termoparę do mierzonych temperatur.


PS.1.0 W razie zainteresowania tymi układami zapraszam na PW, gdzieś jakaś sztuka powinna się jeszcze walać (sam scalak bez płytki)
PS.2.0 termopara typu K to najczęściej stosowany czujnik temperatury w miernikach uniwersalnych (ale to nie jest reguła)

Awatar użytkownika
tasza
Geek
Geek
Posty: 1082
Rejestracja: czwartek 12 sty 2017, 10:24
Kontaktowanie:

Re: [MAX6675] Obsługa termopary

Postautor: tasza » środa 12 lip 2017, 19:53

no proszę, chyba bywamy w tym samym sklepie z zabawkami...
IMG_7197.JPG
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
______________________________________________ ____ ___ __ _ _ _ _
Kończysz tworzyć dopiero, gdy umierasz. (Marina Abramović)

Awatar użytkownika
gaweł
Geek
Geek
Posty: 1321
Rejestracja: wtorek 24 sty 2017, 22:05
Lokalizacja: Białystok

Re: [MAX6675] Obsługa termopary

Postautor: gaweł » czwartek 13 lip 2017, 09:29

tasza pisze:no proszę, chyba bywamy w tym samym sklepie z zabawkami...
IMG_7197.JPG

No faktycznie, można powiedzieć, że drepczemy po tym samym świecie.

Prawdziwe słowa nie są przyjemne. Przyjemne słowa nie są prawdziwe.
Lao Tse

Awatar użytkownika
tasza
Geek
Geek
Posty: 1082
Rejestracja: czwartek 12 sty 2017, 10:24
Kontaktowanie:

Re: [MAX6675] Obsługa termopary

Postautor: tasza » wtorek 18 lip 2017, 19:32

a z tego lodu to mogłam sobie takiego fajnego drinka zrobić, heh . . zatem proszę - from fire to ice

IMG_7257.JPG
IMG_7251.JPG


w górę można podgrzewać dowolnie zależnie co się tam ma,
w dół - do lodu na dłuższą chwilę, ponieważ ta grubaśna śruba daje sporą bezwładność cieplną to po raz, po dwa - tam (przynajmniej u mnie) jest luz pomiędzy czujnikiem w środku, nie ma aż tak dobrego kontaktu termicznego

dwie klatki z filmiku, co przed chwilą do materiałów zrobiłam, takie the best of.

skan-karta-278.png
skan-karta-277.png


po włożeniu w lód - MAX6675 zwraca równiutkie zera, zakładam ze ostygnięty czujnik miał kilka ujemnych stopni - a odczyty zerowe aż do powrotu do nieujemnej temperatury, i takie zachowanie nie dziwota, ponieważ bit znaku na sztywno jest wyzerowany.

dla MAX31855 bit znaku jest aktywny (tabela 4 d-s) https://datasheets.maximintegrated.com/ ... X31855.pdf ,
stąd możliwe ujemne wyniki...muszę sobie tę kostkę zamówić, no tak....
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
______________________________________________ ____ ___ __ _ _ _ _
Kończysz tworzyć dopiero, gdy umierasz. (Marina Abramović)


Wróć do „Inne mikroklocki, również peryferyjne”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 4 gości