LinkedIn YouTube Facebook
Szukaj

Wstecz
SoM / SBC

[PRZYKŁAD] Termopara typu K i KAmduino UNO

Niniejszy przykład obrazuje użycie termopary typu K oraz wzmacniacza termopary SPI z układem MAX31856. Mikrokontroler odczytuje zmierzoną wartość temperatury, a następnie wyświetla ją na ekranie LCD będącym częścią nakładki LCD Keypad Shield firmy DFRobot.

W przykładzie użyto następujących komponentów:

Zdjęcie 1. Termopara typu K w metalowej obudowie

Termopara to połączenie dwóch drutów zrobionych z różnych metali lub ich stopów. Jeden koniec połączenia utrzymywany jest w stałej temperaturze, zaś drugi jest końcem „pomiarowym”. Pod wpływem różnicy temperatur między końcami występuje różnica potencjałów. Jest to zjawisko Seebecka. W termoparze typu K występują stopy Nikiel-Chrom oraz Miedź-Nikiel. Ten typ można stosować w zakresie temperatur -200…1200 °C. Zależność napięcia od temperatury jest w przybliżeniu liniowa i wynosi ok. 41 µV/°C. Końcówka termopary znajduje się w osłonce ze stali nierdzewnej.

Zdjęcie 2. Wzmacniacz termopary SPI z układem MAX31856

Adafruit Universal Thermocouple Amplifier MAX31856 to moduł wzmacniacza dla termopary. Oparty został na układzie MAX31856. Do modułu pasują termopary typu K, J, N, R, S, T, E oraz B. Do komunikacji wykorzystuje interfejs SPI. Moduł współpracuje z Arduino.

Wyprowadzenia termopary należy dołączyć do pinów „+” i „-„. W zestawie znajduje się złącze śrubowe ARK, które po przylutowaniu pozwala na łatwe dołączenie sensora do modułu wzmacniacza. Sam moduł wzmacniacza należy dołączyć do płytki KAmduino UNO z nałożoną nakładką w sposób opisany w tabeli poniżej:

td>

Pin KAmduino UNO Pin wzmacniacza termopary
+5V VIN
GND GND
D3 SCK
D2 SDO
D1 SDI
D0 CS

Połączony układ jest też widoczny na poniższym zdjęciu:

Zdjęcie 3. Połączony układ

Po połączeniu układu można przejść do omówienia kodu na platformę Arduino. Producent przygotował bibliotekę do obsługi układu MAX31856 dostępną pod tym linkiem w serwisie github. Biblioteka dostępna jest także poniżej, w sekcji „do pobrania”.

Kod zaprezentowany poniżej ma za zadanie odczytać wartość temperatury oraz wyświetlić go na alfanumerycznym ekranie LCD. Na początku dodano biblioteki odpowiedzialne za obsługę ekranu i modułu wzmacniacza. Następnie inicjalizowane są klasy do obsługi urządzeń oraz zmienna, w której będzie przechowywana aktualna wartość temperatury.

#include <Adafruit_MAX31856.h>
#include <LiquidCrystal.h>
Adafruit_MAX31856 max = Adafruit_MAX31856(0, 1, 2, 3);
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
float temperatura;

W funkcji setup inicjalizowane są urządzenia zewnętrzne: ekran LCD oraz wzmacniacz termopary. Ustawiany jest typ termopary – typ K. Biblioteka LiquidCrystal otrzymuje informację o wymiarach ekranu.

void setup() {
  max.begin();
  max.setThermocoupleType(MAX31856_TCTYPE_K);
  lcd.begin(16,2);
  lcd.clear();
}

W pętli głównej programu odczytywana jest temperatura za pomocą funkcji readThermocoupleTemperature. Następnie odczytana wartość wyświetlana jest na ekranie LCD. Obrót pętli odbywa się co 0,5 sekundy.

void loop() {
  temperatura = max.readThermocoupleTemperature();
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("Temperatura:");
  lcd.setCursor(0,1);
  lcd.print(temperatura);
  lcd.print(" st.C");
  delay(500);
}

Działanie przykładu zaprezentowano na poniższym materiale wideo: