Sisukord:
2025 Autor: John Day | [email protected]. Viimati modifitseeritud: 2025-01-13 06:57
HYT939 on digitaalne niiskusandur, mis töötab I2C sideprotokolli alusel. Niiskus on meditsiinisüsteemide ja laborite puhul keskse tähtsusega parameeter, seega püüdsime nende eesmärkide saavutamiseks liita HYT939 arduino nanoga. Selles õpetuses on näidatud HYT939 andurimooduli liidestamist arduino nanoga.
Niiskuse väärtuste lugemiseks oleme kasutanud arduino koos I2c adapteriga. See I2C adapter muudab ühenduse andurimooduliga lihtsaks ja usaldusväärsemaks.
Sideprotokoll, millel andur töötab, on I2C. I2C tähistab integraallülitust. See on suhtlusprotokoll, milles side toimub SDA (jadaandmed) ja SCL (jadakell) liinide kaudu. See võimaldab ühendada mitu seadet korraga. See on üks lihtsamaid ja tõhusamaid suhtlusprotokolle.
Samm: vajalik riistvara:
Eesmärgi saavutamiseks vajalikud materjalid sisaldavad järgmisi riistvarakomponente:
1. HYT939
2. Arduino Nano
3. I2C kaabel
4. I2C kilp Arduino nano jaoks
2. samm: riistvara ühendamine:
Riistvara ühendamise jaotis selgitab põhimõtteliselt anduri ja arduino nano vahel vajalikke juhtmestiku ühendusi. Soovitud väljundi mis tahes süsteemiga töötamisel on põhivajadus õigete ühenduste tagamine. Seega on vajalikud ühendused järgmised:
HYT939 töötab üle I2C. Siin on näide ühendusskeemist, mis näitab, kuidas anduri iga liidest ühendada.
Valmis plaat on konfigureeritud I2C liidese jaoks, seega soovitame seda ühendamist kasutada, kui olete muidu agnostik. Kõik, mida vajate, on neli juhtmest!
Vaja on ainult nelja ühendust Vcc, Gnd, SCL ja SDA ning need ühendatakse I2C kaabli abil.
Neid seoseid on näidatud ülaltoodud piltidel.
Samm: Arduino niiskuse mõõtmise kood:
Alustame nüüd Arduinoo koodiga.
Arduinoga andurimoodulit kasutades kaasame Wire.h raamatukogu. Juhtmeraamatukogu sisaldab funktsioone, mis hõlbustavad i2c suhtlust anduri ja Arduino plaadi vahel.
Kogu Arduino kood on kasutaja mugavuse huvides toodud allpool:
#kaasake
// HYT939 I2C aadress on 0x28 (40)
#define Addr 0x28
tühine seadistus ()
{
// Initsialiseeri I2C side kui MASTER
Wire.begin ();
// Initsialiseeri jadakommunikatsioon
Seriaalne algus (9600);
viivitus (300);
}
tühine tsükkel ()
{
allkirjastamata int andmed [4];
// Käivitage I2C edastamine
Wire.beginTransmission (Addr);
// Saada tavarežiimi käsk
Wire.write (0x80);
// Peata I2C edastamine
Wire.endTransmission ();
viivitus (300);
// Taotle 4 baiti andmeid
Wire.requestFrom (Addr, 4);
// Loe 4 baiti andmeid
// niiskus msb, niiskus lsb, temp msb, temp lsb
kui (Wire.available () == 4)
{
andmed [0] = Wire.read ();
andmed [1] = Wire.read ();
andmed [2] = Wire.read ();
andmed [3] = Wire.read ();
// Teisendage andmed 14-bitisteks
ujuki niiskus = (((andmed [0] & 0x3F) * 256,0) + andmed [1]) * (100,0 / 16383,0);
ujuk cTemp = (((andmed [2] * 256,0) + (andmed [3] ja 0xFC)) / 4) * (165,0 / 16383,0) - 40;
ujuk fTemp = (cTemp * 1,8) + 32;
// Andmete väljastamine jadamonitorile
Serial.print ("Suhteline õhuniiskus:");
Serial.print (niiskus);
Serial.println (" %RH");
Serial.print ("Temperatuur Celsiuse järgi:");
Serial.print (cTemp);
Serial.println ("C");
Serial.print ("Temperatuur Fahrenheiti järgi:");
Serial.print (fTemp);
Serial.println ("F");
}
viivitus (300);
}
Traaditeegis kasutatakse käskude kirjutamiseks ja anduri väljundi lugemiseks Wire.write () ja Wire.read (). Järgnev osa koodist illustreerib anduri väljundi lugemist.
// Loe 4 baiti andmeid // niiskus msb, niiskus lsb, temp msb, temp lsb if (Wire.available () == 4) {data [0] = Wire.read (); andmed [1] = Wire.read (); andmed [2] = Wire.read (); andmed [3] = Wire.read ();
}
Anduri väljund on näidatud ülaltoodud pildil.
4. samm: rakendused:
HYT939 on tõhus digitaalne niiskusandur, mida kasutatakse meditsiinisüsteemides, autoklaavides. Selle andurimooduli kasutamist leiavad ka rõhu kastepunkti mõõtmise ja kuivatamise süsteemid. Erinevates laboratooriumides, kus sobiv niiskustase on katsete läbiviimisel keskseks parameetriks, saab seda andurit kasutada niiskuse mõõtmiseks.