Mündəricat:

Arduino AD8495 Termometr: 7 addım
Arduino AD8495 Termometr: 7 addım

Video: Arduino AD8495 Termometr: 7 addım

Video: Arduino AD8495 Termometr: 7 addım
Video: Аналоговый усилитель термопары типа-К на AD8495 2024, Noyabr
Anonim
Arduino AD8495 Termometr
Arduino AD8495 Termometr
Arduino AD8495 Termometr
Arduino AD8495 Termometr
Arduino AD8495 Termometr
Arduino AD8495 Termometr
Arduino AD8495 Termometr
Arduino AD8495 Termometr

Bu K tipli termometrlə problemlərinizi necə həll edəcəyinizə dair qısa bir bələdçi. Ümid edirik kömək edir:)

Aşağıdakı layihə üçün sizə lazım olacaq:

1x Arduino (hər cür, yalnız 1 Arduino Nano pulsuz görünürdü)

1x AD8495 (ümumiyyətlə sensor və hər şey ilə birlikdə gəlir)

6x Jumper telləri (AD8495 -i Arduino -ya bağlayır)

lehimləmə dəmiri və lehim teli

İSTEĞMƏLİ:

1x 9V batareya

2x müqavimət

Diqqətlə davam etməyə və barmaqlarınızı izləməyə diqqət edin. Lehimləmə dəmiri ehtiyatla istifadə edilmədikdə yanıqlara səbəb ola bilər.

Addım 1: Ümumiyyətlə necə işləyir

Ümumiyyətlə necə işləyir
Ümumiyyətlə necə işləyir

Ümumiyyətlə bu termometr, evdən və ya zirzəmidən temperaturun ölçülməsi ilə soba və sobanın istiliyinin ölçülməsinə qədər demək olar ki, hər şey üçün istifadə edilə bilən K tipli sensoru olan Adafruit məhsuludur. -260 ° C -dən 980 -ə qədər temperatura davam edə bilər və bəzi kiçik enerji təchizatı tənzimləmələri ilə 1380 ° C -ə qədər gedir (bu olduqca diqqətəlayiqdir) və +/- 2 dərəcə ilə də olduqca dəqiqdir. dəyişməsi olduqca faydalıdır. Bunu Arduino Nano ilə etdiyimiz kimi etsəniz, onu da kiçik bir qutuya yığa bilərsiniz (bu dərsliyə daxil olmayan öz qutunuzu hazırlayacağınızı nəzərə alaraq).

Addım 2: Bağlantı və Düzgün Kablolama

Bağlama və Düzgün Kablolama
Bağlama və Düzgün Kablolama
Bağlama və Düzgün Kablolama
Bağlama və Düzgün Kablolama
Bağlama və Düzgün Kablolama
Bağlama və Düzgün Kablolama

Yuxarıdakı fotoşəkillərdən gördüyünüz kimi paket aldığımız zaman belə oldu. Arduino lövhəsinə qoşulmaq üçün tullanan tellərdən istifadə edə bilərsiniz, amma çox kiçik gərginliklərdə işlədiyi üçün telləri lehimləməyi məsləhət görürəm, buna görə hər hansı bir kiçik hərəkət nəticəni korlaya bilər.

Yuxarıdakı fotoşəkillər, telləri sensora necə lehim etdiyimizdən çəkilmişdir. Layihəmiz üçün Arduino Nano'dan istifadə etdik və gördüyünüz kimi ölçülərimizdən optimal nəticələr əldə etmək üçün Arduinomuzu da bir qədər dəyişdirdik.

Addım 3: İstifadə növü

İstifadə növü
İstifadə növü

Məlumat cədvəlinə görə, bu sensor normal Arduino 5V enerji təchizatı ilə -260 ilə 980 dərəcə C arasında ölçmək üçün istifadə edilə bilər və ya bəzi xarici enerji mənbələri əlavə edə bilərsiniz ki, bu da 1380 dərəcəyə qədər ölçmə imkanı verəcək. Ancaq unutmayın ki, termometr Arduino -ya oxumaq üçün 5V -dən çox geri qaytararsa, Arduino -ya zərər verə bilər və layihəniz uğursuz ola bilər.

Bu problemi həll etmək üçün cihaza Vout gərginliyinin yarısına qədər Vout olan bir gərginlik bölücü qoyduq.

Məlumat cədvəlinə bağlantılar:

www.analog.com/media/en/technical-documenta…

www.analog.com/media/en/technical-documenta…

Addım 4: Ölçərkən Kodla Böyük Problem

Ölçərkən Kodla Böyük Problem
Ölçərkən Kodla Böyük Problem

Termometr məlumat cədvəlinə görə istinad gərginliyi 1.25V -dir. Ölçmələrimizdə bu belə deyildi … Daha sonra test etdikdə, referent gərginliyin dəyişkən olduğunu öyrəndik və iki kompüterdə sınadıq, hər ikisində fərqli idi (!?!). Lövhəyə bir pin qoyduq (yuxarıdakı şəkildə göstərildiyi kimi) və hesablamadan əvvəl hər dəfə referent gərginlik dəyərini oxumaq üçün koda bir xətt qoyduq.

Bunun əsas formulu Temp = (Vout-1.25) / 0.005-dir.

Düsturumuzda bunu etdik: Temp = (Vout-Vref) / 0.005.

Addım 5: Kod 1 -ci hissə

Kod 1 -ci hissə
Kod 1 -ci hissə
Kod 1 -ci hissə
Kod 1 -ci hissə

const int AnalogPin = A0; // temp oxumaq üçün analoq pin int AnalogPin2 = A1; // İstinad dəyərinin səthi Tempini oxumaq üçün analoq pin; // Temperatur üzən Vref; // Referent gərginlikfloat Vout; // AdCfloat SenValdan sonra gərginlik; // SensValfloat SenVal2; // İstifadəçi pinvoid quruluşundan sensor dəyəri () {Serial.begin (9600); } void loop () {SenVal = analogRead (A0); // SenVal2 temperaturundan analoq dəyər = analogRead (A1); // Təqdim olunan pinVref = (SenVal2 *5.0) /1024.0 -dan analoq dəyər; // Referent valueVout üçün analoqun rəqəmsala çevrilməsi = (SenVal * 5.0) /1024.0; // İstiliyin oxunan gərginliyi üçün rəqəmsala çevrilməsi Temp = (Vout - Vref) /0.005; // Temperaturun hesablanması Serial.print ("Temperatur ="); Serial.println (Temp); Serial.print ("Referent Gerilim ="); Serial.println (Vref); gecikmə (200);}

Bu kod Arduinodan (xarici enerji mənbəyi yoxdur) istifadə etdiyiniz zaman istifadə olunur. Bu, məlumat cədvəlinizə görə ölçməyinizi 980 dərəcəyə qədər məhdudlaşdıracaq.

Addım 6: Kod 2 -ci hissə

Kod 2 -ci hissə
Kod 2 -ci hissə
Kod 2 -ci hissə
Kod 2 -ci hissə

const int AnalogPin = A0; // temp oxumaq üçün analoq pin int AnalogPin2 = A1; // İstinad dəyərini oxuduğumuz yerdən analoq pin (Sensorun istinad dəyəri qeyri -sabit olduğu üçün bunu etməliydik) float Temp; // Temperatur üzən Vref; // Referent gərginlik üzən Vhalf; // Arduino üzərindəki gərginlik, Vout bölücüdən sonra oxunur; // Dönüşdən sonra gərginlik SenVal; // SensValfloat SenVal2; // Sensor dəyəri referent dəyərini aldığımız yerdən void setup () {Serial.begin (9600); } void loop () {SenVal = analogRead (A0); // Analog çıxış dəyəriSenVal2 = analogRead (A1); // İstinad dəyərini aldığımız yerdən analoq çıxışVref = (SenVal2 * 5.0) /1024.0; // Analoq dəyərin Referent pindən rəqəmsal dəyərə çevrilməsiVhalf = (SenVal * 5.0) /1024.0; // Analogu rəqəmsal dəyərə çevirinVout = 2 * Vhalf; // Yarım gərginlikdən sonra gərginliyin hesablanmasıTemp = (Vout - Vref) /0.005; // Temperatur düsturunun hesablanmasıSerial.print ("Temperatur ="); Serial.println (Temp); Serial.print ("Vout ="); Serial.println (Vout); Serial.print ("Referent Voltage ="); Serial.println (Vref); gecikmə (100);}

Xarici bir enerji mənbəyindən istifadə edirsinizsə və bunun üçün gərginlik bölücüdən istifadə ediriksə bu koddur. Bu səbəbdən içimizdəki "Vhalf" dəyərinə sahibik. İstifadə etdiyimiz gərginlik ayırıcımız (3 -cü hissəyə baxın) daxil olan gərginliyin yarısı qədərdir (R1, R2 ilə eyni ohm dəyərlərə malikdir), çünki 9V batareya istifadə etdik. Yuxarıda qeyd edildiyi kimi, 5V -dan yuxarı olan hər hansı bir gərginlik Arduino -ya zərər verə bilər, buna görə də maksimum 4.5V əldə etməyi bacardıq (bu vəziyyətdə mümkün deyil, çünki gərginlik ayırıcıdan sonra sensordan ən yüksək güc çıxışı 3,5V ətrafında ola bilər).

Addım 7: Nəticələr

Nəticələr
Nəticələr
Nəticələr
Nəticələr
Nəticələr
Nəticələr
Nəticələr
Nəticələr

Yuxarıdakı ekran görüntülərindən göründüyü kimi, sınadıq və işləyir. Əlavə olaraq sizə orijinal Arduino fayllarını təqdim etdik.

Budur, ümid edirik ki, layihələrinizə kömək edəcək.

Tövsiyə: