Spisu treści:

Pomiar temperatury za pomocą XinaBox i termistora: 8 kroków
Pomiar temperatury za pomocą XinaBox i termistora: 8 kroków

Wideo: Pomiar temperatury za pomocą XinaBox i termistora: 8 kroków

Wideo: Pomiar temperatury za pomocą XinaBox i termistora: 8 kroków
Wideo: Обзор и сравнение BSIDE ZT-Y2 и мультиметра BSIDE ZT-Y ну и мультиметр BSIDE ZT-X 2024, Listopad
Anonim
Pomiar temperatury za pomocą XinaBox i termistora
Pomiar temperatury za pomocą XinaBox i termistora

Zmierz temperaturę cieczy za pomocą wejścia analogowego xChip z XinaBox i sondy termistorowej.

Krok 1: Rzeczy użyte w tym projekcie

Komponenty sprzętowe

  • XinaBox SX02 x 1 xChip analogowy czujnik wejściowy z ADC
  • XinaBox CC01 x 1 xChip wersja Arduino Uno oparta na ATmega328P
  • Rezystor 10k ohm x 1 10k rezystor dla sieci dzielnika napięcia
  • Sonda termistorowa x 1 10k w temperaturze 25°C NTC wodoodporna sonda termistorowa
  • XinaBox IP01 x 1 xChip Programator USB oparty na FT232R firmy FTDI Limited
  • Wyświetlacz OLED XinaBox OD01 x 1 xChip 128x64 pikseli
  • Złącza magistrali XinaBox XC10 x 4 xChip
  • Zasilacz XinaBox PU01 x 1 xChip USB (Typ A)
  • Zasilacz USB 5 V x 1 Power Bank lub podobny

Aplikacje i usługi online

IDE Arduino

Narzędzia ręczne i maszyny produkcyjne

Śrubokręt płaski Do dokręcania lub luzowania zacisku śrubowego

Krok 2: Historia

Wstęp

Chciałem zmierzyć temperaturę cieczy, tworząc prosty termometr. Korzystając z XinaBox xChips, mogłem to osiągnąć ze względną prostotą. Użyłem wejścia analogowego SX02 xChip, które akceptuje 0 - 3,3 V, CC01 xChip opartego na ATmega328P i wyświetlacza OLED xChip OD01, aby wyświetlić moje wyniki temperatury.

Termistor mierzący temperaturę wody w szklance

Krok 3: Pobierz niezbędne pliki

Będziesz potrzebować następujących bibliotek i oprogramowania:

  • xSX0X- Biblioteka czujników wejść analogowych
  • xOD01 - biblioteka wyświetlaczy OLED
  • Arduino IDE - Środowisko programistyczne

Kliknij tutaj, aby zobaczyć, jak zainstalować biblioteki.

Po zainstalowaniu Arduino IDE otwórz je i wybierz „Arduino Pro lub Pro Mini” jako płytkę, na którą chcesz przesłać swój program. Upewnij się również, że wybrany jest procesor ATmega328P (5 V, 16 MHz). Zobacz obrazek poniżej.

Wybierz płytę Arduino Pro lub Pro Mini i procesor ATmega328P (5 V, 16 MHz)

Krok 4: Montaż

Kliknij programator xChip, IP01 i oparty na ATmega328P CC01 xChip razem za pomocą złączy magistrali XC10, jak pokazano poniżej. Aby przesłać dane do CC01, musisz ustawić przełączniki odpowiednio w pozycjach „A” i „DCE”.

IP01 i CC01 połączone ze sobą

Następnie weź rezystor 10kΩ i wkręć jeden koniec w zacisk oznaczony „IN”, a drugi koniec w zacisk uziemienia „GND” na SX02. Weź przewody sondy termistora i wkręć jeden koniec w Vcc, „3,3 V”, a drugi koniec w zacisk „IN”. Zobacz grafikę poniżej.

Połączenia SX02

Teraz połącz OD01 i SX02 z CC01, po prostu łącząc je ze sobą za pomocą złączy magistrali XC10. Zobacz poniżej. Srebrny element na zdjęciu to sonda termistorowa.

Kompletna jednostka do programowania

Krok 5: Program

Podłącz urządzenie do portu USB w komputerze. Pobierz lub skopiuj i wklej poniższy kod do swojego Arduino IDE. Skompiluj i prześlij kod na swoją tablicę. Po przesłaniu twój program powinien zacząć działać. Jeśli sonda znajduje się w temperaturze pokojowej, na wyświetlaczu OLED powinna pojawić się wartość ±25°C, jak pokazano poniżej.

Po wgraniu obserwuj temperaturę w pomieszczeniu na wyświetlaczu OLED

Krok 6: Przenośny termometr

Usuń urządzenie z komputera. Zdemontuj urządzenie i zmontuj je ponownie, używając PU01 zamiast IP01. Teraz weź przenośny zasilacz USB 5V, taki jak power bank lub podobny, i włóż do niego nowy zespół. Masz teraz swój własny fajny przenośny termometr z dobrą dokładnością. Zobacz zdjęcie na okładce, aby zobaczyć, jak działa. Zmierzyłem gorącą wodę w szklance. Poniższe zdjęcia przedstawiają kompletne urządzenie.

Kompletna jednostka składająca się z CC01, OD01, SX02 i PU02.

Krok 7: Wniosek

Ten projekt zajął mniej niż 10 minut na złożenie i kolejne 20 minut na zaprogramowanie. jedynym wymaganym elementem pasywnym był rezystor. xChips po prostu klikają razem, dzięki czemu są bardzo wygodne.

Krok 8: Kod

ThermTemp_Display.ino Arduino Badanie termistorów w celu zrozumienia obliczeń zawartych w kodzie.

#include // włącz podstawową bibliotekę dla xCHIPs

#include // zawiera bibliotekę czujników wejść analogowych #include // zawiera bibliotekę wyświetlaczy OLED #include // zawiera funkcje matematyczne#define C_Kelvin 273.15 // do konwersji z kelwinów na stopnie Celsjusza #define series_res 10000 // wartość rezystora szeregowego w omach #define B 3950 // parametr B termistora #define room_tempK 298.15 // temperatura pokojowa w kelwinach #define room_res 10000 // rezystancja w temperaturze pokojowej w omach #define vcc 3.3 //napięcie zasilania xSX01 SX01(0x55); // ustaw napięcie pływaka adresu i2c; // zmienna zawierająca mierzone napięcie (0 - 3,3V) float therm_res; // rezystancja termistora float act_tempK; // rzeczywista temperatura kelwinów float act_tempC; // rzeczywista temperatura w stopniach Celsjusza void setup() { // wstaw tutaj kod konfiguracji, aby uruchomić raz: // zainicjuj zmienne na 0 napięcie = 0; term_res = 0; akt_tempK = 0; akt_tempC = 0; // uruchom komunikację szeregową Serial.begin(115200); // uruchom komunikację i2c Wire.begin(); // uruchom czujnik wejścia analogowego SX01.begin(); // uruchom wyświetlacz OLED OLED.begin(); // wyczyść wyświetlacz OD01.clear(); // opóźnienie do normalizacji delay(1000); } void loop() { // wstaw tutaj swój główny kod, aby uruchamiał się wielokrotnie: // odczytaj napięcie SX01.poll(); // przechowuj napięcie napięcia = SX01.getVoltage(); // oblicz rezystancję termistora therm_res = ((vcc * series_res) / napięcie) - series_res; // oblicz rzeczywistą temperaturę w kelwinach act_tempK = (room_tempK * B) / (B + room_tempK * log(therm_res / room_res)); // zamień kelwin na stopnie Celsjusza act_tempC = act_tempK - C_Kelvin; // wydruk temperatury na wyświetlaczu OLED // ręczne formatowanie do wyświetlenia w środku OD01.set2X(); OD01.println(""); OD01.println(""); OD01.print(" "); OD01.print(act_tempC); OD01.print("C"); OD01.println(""); opóźnienie (2000); // aktualizuj wyświetlacz co 2 sekundy }

Zalecana: