İçindekiler:

XinaBox ve Termistör Kullanarak Sıcaklık Ölçümü: 8 Adım
XinaBox ve Termistör Kullanarak Sıcaklık Ölçümü: 8 Adım

Video: XinaBox ve Termistör Kullanarak Sıcaklık Ölçümü: 8 Adım

Video: XinaBox ve Termistör Kullanarak Sıcaklık Ölçümü: 8 Adım
Video: Arduino NTC ısı sensörü ve motor sürücü kullanarak fan çalıştırmak 2024, Kasım
Anonim
XinaBox ve Termistör Kullanarak Sıcaklık Ölçümü
XinaBox ve Termistör Kullanarak Sıcaklık Ölçümü

XinaBox'tan bir analog giriş xChip ve bir termistör probu kullanarak bir sıvının sıcaklığını ölçün.

Adım 1: Bu Projede Kullanılanlar

Donanım bileşenleri

  • ADC'li XinaBox SX02 x 1 xChip analog giriş sensörü
  • ATmega328P tabanlı Arduino Uno'nun XinaBox CC01 x 1 xChip versiyonu
  • Voltaj bölücü ağ için direnç 10k ohm x 1 10k direnç
  • Termistör Probu x 1 10k, 25°C'de NTC su geçirmez termistör probu
  • FTDI Limited'den FT232R tabanlı XinaBox IP01 x 1 xChip USB Programlayıcı
  • XinaBox OD01 x 1 xChip 128x64 Piksel OLED Ekran
  • XinaBox XC10 x 4 xChip veri yolu konnektörleri
  • XinaBox PU01 x 1 xChip USB (Tip A) Güç Kaynağı
  • 5V USB Güç Kaynağı x 1 Güç Bankası veya benzeri

Yazılım uygulamaları ve çevrimiçi hizmetler

Arduino IDE'si

El aletleri ve imalat makineleri

Düz Başlı Tornavida Vidalı terminal kelepçesini sıkmak veya gevşetmek için

2. Adım: Öykü

Tanıtım

Basit bir termometre oluşturarak bir sıvının sıcaklığını ölçmek istedim. XinaBox xChips kullanarak bunu göreceli basitlikle başarabildim. Sıcaklık sonuçlarımı görüntülemek için 0 - 3.3V kabul eden SX02 analog giriş xChip, ATmega328P tabanlı CC01 xChip ve OD01 OLED ekran xChip kullandım.

Bir bardaktaki suyun sıcaklığını ölçen termistör

3. Adım: Gerekli Dosyaları İndirin

Aşağıdaki kütüphanelere ve yazılımlara ihtiyacınız olacak:

  • xSX0X- Analog giriş sensörü kitaplığı
  • xOD01 - OLED ekran kitaplığı
  • Arduino IDE - Geliştirme ortamı

Kütüphanelerin nasıl kurulacağını görmek için buraya tıklayın.

Arduino IDE'yi kurduktan sonra açın ve programınızı yüklemek için pano olarak "Arduino Pro veya Pro Mini"yi seçin. Ayrıca ATmega328P (5V, 16MHz) işlemcinin seçildiğinden emin olun. Aşağıdaki resme bakın.

Arduino Pro veya Pro Mini kartını ve ATmega328P (5V, 16MHz) işlemciyi seçin

Adım 4: Birleştirin

Aşağıda gösterildiği gibi XC10 veri yolu konektörlerini kullanarak programlayıcı xChip, IP01 ve ATmega328P tabanlı CC01 xChip'i birlikte tıklayın. CC01'e yüklemek için anahtarları sırasıyla 'A' ve 'DCE' konumlarına yerleştirmeniz gerekir.

IP01 ve CC01 birlikte tıklandı

Ardından, 10kΩ direncinizi alın ve bir ucunu SX02'de "IN" olarak işaretlenmiş terminale ve diğer ucunu "GND" toprak terminaline vidalayın. Termistör probunun uçlarını alın ve bir ucunu Vcc, "3.3V" ve diğer ucunu "IN" terminaline vidalayın. Aşağıdaki grafiğe bakın.

SX02 bağlantıları

Şimdi OD01 ve SX02'yi, XC10 veri yolu bağlantılarını kullanarak basitçe bir araya getirerek CC01 ile birleştirin. Aşağıya bakınız. Görüntüdeki gümüş element, termistör sondasıdır.

Programlama için komple ünite

Adım 5: Program

Üniteyi bilgisayarınızdaki USB bağlantı noktasına takın. Aşağıdaki kodu indirin veya kopyalayıp Arduino IDE'nize yapıştırın. Kodu derleyin ve panonuza yükleyin. Yüklendikten sonra programınız çalışmaya başlamalıdır. Probunuz oda sıcaklığı koşullarındaysa, aşağıda gösterildiği gibi OLED ekranında ±25°C gözlemlemelisiniz.

Yüklemeden sonra OLED ekranında oda sıcaklığını gözlemleyin

Adım 6: Taşınabilir Termometre

Üniteyi bilgisayarınızdan çıkarın. Üniteyi sökün ve IP01 yerine PU01 kullanarak yeniden monte edin. Şimdi bir güç bankası veya benzeri gibi 5V USB taşınabilir güç kaynağınızı alın ve yeni düzeneği içine yerleştirin. Artık iyi bir doğrulukla kendi havalı taşınabilir termometreniz var. Çalışır durumda görmek için kapak resmine bakın. Sıcak suyu bir bardakta ölçtüm. Aşağıdaki resimler tüm ünitenizi göstermektedir.

CC01, OD01, SX02 ve PU02'den oluşan komple ünite.

7. Adım: Sonuç

Bu projenin montajı 10 dakikadan az ve programlaması 20 dakikadan daha kısa sürdü. gereken tek pasif bileşen bir dirençti. xChips, çok uygun hale getirmek için bir araya tıklamanız yeterlidir.

Adım 8: Kod

ThermTemp_Display.ino Arduino Koddaki hesaplamaları anlamak için termistörleri araştırın.

#include // xCHIP'ler için çekirdek kitaplığı dahil et

#include // analog giriş sensör kütüphanesini dahil et #include // OLED ekran kütüphanesini dahil et #include // matematik fonksiyonlarını dahil et#define C_Kelvin 273.15 // Kelvin'den santigrata dönüştürme için #define series_res 10000 // ohm cinsinden seri direncin değeri #define B 3950 // Termistör için B parametresi #define room_tempK 298.15 // kelvin cinsinden oda sıcaklığı #define room_res 10000 // ohm cinsinden oda sıcaklığında direnç #define vcc 3.3 // besleme gerilimi xSX01 SX01(0x55); // i2c adresi şamandıra voltajını ayarlayın; // ölçülen voltajı içeren değişken (0 - 3.3V) float therm_res; // termistör direnci şamandırası act_tempK; // gerçek sıcaklık kelvin float act_tempC; // santigratta gerçek sıcaklık void setup() { // bir kez çalıştırmak için kurulum kodunuzu buraya koyun: // değişkenleri 0'a sıfırlayın voltaj = 0; term_res = 0; act_tempK = 0; act_tempC = 0; // seri iletişimi başlat Serial.begin(115200); // i2c iletişimini başlat Wire.begin(); // analog giriş sensörünü başlat SX01.begin(); // OLED ekranını başlat OLED.begin(); // ekranı temizle OD01.clear(); // gecikmeyi normalleştirmek için gecikme(1000); } void loop() { // tekrar tekrar çalıştırmak için ana kodunuzu buraya koyun: // voltajı okuyun SX01.poll(); // voltaj voltajını sakla = SX01.getVoltage(); // termistör direncini hesapla term_res = ((vcc * series_res) / voltaj) - series_res; // gerçek sıcaklığı kelvin cinsinden hesapla act_tempK = (room_tempK * B) / (B + room_tempK * log(therm_res / room_res)); // kelvin'i santigrata çevir act_tempC = act_tempK - C_Kelvin; // OLED ekrana sıcaklığı yazdır // merkezde görüntülemek için manuel biçimlendirme OD01.set2X(); OD01.println(""); OD01.println(""); OD01.print(" "); OD01.print(act_tempC); OD01.print("C"); OD01.println(""); gecikme(2000); // her 2 saniyede bir ekranı güncelle }

Önerilen: