Terim: 4 telli direnç termometre sensörü

Bu yazıda, farklı sıcaklık sensörlerini ve her bir özel durumda nasıl kullanılabileceklerini tartışacağız. Sıcaklık, derece cinsinden ölçülen fiziksel bir parametredir. Herhangi bir ölçüm sürecinin önemli bir parçasıdır. Doğru sıcaklık ölçümleri gerektiren alanlar arasında ilaç, biyolojik araştırma, elektronik, malzeme araştırması ve elektrikli ürünlerin termal performansı bulunur. Sıcaklıktaki fiziksel değişiklikleri tespit etmemizi sağlayan ısı enerjisi miktarını ölçmek için kullanılan bir cihaz, sıcaklık sensörü olarak bilinir. Dijital ve analogdurlar.

Ana sensör türleri

Genel olarak, veri elde etmenin iki yöntemi vardır:

1. İletişim... Temaslı sıcaklık sensörleri bir nesne veya maddeyle fiziksel temas halindedir. Katıların, sıvıların veya gazların sıcaklığını ölçmek için kullanılabilirler.

2. Temassız... Temassız sıcaklık sensörleri, bir nesne veya madde tarafından yayılan kızılötesi enerjinin bir kısmını yakalayarak ve yoğunluğunu algılayarak sıcaklığı algılar. Yalnızca katı ve sıvılarda sıcaklığı ölçmek için kullanılabilirler. Renksizlikleri (şeffaflıkları) nedeniyle gazların sıcaklığını ölçemezler.

Sıcaklık sensörü türleri

Birçok farklı sıcaklık sensörü türü vardır. Bir termostatik cihazın basit açma / kapama kontrolünden, bitki yetiştirme işlemlerinde kullanılan ısıtma işlevine sahip karmaşık su kaynağı kontrol sistemlerine kadar. İki ana sensör türü, temaslı ve temassız, ayrıca dirençli, voltaj ve elektromekanik sensörlere ayrılmıştır. En sık kullanılan üç sıcaklık sensörü şunlardır:

  • Termistörler
  • Direnç termokuplları
  • Termokupl

Bu sıcaklık sensörleri, operasyonel parametreler açısından birbirinden farklıdır.

EKİPMAN GELİŞTİRME TEKNOLOJİLERİ

Analog çıkışlı entegre sıcaklık sensörlerini Arduino denetleyicisine bağlama hakkında ders. Termometrenin çalışma taslağı sunulur ve sıcaklık sensörlerinden gelen bilgilerin programlanmış işlenmesi anlatılır.

Önceki ders Ders listesi Sonraki ders

Bu yayınla, Arduino sistemindeki sıcaklığı ölçmekle ilgili bir dizi derse başlıyorum. Toplamda, çeşitli sıcaklık sensörleri için 4 ders planlanmıştır:

  • analog çıkışlı entegre sıcaklık sensörleri - LM35, TMP35, TMP36, TMP37;
  • KTY81 serisinin silikon sıcaklık sensörleri;
  • 1-Wire dijital arayüzlü entegre sensörler - DS18B20;
  • termokupllar (termoelektrik dönüştürücüler).

Her derste size şunu söyleyeceğim:

  • kısaca sıcaklık sensörlerinin çalışma prensibi ve parametreleri hakkında;
  • sıcaklık sensörlerini mikro denetleyicilere bağlamak için şemalarda;
  • Size sıcaklık sensörlerinden gelen bilgilerin yazılımla işlenmesinden bahsedeceğim;
  • Arduino kartını ve bunun için yazılımı temel alan bir termometre şeması vereceğim.

Her ders, çalışan bir Arduino denetleyicisine dayanan bir termometre projesini ele alacaktır:

  • LED göstergesinde bilgi çıkışı ile bağımsız modda;
  • bir bilgisayarla iletişim modunda, yalnızca mevcut sıcaklığın görüntülenmesine izin vermekle kalmaz, aynı zamanda verilerin çıktısıyla sıcaklık değişikliklerini grafik biçiminde kaydetmeye de izin verir.

Analog voltaj çıkışlı entegre sıcaklık sensörleri.

Bu cihazların tüm çeşitliliğiyle, aşağıdaki genel nitelikler içlerinde mevcuttur:

  • çıkış voltajı sıcaklıkla doğrusal orantılıdır;
  • sensörler, çıkış geriliminin sıcaklığa bağımlılığı için kalibre edilmiş bir ölçek faktörüne sahiptir; ek kalibrasyon gerekli değildir.

Basitçe ifade etmek gerekirse, bu tip sensörleri kullanarak sıcaklığı ölçmek için, çıkıştaki voltajı ölçmek ve bir ölçek faktörü aracılığıyla bunu sıcaklığa dönüştürmek gerekir.

Bu kategoriye giren birçok termal sensör var. Aşağıdaki sıcaklık sensörü türlerini vurgulamak isterim:

  • LM35;
  • TMP35;
  • TMP36;
  • TMP37.

Bunlar en yaygın, oldukça doğru ve ucuz cihazlardır. Bu sensörler hakkında makaleler yazdım. LM35 ve TMP35, TMP36, TMP37 bağlantılarına bakabilirsiniz. Tüm parametreler, cihazların teknik özellikleri, tipik bağlantı şemaları burada ayrıntılı olarak açıklanmıştır.

Sıcaklık sensörlerini bir mikro denetleyiciye bağlama.

TO-92 paketinde sensör kullanmak en uygunudur.

TO-92 paketindeki cihazlar için bağlantı şeması şuna benzer.

Listelenen tüm sensörler bu şemaya göre çalışacaktır. Sıcaklık sensörlerini açmak için diğer şemalar hakkındaki bilgiler LM35 ve TMP35, TMP36, TMP37 bağlantılarında bulunabilir.

Temel parametreler, sensör farklılıkları.

Listelenen sensörler arasındaki temel farklar şunlardır:

  • TMP36, negatif sıcaklıkları ölçebilen, listelenen sıcaklık sensörlerinden yalnızca biridir.
  • Sensörlerin farklı sıcaklık ölçüm aralıkları vardır.

Yukarıdaki şemaya göre bağlanan sıcaklık sensörlerinden bahsediyoruz. Örneğin, negatif sıcaklıkları ölçmenize izin veren bir LM35 anahtarlama devresi vardır. Ancak uygulanması daha zordur ve ek güç gerektirir. Negatif sıcaklıklar için TMP36 kullanmak daha iyidir.

Bu devre için LM35, TMP35, TMP36, TMP37 sıcaklık sensörlerinin ana parametrelerini bir tabloda özetledim.

Bir türSıcaklık ölçüm aralığı, ° CÇıkış voltajı ofseti, mVÖlçek faktörü, mV / ° C+25 ° C'de çıkış voltajı, mV
LM35, LM35A0 … + 150010250
LM35C, LM35CA0 … + 110010250
LM35D0 … + 100010250
TMP35+ 10 … + 125010250
TMP36— 40 … + 12550010750
TMP37+ 5 … + 100020500

Tüm sıcaklık sensörleri için çıkış voltajı yalnızca pozitif olabilir, ancak önyargı nedeniyle TMP36 negatif sıcaklıkları ölçebilir. Çıkışındaki sıfır voltaj -40 ° C sıcaklığa karşılık gelir ve 0,5 V çıkış voltajıyla sıcaklık 0 ° C olacaktır. TMP36'yı en kullanıcı dostu analog I / C sıcaklık sensörü olarak buluyorum ve oldukça yaygın olarak kullanıyorum.

LM35, TMP35, TMP36, TMP37 sıcaklık sensörleri üzerindeki termometrenin Arduino projesi.

Şunları yapacak bir termometre geliştireceğiz:

  • Bağımsız modda, sıcaklık değerini dört basamaklı yedi bölümlü ışık yayan diyot (LED) göstergesinde görüntüleyin.
  • Mevcut sıcaklık değerini bilgisayara gönderin. Arduino IDE seri port monitörünü kullanarak gözlemleyebilirsiniz.
  • Özel bir üst düzey programın yardımıyla (yazdım): ölçülen sıcaklığı bilgisayar monitöründe görüntüleyin.
  • sıcaklık değişikliklerini kaydedin ve bunları grafik olarak görüntüleyin.

Arduino UNO R3 kartına dayalı termometre devresi.

Arduino kartına bağlanmak gereklidir:

  • çoklamalı modda dört basamaklı yedi bölümlü LED göstergesi;
  • sıcaklık sensörü TMP36 veya benzeri.

LED gösterge tipi GNQ-3641BUE-21'i seçtim. Parlak, bu görev için en uygun boyut. 20. derste Arduino kartına bağladık. Bu derste indikatörün dokümantasyonunu, bağlantı şemalarını görebilirsiniz. Yedi bölümlü LED göstergeleri kontrol etmek için kitaplığın bir açıklaması da vardır.

Arduino UNO R3 kartına dayalı termometre devresi buna benzer.

LED göstergesi, kontrol cihazına çoklanmış modda bağlanır (ders 19, ders 20).

Sıcaklık sensörü A0 analog girişine bağlanır. Kondansatör C1 - sensöre giden güç kaynağını bloke eder, R1 ve C2 - en basit analog filtre. Termal sensör mikro denetleyicinin yakınına monte edilirse, filtre devreden çıkarılabilir.

TMP35, TMP36, TMP37, 10 nF'ye kadar ve LM35 - 50 pF'den fazla olmayan bir yük üzerinde çalışmaya izin verir.Bu nedenle, sensör denetleyiciye önemli kapasitanslı uzun bir hat ile bağlanırsa, direnç R1 sensör tarafına ve C2 kondansatörü kontrolör tarafına takılmalıdır. Engelleme kondansatörü C1 her zaman sıcaklık sensörünün yanına kurulur.

Her durumda, sensörden gelen sinyalin dijital olarak filtrelenmesi kontrolör programında uygulanacaktır.

Test etmek için cihazı bir devre tahtasına monte ettim.

Sıcaklığın hesaplanması.

Prensip basittir. LM35, TMP35, TMP37 sensörlerinin sıcaklığını hesaplamak için şunları yapmalısınız:

  • ADC kodunu okuyun.
  • Sensör çıkışındaki voltajı Uout = N * Uion / 1024 olarak hesaplayın, burada
  • Uout - sıcaklık sensörünün çıkışındaki voltaj;
  • N - ADC kodu;
  • Uion - referans voltaj kaynağının voltajı (devremiz için 5 V);
  • 1024 - maksimum ADC derecelendirme sayısı (10 bit).
  • Sensör çıkışındaki gerilimi ölçek faktörüne bölün.
  • TMP36 sensörü için, ölçek faktörüne bölmeden önce ön gerilimini (0,5 V) çıkarın.
  • Referans voltajı 5 V olan farklı sensörler için sıcaklığı hesaplamanın formülleri şuna benzer.

    Sensör tipiADC kodu - N'den 5 V referans voltajı ile T (° C) sıcaklığını hesaplama formülü.
    LM35, TMP35T = (N * 5/1024) / 0,01
    TMP36T = (N * 5/1024 - 0,5) / 0,01
    TMP37T = (N * 5/1024) / 0,02

    Dijital filtreleme kullanılıyorsa, bunun katsayısını da hesaba katmak gerekir. Ayrıca formüllerin anlaşılması kolay bir biçimde yazıldığını da anlamanız gerekir. Gerçek bir programda, formülün sabit kısmını önceden hesaplamak ve onu bir katsayı olarak kullanmak daha iyidir. Bu, 13. derste ayrıntılı olarak açıklanmaktadır. Bir analog sinyalin okunması ve dijital filtrelenmesi hakkında da bilgi vardır.

    Arduino termometre programı.

    Program aşağıdaki işlevleri yerine getirmelidir:

    • ADC kodlarının değerlerini okuyun;
    • gürültü bağışıklığını artırmak için bunları ortalayın (dijital filtreleme);
    • ADC kodundan sıcaklığı hesaplayın;
    • dört basamaklı bir LED göstergesindeki sıcaklık değerini şu formatta görüntüleyin: işaret;
    • onlarca;
    • birimler;
    • onda ° C
  • Sıcaklık değerini saniyede bir karakter formatında bilgisayara aktarın.
  • Programın geliştirilmesi olağan ilkeye dayanmaktadır:

    • 2 ms periyotlu bir zamanlayıcı kesintisi uygulanır;
    • içinde paralel bir işlem gerçekleşir: LED göstergesinin yenilenmesi;
    • ADC kodlarını okumak ve değerlerinin ortalamasını almak;
    • yazılım zamanlayıcıları.
  • Temelde eşzamansız bir süreç gerçekleşir:
      program zamanlayıcısından senkronizasyon 1 sn;
  • sıcaklığın hesaplanması;
  • sıcaklık değerinin bilgisayara aktarılması.
  • Önceki dersleri okursanız, her şey netleşecektir.

    MsTimer2.h ve Led4Digits.h kitaplıkları bağlanmalıdır. Kitaplıkları Ders 10 ve Ders 20'den indirebilirsiniz. Ayrıca ayrıntılı bir açıklama ve örnekler de vardır. Analog girişlerin voltajını ölçmek için ders 13'e bakın.

    Hemen programın bir taslağını vereceğim.

    // termometre, sensörler LM35, TMP35, TMP36, TMP37 #include #include

    #define MEASURE_PERIOD 500 // ölçüm süresi, * 2 ms #define ADC_RESOLUTION 4.8828125 // ADC çözünürlüğü, mV (5000 mV / 1024) #define OFFSET 500. // çıkış voltajı ofseti, mV (TMP36 için) #define SCALE_FACTOR 10. / / ölçek faktörü, mV (TMP36 için)

    int timeCount; // ölçüm süresi sayacı uzun sumA0; // ADC kodlarını toplamak için değişken long avarageTemp; // ortalama sıcaklık değeri (ADC kodlarının toplamı, ortalama değer * 500) boolean flagTempReady; // sıcaklık ölçümüne hazır olduğunun işareti şamandıra sıcaklığı; // hesaplanan sıcaklık, ° C

    // gösterge türü 1; 5,4,3,2 kategorilerinin çıktıları; segment pimleri 6,7,8,9,10,11,12,13 Led4Digits disp (1, 5,4,3,2, 6,7,8,9,10,11,12,13);

    void setup () {MsTimer2 :: set (2, timerInterrupt); // zamanlayıcı kesinti süresini 2 ms olarak ayarlayın MsTimer2 :: start (); // zamanlayıcı kesintisini etkinleştir Serial.begin (9600); // bağlantı noktasını başlat, hız 9600}

    geçersiz döngü () {

    eğer (flagTempReady == true) {flagTempReady = false; // veriler hazır

    // sıcaklık sıcaklığının hesaplanması = (avarageTemp * ADC_RESOLUTION / 500. - OFFSET) / SCALE_FACTOR;

    // göstergede sıcaklığı gösterir if (sıcaklık> = 0) {// pozitif sıcaklık disp.print ((int) (sıcaklık * 10.), 4, 1); } else {// negatif sıcaklık disp.digit [3] = 0x40; // eksi görüntülenir disp.print ((int) (sıcaklık * -1 * 10.), 3, 1); } disp.digit [1] | = 0x80; // ikinci basamağın noktasını aydınlatın // sıcaklığı bilgisayara aktarın Serial.println (sıcaklık); }}

    // ————————————— işleyiciyi kesme 2 ms void timerInterrupt () {disp.regen (); // LED göstergesini yeniden oluştur

    // ortalama sıcaklık timeCount ölçümü ++; // Ortalama alma örneklerinin +1 sayacı sumA0 + = analogRead (A0); // ADC kanalı A0 kodlarının toplamı

    // ortalama alma örnek sayısını kontrol edin if (timeCount> = MEASURE_PERIOD) {timeCount = 0; avarageTemp = sumA0; // ortalama değeri aşırı yükleme sumA0 = 0; flagTempReady = true; // sonucun hazır olduğunu işaretleyin}}

    Krokiyi bu bağlantıdan indirebilirsiniz:

    Kaydolun ve ödeyin. Sadece 40 ruble. tüm site kaynaklarına erişim için ayda!

    Yükleniyor, kontrol ediliyor. Seri port monitörünü başlatıyoruz ve bilgisayardaki verileri kontrol ediyoruz.

    Program, TMP36 sensörleri için tasarlanmıştır, ancak diğer sensör türlerine uyarlanması kolaydır. Bunun için programın başında belirtilen ölçek faktörü ve ofset değerlerini #define ifadeleri ile değiştirmek yeterlidir.

    Sensör tipiFaktör ve önyargı
    LM35, TMP35#define OFSET 0. #define SCALE_FACTOR 10.
    TMP36#define OFSET 500. #define SCALE_FACTOR 10.
    TMP37#define OFSET 0. #define SCALE_FACTOR 20.

    Termometrenin çözünürlüğü ve doğruluğu.

    Devremizdeki ADC'nin çözünürlüğü 5 V / 1024 = 4,88 mV'dir.

    Termometre çözünürlüğü:

    • 10 mV / ° C'lik bir ölçek faktöründe (LM35, TMP35, TMP36 sensörler) 0,5 ° C'den azdır;
    • 20 mV / ° C (TMP37 probu) ölçekleme faktöründe 0.25 ° C'den azdır.

    Oldukça iyi parametreler.

    Ölçüm hatası ise biraz daha kötü.

    Sensörlerin kendilerinin ölçüm hatası:

    • LM35 için en fazla 0,5 ° C;
    • TMP35, TMP36, TMP37 için 1 ° C'den fazla değil.

    Arduino kartının ADC'sinin ölçüm hatası.

    Cihazımızda 5 V referans voltajı kullandık, yani güç kaynağı gerilimi. Arduino UNO R3 kartlarında, NCP1117ST50 lineer regülatör üzerinde 5 V voltaj oluşturulur. PDF formatındaki spesifikasyonlar bu bağlantı NCP117.pdf'de görüntülenebilir. Bu mikro devrenin çıkış voltajının kararlılığı oldukça yüksektir -% 1.

    Şunlar. termometrenin toplam ölçüm hatası% 2'den fazla değildir.

    Kart üzerindeki 5 V'luk voltaj ölçülerek ve parametrede ADC çözünürlüğü 5 V'a değil daha doğru bir değere ayarlanarak biraz artırılabilir. Benim kartımda voltaj 5,01 V çıktı.Programımda düzeltmeniz gerekenler:

    #define ADC_RESOLUTION 4.892578 // ADC çözünürlüğü, mV (5010 mV / 1024)

    Arduino kartı için harici bir voltaj referansı kullanma.

    Ancak hem ADC ölçüm doğruluğunu hem de çözünürlüğünü iyileştirmenin radikal bir yolu var. Bu, harici bir voltaj referansının kullanılmasıdır.

    En yaygın sabit voltaj kaynağı LM431, TL431 vb .'dir. Bu mikro devre hakkında bir makale yazacağım. Şimdilik, bilgilere bir bağlantı vereceğim - LM431.pdf.

    LM431 anahtarlama devresini Arduino kartı için 2,5 V referans voltajı olarak vereceğim.

    Programda, ADC'nin çözünürlüğünü belirleyen satırı değiştirmeniz gerekir:

    #define ADC_RESOLUTION 2.44140625 // ADC çözünürlüğü, mV (2500 mV / 1024)

    Ve kurulumda () harici bir voltaj referansı bağlayın:

    analogReference (HARİCİ); // harici referans voltajı

    Sonuç olarak, çözünürlük 2 kat azalacak ve kararlılık büyük ölçüde azalacaktır. Aynı şekilde, doğruluğu artırmak için LM431'in gerçek voltajını bir voltmetre ile ölçmek ve programda düzeltmek gerekir.

    Cihaz, örneğin galvanik pillerden veya şarj edilebilir bir pilden 5 V'a yakın bir voltaja sahip dengesiz bir güç kaynağından besleniyorsa, termometrenin bu tür bir modifikasyonu kesinlikle gereklidir. Bu durumda, güç kaynağının kararlılığından bahsetmeye gerek yoktur ve referans voltaj kaynağının stabilizasyonu olmadan ölçüm çok şartlı olacaktır.

    Üst düzey termometre programı.

    Arduino IDE monitör penceresindeki sayıların akan satırlarına bakmak hızla sıkıcı hale geliyor. Sadece sıcaklık değerini görmek istiyorum. Ayrıca termometrenin bir bilgisayar ile pratik kullanımı için Arduino IDE yazılımının kurulu olması gerekmektedir. Tüm bilgisayarlarda yoktur. Ayrıca, insanlar genellikle sıcaklık değişiklikleri, zaman içindeki ısıtma veya soğutma süreciyle ilgilenirler. Sıcaklık değişikliklerini kaydedebilmek ve bunları grafiksel olarak görüntüleyebilmek istiyorum.

    Bunu yapmak için, basit bir üst düzey program yazdım:

    • mevcut sıcaklık değerini gösterir;
    • sıcaklık değişimini 1 saniye farkla kaydeder;
    • sıcaklık değişiklikleri hakkındaki bilgileri grafik biçiminde görüntüler.

    Bu program hem bu makaledeki termometre ile hem de diğer sensör türleri ile sonraki derslerin termometreleri için kullanılabilir.

    Program Windows 95, 98, XP, 7 işletim sistemleri altında çalışıyor. Gerisini denemedim.

    Uygulamayı yükleme.

    • Thermometer.zip arşiv dosyasını indirin:

    Kaydolun ve ödeyin. Sadece 40 ruble. tüm site kaynaklarına erişim için ayda!

    • Çalışma klasörünüze açın. Klasörü Termometre arşivinden bırakabilirsiniz.

    Uygulama iki dosyadan oluşmaktadır:

    • Thermometer.exe - yürütülebilir dosya;
    • Conf.txt - yapılandırma dosyası.

    Programı kurmanıza gerek yoktur, sadece Thermometer.exe dosyasını çalıştırın.

    Termometreyi bilgisayara bağlama.

    Bilgisayar ve kontrolör arasındaki veri alışverişi COM portu üzerinden gerçekleştirilir. Bağlantı noktası gerçek veya sanal olabilir.

    En uygun yol, Arduino kartının sürücüsü tarafından oluşturulan sanal portu kullanmaktır. Bağlantı noktası, kart bilgisayara bağlandığında görünür. Arduino IDE'yi başlatmanıza gerek yok. Bağlantı noktası numarası görüntülenebilir: Denetim Masası -> Sistem -> Aygıt Yöneticisi -> Bağlantı Noktaları (COM ve LPT)

    COM5'im var.

    Bilgisayarınızı bir tür USB-UART köprüsü üzerinden bağlayabilirsiniz. PL2303 USB UART Kartı modülleri kullanıyorum. Nasıl bağlanılacağı, Peltier elemanındaki buzdolabını izleyin programı hakkındaki makalede yazılmıştır.

    Bilgisayarda standart bir COM bağlantı noktası (RS232 arayüzü) varsa, herhangi bir sürücü yüklemenize gerek yoktur. Bu durumda denetleyiciyi bağlamak için, bir RS232 - TTL seviye dönüştürücü, ADM232, SP232, MAX232 mikro devreleri ve benzerlerinin kullanılması gerekir.

    Birçok bağlantı seçeneği var. Önemli olan, bilgisayarda sanal veya gerçek bir COM portunun oluşturulmasıdır.

    Programın ilk lansmanı.

    Programı başlatmadan önce, bilgisayarda bir sanal COM bağlantı noktası oluşturulmuş olmalıdır. Ve bağlantı noktası Arduino kart konektörüne bağlanırken oluşturulduğundan, bu, önce kartı bilgisayara bağlamanız gerektiği anlamına gelir.

    Ardından Thermometer.exe programını çalıştırın. Bazı COM bağlantı noktaları, program yapılandırma dosyasında yazılır. Program başlangıçta onu açmaya çalışacaktır. Çalışmazsa, hatalı bağlantı noktasının numarasını içeren bir mesaj görüntüler.

    Tamam'a tıklayın ve program penceresi açılacaktır. Sıcaklık yerine çizgiler olacaktır. Veri yok.

    Menüden (üst) bağlantı noktası seçim modunu seçin. Bir seçim penceresi açılacaktır.

    Kartınız için bağlantı noktası numarasını ayarlayın. Her bağlantı noktasının durumu yazılıdır. Doğal olarak, "ücretsiz" etiketli bağlantı noktaları arasından seçim yapmanız gerekir.

    Pencereyi kapat. Seçilen COM bağlantı noktası, yapılandırma dosyasına kaydedilecek ve program başladığında her zaman çağrılacaktır. Programı her başlattığınızda bağlantı noktasını ayarlamanıza gerek yoktur.

    Kart açılırsa, program yüklenir, her şey doğru çalışır, ardından saniyede bir daire-LED sıcaklık değerinin önünde yanıp sönmelidir. Yeni veri geldiğinde yanıp söner.

    Kayıt memuru.

    Programda sıcaklık değişimlerinin dinamiklerini gözlemlemenizi sağlayan bir kayıt cihazı bulunmaktadır. Program başladığında kayıt cihazı otomatik olarak açılır. Sıcaklık değerlerini 1 saniyelik artışlarla kaydeder. Maksimum kayıt süresi 30.000 saniye veya 8.3 saattir.

    Kayıt sonuçlarını görüntülemek için "Kaydedici" menü sekmesine basın.

    Sensörü bir havya ile ısıtan bendim.

    Farenin sağ tuşuna basılı tutarak dikdörtgen bir alan seçerek parçayı büyütebilirsiniz. Alan, soldan sağa, yukarıdan aşağıya seçilmelidir.

    Fare ile soldan sağa, aşağıdan yukarıya bir alan seçmek, tüm grafik bilgilerinin görüntüsünü döndürür. Basit.

    Bu program sonraki üç derste diğer sıcaklık ölçüm projeleriyle birlikte kullanılacaktır.

    Bir sonraki derste, KTY81 serisi silikon sensörleri kullanarak sıcaklığı ölçeceğiz.

    Önceki ders Ders listesi Sonraki ders

    Projeyi destekleyin

    2

    Yayının yazarı

    çevrimdışı 5 gün

    Edward

    139

    Yorumlar: 1584Yayınlar: 161 Kayıt: 13-12-2015

    Termistör

    Termistör, fiziksel direncini sıcaklıkla değiştiren hassas bir dirençtir. Tipik olarak termistörler, kobalt, manganez veya nikel oksit gibi seramik bir yarı iletken malzemeden yapılır ve camla kaplanır. Herhangi bir sıcaklık değişikliğine nispeten hızlı tepki veren küçük, yassı, sızdırmaz disklerdir.

    Malzemenin yarı iletken özelliklerinden dolayı, termistörler negatif bir sıcaklık katsayısına (NTC) sahiptir, yani. artan sıcaklıkla direnç azalır. Bununla birlikte, artan sıcaklıkla direnci artan PTC termistörleri de vardır.

    Termistör programı

    Termistörlerin avantajları

    • Sıcaklık değişimlerine yüksek tepki hızı, doğruluk.
    • Düşük maliyetli.
    • 2.000 ila 10.000 ohm aralığında daha yüksek direnç.
    • 300 ° C'ye kadar sınırlı bir sıcaklık aralığında çok daha yüksek hassasiyet (~ 200 ohm / ° C)

    Direncin sıcaklık bağımlılıkları

    Direncin sıcaklığa bağımlılığı aşağıdaki denklemle ifade edilir:

    Nerede A, B, C - bunlar sabitlerdir (hesaplama şartları ile sağlanır), R - Ohm cinsinden direnç, T - Kelvin cinsinden sıcaklık. Dirençteki bir değişiklikten sıcaklıktaki değişikliği veya tersini kolayca hesaplayabilirsiniz.

    Termistör nasıl kullanılır?

    Termistörler, oda sıcaklığında (25 ° C) direnç değerleri için derecelendirilmiştir. Bir termistör pasif dirençli bir cihazdır, bu nedenle mevcut çıkış voltajının izlenmesini gerektirir. Kural olarak, şebeke gerilimi bölücü oluşturan uygun dengeleyicilerle seri olarak bağlanırlar.

    Misal: 25 ° C'de 2,2K ve 80 ° C'de 50 ohm direnç değerine sahip bir termistör düşünün. Termistör, 5 V'luk bir besleme üzerinden 1 kΩ'luk bir dirençle seri olarak bağlanmıştır.

    Bu nedenle çıkış voltajı şu şekilde hesaplanabilir:

    25 ° C'de, RNTC = 2200 ohm;

    80 ° C'de, RNTC = 50 ohm;

    Bununla birlikte, oda sıcaklığında, doğrusal olmadıkları için farklı termistörler için standart direnç değerlerinin farklı olduğuna dikkat etmek önemlidir. Bir termistör, üstel bir sıcaklık değişimine ve dolayısıyla belirli bir sıcaklık için direncini hesaplamak için kullanılan bir beta sabitine sahiptir. Direnç çıkış voltajı ve sıcaklığı doğrusal olarak ilişkilidir.

    Arduino kartına bağlanma

    Yukarıda bahsedildiği gibi, DS18B20 sıcaklık sensörü Arduino kartına iki şekilde (doğrudan ve parazitik) bağlanabilir. Ayrıca bir Arduino girişine bir veya bir grup sensör asılabilir. En basit seçenekle başlayalım. Aşağıdaki şekil, tek bir sensörü doğrudan Arduino Nano'ya bağlamak için devreyi göstermektedir.

    Şekil №3 - tek bir sensörün doğrudan bağlantı şeması

    Burada her şey oldukça basit. DS18B20'ye Arduino kartının kendisinden güç vererek sensörün Vdd pinine 5V sağlıyoruz. Aynı şekilde GND pinlerini birbirine bağlarız. Termal sensörün orta terminalini, örneğin Arduino Nano'nun D2 pinine bağlayın. Veri çıkışını (DQ), daha önce taslağa numarasını yazmış olan hemen hemen tüm Arduino girişlerine bağlayabilirsiniz. Dikkat edilmesi gereken tek ve en önemli nokta, güç kaynağının artı değeri ile sıcaklık sensörünün veri hattı arasında 4,7k'lık bir direnç bulunmasıdır. Bu direnç, veri hattını mantıksal bir birime çekmeye yarar ve yokluğu, bilgi alışverişi algoritmasında bir arızaya neden olur. 4.7k değeri çok kritik değildir ve belirli sınırlar dahilinde değiştirilebilir, asıl mesele taşınmamaktır.

    Bir sensörün doğrudan bağlanmasıyla her şey açıktır, şimdi bir grup sensörün Arduino'nun bir pimine doğrudan bağlantısını ele alacağız. Şekil 4, 5 DS18B20 sensörünü bağlamanın bir örneğini göstermektedir. Bu sayı herhangi bir sayı olabilir ve yalnızca her birini sorgulama süresiyle sınırlıdır (750 ms).

    Şekil №4 - bir grup DS18B20 sensörünün bağlanması

    Yukarıdaki şekilden de görebileceğiniz gibi, kesinlikle veriyolu üzerindeki tüm sensörler paralel bağlanmıştır ve tüm grup için bir kaldırma direnci vardır. Devredeki değişiklikler mantıklı ve minimal olsa da, birkaç sıcaklık sensörüyle çalışmak bir program derlemek açısından biraz daha zordur. Bu durumda, benzersiz adresler kullanarak her birini ayrı ayrı ele almak gerekir.Her bir modun programlanması daha sonra tartışılacaktır.

    Parazitik güç kaynağı modu, sensörlerin gücü doğrudan 5V kullanmadan doğrudan veri hattından aldığı için doğrudan moddan farklıdır. Bu durumda, her bir sıcaklık sensörünün Vdd ve GNG pimleri birbirine bağlanır. Bu süreç Şekil 5'te daha net gösterilmektedir.

    Şekil 5 - veri hattından parazitik güç kaynağı modunda tek bir sensör ve bir grup sensörün bağlantısı.

    Önceki diyagramlarda olduğu gibi, burada 4.7k'lık bir direnç vardır, bu durumda çift rol oynar, yani: veri hattını "1" mantığına çekmek ve sensörün kendisine güç vermek. Bu tür bir dahil etme olasılığı, DS18B20'ye yerleştirilmiş özel bir devre ve bir tampon kapasitör Cpp (Şekil 2) tarafından sağlanır. Bazen bu, bazı projelerde önemli bir rol oynayan bir grup sıcaklık sensörünü bağlamak için ortak döngüde 1 kablo kaydetmenize izin verir.

    Anahtarlama devrelerini düşündükten sonra, programlamaya geçme zamanı ve burada üç yoldan gidebilirsiniz:

    • DS18B20 ile çalışmak için hazır, kanıtlanmış kitaplıkları kullanın;
    • Yüklü komutlar listesi aracılığıyla doğrudan sensörle iletişim kurun;
    • Teknik dokümantasyonda verilen veri bitlerini zaman dilimlerine göre aktarma işlevleri dahil olmak üzere kendi düşük seviyeli kitaplığınızı yazın.

    Üçüncü seçenek en zor olanıdır ve büyük miktarda bilginin incelenmesini gerektirir. Bu makale çerçevesinde ilk iki seçenek ele alınacaktır.

    Dirençli sıcaklık sensörleri

    Sıcaklık direnç sensörleri (RTD'ler), elektrik direnci sıcaklığa göre değişen platin gibi nadir metallerden yapılır.

    Dirençli sıcaklık dedektörleri pozitif bir sıcaklık katsayısına sahiptir ve termistörlerin aksine, yüksek sıcaklık ölçüm doğruluğu sağlar. Ancak duyarlılıkları zayıftır. Pt100, 0 ° C'de 100 ohm'luk standart direnç değeriyle en yaygın olarak bulunan sensördür. Ana dezavantaj yüksek maliyettir.

    Bu tür sensörlerin avantajları

    • -200 ila 650 ° C arasında geniş sıcaklık aralığı
    • Yüksek düşüş akımı çıkışı sağlayın
    • Termokupllara ve RTD'lere kıyasla daha doğrusal

    Görüntüleme

    Isı sensörleri farklı kriterlere göre sınıflandırılır. Kuruluma bağlı olarak yerleşik ve haricidirler.

    Elektrikli zeminler için

    Mekanik regülatörlerin tasarımı ve bakımı kolaydır. Küçük alanlar için uygundurlar. Ayar, bir tekerlek veya bir anahtar kullanılarak gerçekleştirilir. Bazı modellerde çocuk kilidi işlevi bulunur.

    Tek dezavantajı, hassas sıcaklık kontrolünün olmamasıdır.

    Su tabanları için

    Elektronik modeller su tabanının ısısını düzenlemek için idealdir. Sıcaklığı zemin seviyesinde veya iç mekanda kontrol edebilirler. Bir ekranla donatılmış, düğmeler kullanılarak kontrol gerçekleştirilir. Elektronik bir regülatör, zemin sıcaklığını daha doğru bir şekilde ayarlamanıza olanak tanır.

    Kızılötesi zeminler için

    Kızılötesi sıcaklık sensörlü bir dijital termostatın kullanılması güç tüketimini% 70 oranında azaltabilir. Kontrol, dokunmatik ekran kullanılarak gerçekleştirilir.

    Pahalı modellerin bir programlama işlevi vardır. Maliyet 500 dolara kadar çıkıyor. Bazı modeller İnternet üzerinden kontrol edilebilir.

    Kızılötesi zeminler

    Kızılötesi yerden ısıtma sıcaklık sensörü, elektrikli zeminlerde olduğu gibi aynı prensibe göre monte edilir.

    Plastik bir tüp içinde ısıtma bileşenleri arasına yerleştirilir. Veya alüminyum bant kullanarak filmin kenarından grafit şeride 15 cm.

    Termokupl

    Termokupl sıcaklık sensörleri en çok doğru olmaları, -200 ° C ila 2000 ° C arasında geniş bir sıcaklık aralığında çalışması ve nispeten ucuz olmaları nedeniyle kullanılır. Aşağıdaki fotoğrafta telli ve fişli bir termokupl:

    Termokupl işlemi

    Bir termokupl, sıcaklık üzerinde potansiyel bir fark oluşturmak için birbirine kaynaklanmış iki farklı metalden oluşur.İki bağlantı arasındaki sıcaklık farkından, sıcaklığı ölçmek için kullanılan bir voltaj üretilir. İki bağlantı arasındaki voltaj farkına Seebeck etkisi denir.

    Her iki bileşik de aynı sıcaklıktaysa, farklı bileşiklerdeki farklılık potansiyeli sıfırdır, yani. V1 = V2. Bununla birlikte, bağlantılar farklı sıcaklıklarda ise, iki bağlantı arasındaki sıcaklık farkına göre çıkış voltajı V1 - V2 farklarına eşit olacaktır.

    iwarm-tr.techinfus.com

    Isınma

    Kazanlar

    Radyatörler