Mündəricat:

XinaBox və Thermistor istifadə edərək temperatur ölçülməsi: 8 addım
XinaBox və Thermistor istifadə edərək temperatur ölçülməsi: 8 addım

Video: XinaBox və Thermistor istifadə edərək temperatur ölçülməsi: 8 addım

Video: XinaBox və Thermistor istifadə edərək temperatur ölçülməsi: 8 addım
Video: GiGo + BBC Microbit - CrazyBot 2024, Noyabr
Anonim
XinaBox və Termistor istifadə edərək Temperatur Ölçmə
XinaBox və Termistor istifadə edərək Temperatur Ölçmə

XinaBox -dan analoq xChip girişi və bir termistor zondu istifadə edərək mayenin temperaturunu ölçün.

Addım 1: Bu Layihədə İstifadə Edilən Şeylər

Avadanlıq komponentləri

  • ADC ilə XinaBox SX02 x 1 xChip analoq giriş sensoru
  • ATmega328P əsasında Arduino Uno XinaBox CC01 x 1 xChip versiyası
  • Gərginlik bölücü şəbəkə üçün 10k ohm x 1 10k rezistor
  • Thermistor Probe x 1 10k 25 ° C temperaturda NTC suya davamlı termistor probu
  • FTDI Limited -dən FT232R -ə əsaslanan XinaBox IP01 x 1 xChip USB Proqramçı
  • XinaBox OD01 x 1 xChip 128x64 Piksel OLED Ekranı
  • XinaBox XC10 x 4 xChip avtobus bağlayıcıları
  • XinaBox PU01 x 1 xChip USB (A Tipi) Güc Təchizatı
  • 5V USB Güc Təchizatı x 1 Güc Bankı və ya bənzəri

Proqram proqramları və onlayn xidmətlər

Arduino IDE

Əl alətləri və istehsal maşınları

Flathead Tornavida Vintli terminal sıxacını sıxmaq və ya gevşetmək üçün

Addım 2: Hekayə

Giriş

Sadə bir termometr yaradaraq bir mayenin temperaturunu ölçmək istədim. XinaBox xChips istifadə edərək, bunu nisbətən sadəliklə həyata keçirə bilərdim. İstilik nəticələrimi görmək üçün 0 - 3.3V, ATmega328P və OD01 OLED displey xChip əsaslı CC01 xChip qəbul edən SX02 analoq xChip istifadə etdim.

Bir şüşədəki suyun temperaturunu ölçən termistor

Addım 3: Lazımi faylları yükləyin

Aşağıdakı kitabxana və proqram təminatına ehtiyacınız olacaq:

  • xSX0X- Analog giriş sensoru kitabxanası
  • xOD01 - OLED ekran kitabxanası
  • Arduino IDE - İnkişaf mühiti

Kitabxanaların necə qurulacağını görmək üçün bura vurun.

Arduino IDE -ni qurduqdan sonra açın və proqramınızı yükləmək üçün lövhə olaraq "Arduino Pro və ya Pro Mini" ni seçin. ATmega328P (5V, 16MHz) prosessorunun seçildiyindən də əmin olun. Aşağıdakı şəklə baxın.

Arduino Pro və ya Pro Mini lövhəsini və ATmega328P (5V, 16MHz) prosessorunu seçin

Addım 4: yığın

Aşağıda göstərildiyi kimi XC10 avtobus bağlayıcılarından istifadə edərək proqramçı xChip, IP01 və ATmega328P əsaslı CC01 xChip düyməsini vurun. CC01 -ə yükləmək üçün açarları müvafiq olaraq 'A' və 'DCE' mövqelərinə yerləşdirməlisiniz.

IP01 və CC01 birlikdə tıklandı

Sonra, 10 kΩ rezistorunuzu götürün və bir ucunu "IN" işarələnmiş terminala, digər ucunu isə SX02 üzərindəki "GND" topraklama terminalinə vidalayın. Termistor probunun uclarını götürün və bir ucunu Vcc, "3.3V", digər ucunu isə "IN" terminalına vidalayın. Aşağıdakı qrafikə baxın.

SX02 əlaqələri

İndi OD01 və SX02 -ni CC01 ilə birləşdirin, sadəcə XC10 avtobus konnektorlarından istifadə edərək bir yerə vurun. Aşağıya baxın. Şəkildəki gümüş element termistor zondudur.

