Turinys:

Temperatūros stebėjimas naudojant MCP9808 ir „Arduino Nano“: 4 žingsniai
Temperatūros stebėjimas naudojant MCP9808 ir „Arduino Nano“: 4 žingsniai

Video: Temperatūros stebėjimas naudojant MCP9808 ir „Arduino Nano“: 4 žingsniai

Video: Temperatūros stebėjimas naudojant MCP9808 ir „Arduino Nano“: 4 žingsniai
Video: GTM1 Šildymo automatizavimas. Temperatūros aliarmai. 2024, Liepa
Anonim
Image
Image

MCP9808 yra labai tikslus skaitmeninis temperatūros jutiklis ± 0,5 ° C I2C mini modulis. Jie yra su vartotojo programuojamais registrais, palengvinančiais temperatūros jutimo programas. Aukšto tikslumo temperatūros jutiklis MCP9808 tapo pramonės standartu pagal formos faktorių ir intelektą, teikiant kalibruotus, linijinius jutiklių signalus skaitmeniniu, I2C formatu.

Šioje pamokoje buvo parodyta MCP9808 jutiklio modulio sąsaja su arduino nano. Norėdami nuskaityti temperatūros reikšmes, mes naudojome aviečių pi su I2c adapteriu. Šis I2C adapteris leidžia lengvai ir patikimiau prijungti prie jutiklio modulio.

1 veiksmas: reikalinga aparatūra:

Reikalinga aparatūra
Reikalinga aparatūra
Reikalinga aparatūra
Reikalinga aparatūra
Reikalinga aparatūra
Reikalinga aparatūra

Medžiagos, reikalingos mūsų tikslui pasiekti, apima šiuos aparatūros komponentus:

1. MCP9808

2. „Arduino Nano“

3. I2C kabelis

4. „I2C Shield“, skirtas „Arduino nano“

2 veiksmas: prijungimas prie aparatūros:

Aparatūros prijungimas
Aparatūros prijungimas
Aparatūros prijungimas
Aparatūros prijungimas

Techninės įrangos prijungimo skyriuje iš esmės paaiškinamos reikalingos laidų jungtys tarp jutiklio ir „arduino nano“. Užtikrinti teisingas jungtis yra pagrindinė būtinybė dirbant su bet kuria norimos išvesties sistema. Taigi, būtinos jungtys yra šios:

MCP9808 veiks per I2C. Čia yra elektros instaliacijos schemos pavyzdys, parodantis, kaip prijungti kiekvieną jutiklio sąsają.

Iš karto plokštė sukonfigūruota I2C sąsajai, todėl rekomenduojame naudoti šį prijungimą, jei esate kitaip agnostikas. Viskas, ko jums reikia, yra keturi laidai!

Reikia tik keturių jungčių „Vcc“, „Gnd“, „SCL“ir „SDA“kaiščių, kurie yra prijungti naudojant I2C kabelį.

Šie ryšiai parodyti aukščiau esančiose nuotraukose.

3 žingsnis: Temperatūros matavimo kodas:

Temperatūros matavimo kodas
Temperatūros matavimo kodas

Pradėkime nuo „Arduino“kodo dabar.

Naudodami jutiklio modulį su „Arduino“, įtraukiame „Wire.h“biblioteką. „Wire“bibliotekoje yra funkcijos, palengvinančios „i2c“ryšį tarp jutiklio ir „Arduino“plokštės.

Visas „Arduino“kodas pateiktas žemiau, kad būtų patogiau:

#įtraukti

// MCP9808 I2C adresas yra 0x18 (24)

#define Addr 0x18

negaliojanti sąranka ()

{

// Inicijuoti I2C komunikaciją kaip MASTER

Wire.begin ();

// Inicijuoti serijinį ryšį, nustatyti duomenų perdavimo spartą = 9600

Serial.begin (9600);

// Pradėti I2C perdavimą

Wire.beginTransmission (Addr);

// Pasirinkite konfigūracijos registrą

Wire.write (0x01);

// Nuolatinio konversijos režimas, numatytasis įjungimas

Wire.write (0x00);

Wire.write (0x00);

// Sustabdyti I2C perdavimą

Wire.endTransmission ();

// Pradėti I2C perdavimą

Wire.beginTransmission (Addr);

// Pasirinkite skyros registrą

Wire.write (0x08);

// Rezoliucija = +0.0625 / C

Wire.write (0x03);

// Sustabdyti I2C perdavimą

Wire.endTransmission ();

}

tuštumos kilpa ()

{

nepasirašyti int duomenys [2];

// Pradeda I2C ryšį

Wire.beginTransmission (Addr);

// Pasirinkite duomenų registrą

Wire.write (0x05);

// Sustabdyti I2C perdavimą

Wire.endTransmission ();

// Prašyti 2 baitų duomenų

Wire.requestFrom (Addr, 2);

// Skaityti 2 baitus duomenų

// temp MSB, temp LSB

jei (Wire.available () == 2)

{

duomenys [0] = Wire.read ();

duomenys [1] = Wire.read ();

}

// Konvertuokite duomenis į 13 bitų

int temp = ((duomenys [0] ir 0x1F) * 256 + duomenys [1]);

jei (temperatūra> 4095)

{

temperatūra -= 8192;

}

plūdė cTemp = temp * 0,0625;

plūdė fTemp = cTemp * 1,8 + 32;

// Išvesti duomenis į ekraną

Serial.print ("Temperatūra Celsijaus laipsniais:");

Serial.println (cTemp);

Serial.println ("C");

Serial.print ("Temperatūra Farenheitu:");

Serial.println (fTemp);

Serial.println ("F");

vėlavimas (500);

}

Laidų bibliotekoje Wire.write () ir Wire.read () naudojami komandoms rašyti ir jutiklio išėjimui skaityti.

Serial.print () ir Serial.println () naudojami jutiklio išėjimui rodyti „Arduino IDE“serijos monitoriuje.

Jutiklio išvestis parodyta aukščiau esančiame paveikslėlyje.

4 žingsnis: programos:

Programos
Programos

MCP9808 skaitmeninis temperatūros jutiklis turi keletą pramonės lygių programų, kuriose yra pramoniniai šaldikliai ir šaldytuvai bei įvairūs maisto perdirbimo įrenginiai. Šis jutiklis gali būti naudojamas įvairiems asmeniniams kompiuteriams, serveriams ir kitiems kompiuterių periferiniams įrenginiams.

Rekomenduojamas: