[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:
- Termopara typu-K w metalowej obudowie
- Wzmacniacz termopary SPI z układem MAX31856
- KAmduino UNO – płytka rozwojowa z mikrokontrolerem ATmega328P
- LCD Keypad Shield firmy DFRobot
- Przewody żeńsko-męskie
- Niewielka płytka stykowa

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:

Technologie End of Life i bezpieczeństwo sieci – wyzwania Europy związane z tzw. długiem technologicznym
Najczęstsze błędy firm przy wyborze dostawcy energii i jak ich uniknąć
Fotorezystor, czyli czujnik światła dwojakiego działania. Przykład innowacji w automatyce i elektronice możliwej dzięki technologii fotooporników 