Proqramlaşdırma üçün tam vahid

Addım 5: Proqram

Cihazı kompüterinizin USB portuna daxil edin. Aşağıdakı kodu yükləyin və ya kopyalayın və Arduino IDE -yə yapışdırın. Kodu tərtib edin və lövhənizə yükləyin. Yükləndikdən sonra proqramınız işə başlamalıdır. Zond otaq temperaturu şəraitindədirsə, aşağıda göstərildiyi kimi OLED ekranda ± 25 ° C müşahidə etməlisiniz.

Yüklədikdən sonra OLED ekranda otaq istiliyini müşahidə edin

Addım 6: Portativ Termometr

Cihazı kompüterinizdən çıxarın. Cihazı sökün və IP01 əvəzinə PU01 istifadə edərək yenidən yığın. İndi güc bankı və ya bənzəri kimi 5V USB portativ enerji təchizatı götürün və yeni qurğunu daxil edin. İndi yaxşı dəqiqliyə malik öz sərin portativ termometriniz var. İşlədiyini görmək üçün örtük şəklinə baxın. Bir stəkanda isti suyu ölçdüm. Aşağıdakı şəkillər tam vahidinizi göstərir.

CC01, OD01, SX02 və PU02 -dən ibarət tam vahid.

Addım 7: Nəticə

Bu layihənin montajı 10 dəqiqə, proqramlaşdırılması isə daha 20 dəqiqə çəkdi. tələb olunan yeganə passiv komponent rezistor idi. XChips çox rahat etmək üçün birlikdə vurun.

Addım 8: Kod

ThermTemp_Display.ino Arduino Koddakı hesablamaları başa düşmək üçün araşdırma termistorları.

#include // xCHIPs üçün əsas kitabxana daxildir

#include // analoq giriş sensoru kitabxanasını daxil edin #daxil edin // OLED ekran kitabxanasını daxil edin #daxil edin // riyaziyyat funksiyalarını daxil edin #C_Kelvin 273.15 təyin edin // kelvindən celsiusa çevirmək üçün #define series_res 10000 // seriya müqavimətinin ohmsda #define B 3950 // Termistor üçün B parametri #otaq_tempK 298.15 // Kelvində otaq temperaturu #otaqda_dəyişlər 10000 // otaq temperaturunda ohmda müqavimət #define vcc 3.3 // təchizat gərginliyi xSX01 SX01 (0x55); // i2c ünvanının üzmə gərginliyini təyin edin; // ölçülmüş gərginliyi ehtiva edən dəyişən (0 - 3.3V) float therm_res; // termistor müqaviməti float act_tempK; // faktiki temperatur kelvin float act_tempC; // celsius void setup -dakı həqiqi temperatur () {// bir dəfə işlətmək üçün quraşdırma kodunuzu bura qoyun: // dəyişənləri 0 gərginlik = 0 olaraq işə salın; term_res = 0; act_tempK = 0; act_tempC = 0; // serial ünsiyyətə başlayın Serial.begin (115200); // i2c ünsiyyətinə başlayın Wire.begin (); // analoq giriş sensorunu işə salın SX01.begin (); // OLED ekranını başlat OLED.begin (); // aydın görüntü OD01.clear (); // gecikməni normallaşdırmaq üçün gecikmə (1000); } void loop () {// əsas kodunuzu bura qoyun, təkrar işləsin: // gərginliyi oxuyun SX01.poll (); // volatge gərginliyini saxla = SX01.getVoltage (); // termistor müqavimətini hesablayın therm_res = ((vcc * series_res) / gərginlik) - series_res; // faktiki temperaturu kelvin akt_tempK = (room_tempK * B) / (B + room_tempK * log (therm_res / room_res)) hesablayın; // kelvini celsiusa çevir act_tempC = act_tempK - C_Kelvin; // OLED displeydə çap temperaturu // OD01.set2X () mərkəzində göstərmək üçün əl ilə formatlaşdırma; OD01.println (""); OD01.println (""); OD01. çap (""); OD01. çap (act_tempC); OD01. çap ("C"); OD01.println (""); gecikmə (2000); // hər 2 saniyədə bir ekranı yeniləyin}

Tövsiyə: