Агуулгын хүснэгт:
Видео: Arduino Nano - HTS221 харьцангуй чийгшил ба температур мэдрэгчийн заавар: 4 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:02
HTS221 бол харьцангуй чийгшил, температурын хэт авсаархан багтаамжтай дижитал мэдрэгч юм. Энэ нь дижитал цуваа интерфэйсээр хэмжилтийн мэдээллийг өгөх мэдрэгч элемент ба холимог дохионы хэрэглээний тусгай нэгдсэн хэлхээг (ASIC) агуулдаг. Олон тооны онцлог шинж чанар бүхий энэ нь чийгшил, температурыг хэмжих хамгийн тохиромжтой мэдрэгч юм. Энд arduino нано ашиглан хийсэн жагсаал байна.
Алхам 1: Танд хэрэгтэй зүйл..
1. Ардуино Нано
2. HTS221
3. I²C кабель
4. I²C Arduino Nano -ийн бамбай
Алхам 2: Холболтууд:
Arduino Nano -ийн I2C бамбайг аваад Nano -ийн голын дээгүүр зөөлөн түлхээрэй.
Дараа нь I2C кабелийн нэг үзүүрийг HTS221 мэдрэгч рүү, нөгөө үзүүрийг I2C бамбай руу холбоно.
Холболтыг дээрх зураг дээр харуулав.
Алхам 3: Код:
HTS221-ийн arduino кодыг манай github репозитороос татаж авах боломжтой- DCUBE нийгэмлэг.
Үүнтэй ижил холбоос энд байна:
github.com/DcubeTechVentures/HTS221/blob/master/Arduino/HTS221.ino
Бид мэдрэгчийн Arduino самбартай I2c холболтыг хөнгөвчлөх зорилгоор Wire.h номын санг агуулдаг.
Та мөн кодыг эндээс хуулж болно, үүнийг дараах байдлаар өгсөн болно.
// Хүсэл зоригийн лицензээр тараасан.
// Үүнийг холбогдох бүтээлүүдийнхээ лицензтэй нийцсэн тохиолдолд ашиг, үнэгүй ашиглах боломжтой.
// HTS221
// Энэ код нь HTS221_I2CS I2C Mini модультай ажиллахад зориулагдсан болно
#оруулах
// HTS221 I2C хаяг нь 0x5F байна
#тодорхойлох Addr 0x5F
хүчингүй тохиргоо ()
{
// I2C холболтыг MASTER болгон эхлүүлэх
Wire.begin ();
// Цуваа холболтыг эхлүүлж, дамжуулах хурд = 9600
Цуваа эхлэх (9600);
// I2C дамжуулалтыг эхлүүлэх
Wire.beginTransmission (Addr);
// Дундаж тохиргооны бүртгэлийг сонгоно уу
Wire.write (0x10);
// Температурын дундаж дээж = 256, Чийглэгийн дундаж дээж = 512
Wire.write (0x1B);
// I2C дамжуулалтыг зогсоох
Wire.endTransmission ();
// I2C дамжуулалтыг эхлүүлэх
Wire.beginTransmission (Addr);
// Хяналтын бүртгэлийг сонгоно уу1
Wire.write (0x20);
// асаах, тасралтгүй шинэчлэх, өгөгдөл дамжуулах хурд = 1 Гц
Wire.write (0x85);
// I2C дамжуулалтыг зогсоох
Wire.endTransmission ();
саатал (300);
}
хоосон давталт ()
{
гарын үсэг зураагүй int өгөгдөл [2];
тэмдэггүй int val [4];
гарын үсэггүй int H0, H1, H2, H3, T0, T1, T2, T3, түүхий;
// Чийгийг тооцоолох утга
for (int i = 0; i <2; i ++)
{
// I2C дамжуулалтыг эхлүүлэх
Wire.beginTransmission (Addr);
// Мэдээллийн бүртгэл илгээх
Утас. бичих ((48 + i));
// I2C дамжуулалтыг зогсоох
Wire.endTransmission ();
// 1 байтын өгөгдөл хүсэх
Wire.requestFrom (Addr, 1);
// 1 байтын өгөгдлийг уншина уу
хэрэв (Утас. боломжтой () == 1)
{
өгөгдөл = Wire.read ();
}
}
// Чийглэгийн өгөгдлийг хөрвүүлэх
H0 = өгөгдөл [0] / 2;
H1 = өгөгдөл [1] / 2;
for (int i = 0; i <2; i ++)
{
// I2C дамжуулалтыг эхлүүлэх
Wire.beginTransmission (Addr);
// Мэдээллийн бүртгэл илгээх
Утас. бичих ((54 + i));
// I2C дамжуулалтыг зогсоох
Wire.endTransmission ();
// 1 байтын өгөгдөл хүсэх
Wire.requestFrom (Addr, 1);
// 1 байтын өгөгдлийг уншина уу
хэрэв (Утас. боломжтой () == 1)
{
өгөгдөл = Wire.read ();
}
}
// Чийглэгийн өгөгдлийг хөрвүүлэх
H2 = (өгөгдөл [1] * 256.0) + өгөгдөл [0];
for (int i = 0; i <2; i ++)
{
// I2C дамжуулалтыг эхлүүлэх
Wire.beginTransmission (Addr);
// Мэдээллийн бүртгэл илгээх
Утас. бичих ((58 + i));
// I2C дамжуулалтыг зогсоох
Wire.endTransmission ();
// 1 байтын өгөгдөл хүсэх
Wire.requestFrom (Addr, 1);
// 1 байтын өгөгдлийг уншина уу
хэрэв (Утас. боломжтой () == 1)
{
өгөгдөл = Wire.read ();
}
}
// Чийглэгийн өгөгдлийг хөрвүүлэх
H3 = (өгөгдөл [1] * 256.0) + өгөгдөл [0];
// Температурын тохируулгын утга
// I2C дамжуулалтыг эхлүүлэх
Wire.beginTransmission (Addr);
// Мэдээллийн бүртгэл илгээх
Wire.write (0x32);
// I2C дамжуулалтыг зогсоох
Wire.endTransmission ();
// 1 байтын өгөгдөл хүсэх
Wire.requestFrom (Addr, 1);
// 1 байтын өгөгдлийг уншина уу
хэрэв (Утас. боломжтой () == 1)
{
T0 = Wire.read ();
}
// I2C дамжуулалтыг эхлүүлэх
Wire.beginTransmission (Addr);
// Мэдээллийн бүртгэл илгээх
Wire.write (0x33);
// I2C дамжуулалтыг зогсоох
Wire.endTransmission ();
// 1 байтын өгөгдөл хүсэх
Wire.requestFrom (Addr, 1);
// 1 байтын өгөгдлийг уншина уу
хэрэв (Утас. боломжтой () == 1)
{
T1 = Wire.read ();
}
// I2C дамжуулалтыг эхлүүлэх
Wire.beginTransmission (Addr);
// Мэдээллийн бүртгэл илгээх
Wire.write (0x35);
// I2C дамжуулалтыг зогсоох
Wire.endTransmission ();
// 1 байтын өгөгдөл хүсэх
Wire.requestFrom (Addr, 1);
// 1 байтын өгөгдлийг уншина уу
хэрэв (Утас. боломжтой () == 1)
{
түүхий = Wire.read ();
}
түүхий = түүхий & 0x0F;
// Температурын тохируулгын утгыг 10 бит болгон хөрвүүлэх
T0 = ((түүхий & 0x03) * 256) + T0;
T1 = ((түүхий & 0x0C) * 64) + T1;
for (int i = 0; i <2; i ++)
{
// I2C дамжуулалтыг эхлүүлэх
Wire.beginTransmission (Addr);
// Мэдээллийн бүртгэл илгээх
Утас. бичих ((60 + i));
// I2C дамжуулалтыг зогсоох
Wire.endTransmission ();
// 1 байтын өгөгдөл хүсэх
Wire.requestFrom (Addr, 1);
// 1 байтын өгөгдлийг уншина уу
хэрэв (Утас. боломжтой () == 1)
{
өгөгдөл = Wire.read ();
}
}
// Өгөгдлийг хөрвүүлэх
T2 = (өгөгдөл [1] * 256.0) + өгөгдөл [0];
for (int i = 0; i <2; i ++)
{
// I2C дамжуулалтыг эхлүүлэх
Wire.beginTransmission (Addr);
// Мэдээллийн бүртгэл илгээх
Утас. бичих ((62 + i));
// I2C дамжуулалтыг зогсоох
Wire.endTransmission ();
// 1 байтын өгөгдөл хүсэх
Wire.requestFrom (Addr, 1);
// 1 байтын өгөгдлийг уншина уу
хэрэв (Утас. боломжтой () == 1)
{
өгөгдөл = Wire.read ();
}
}
// Өгөгдлийг хөрвүүлэх
T3 = (өгөгдөл [1] * 256.0) + өгөгдөл [0];
// I2C дамжуулалтыг эхлүүлэх
Wire.beginTransmission (Addr);
// Мэдээллийн бүртгэл илгээх
Wire.write (0x28 | 0x80);
// I2C дамжуулалтыг зогсоох
Wire.endTransmission ();
// 4 байтын өгөгдөл хүсэх
Wire.requestFrom (Addr, 4);
// 4 байтын өгөгдлийг уншина уу
// чийгшил msb, чийгшил lsb, temp msb, temp lsb
хэрэв (Утас. боломжтой () == 4)
{
val [0] = Wire.read ();
val [1] = Wire.read ();
val [2] = Wire.read ();
val [3] = Wire.read ();
}
// Өгөгдлийг хөрвүүлэх
хөвөх чийгшил = (val [1] * 256.0) + val [0];
чийгшил = ((1.0 * H1) - (1.0 * H0)) * (1.0 * чийгшил - 1.0 * Н2) / (1.0 * Н3 - 1.0 * Н2) + (1.0 * Н0);
int temp = (val [3] * 256) + val [2];
float cTemp = ((((T1 - T0) / 8.0) * (temp - T2)) / (T3 - T2) + (T0 / 8.0);
float fTemp = (cTemp * 1.8) + 32;
// Өгөгдлийг цуваа монитор руу гаргадаг
Serial.print ("Харьцангуй чийгшил:");
Цуврал хэвлэх (чийгшил);
Serial.println (" % RH");
Serial.print ("Цельсийн температур:");
Serial.print (cTemp); Serial.println ("C");
Serial.print ("Фаренгейт дэх температур:");
Цуваа.хэвлэх (fTemp);
Serial.println ("F");
саатал (500);
}
Алхам 4: Өргөдөл:
HTS221 -ийг агаарын чийгшүүлэгч, хөргөгч гэх мэт өргөн хэрэглээний бүтээгдэхүүнүүдэд ашиглаж болно. Энэхүү мэдрэгч нь ухаалаг гэрийн автоматжуулалт, үйлдвэрлэлийн автоматжуулалт, амьсгалын төхөөрөмж, эд хөрөнгө, бараа бүтээгдэхүүний хяналт зэрэг өргөн хүрээнд хэрэглэгддэг.
Зөвлөмж болгож буй:
Arduino Nano - SI7050 Температур мэдрэгчийн заавар: 4 алхам
Arduino Nano - SI7050 Температур мэдрэгчийн заавар: SI7050 нь I2C холбооны протокол дээр ажилладаг дижитал температур мэдрэгч бөгөөд ажлын хүчдэл, температурын бүх хүрээнд өндөр нарийвчлалыг санал болгодог. Мэдрэгчийн өндөр нарийвчлалыг дохионы шинэ боловсруулалт, шулуун гэдсээр тодорхойлдог
Arduino Nano - TCN75A температур мэдрэгчийн заавар: 4 алхам
Arduino Nano-TCN75A Температур мэдрэгчийн заавар: TCN75A бол температураас дижитал хувиргагчтай хоёр утастай цуврал температур мэдрэгч юм. Энэ нь температурыг мэдрэх зориулалттай уян хатан байдлыг хангадаг хэрэглэгчийн програмчлагдах регистрүүдэд багтсан болно. Бүртгүүлэх тохиргоо нь хэрэглэгчдэд
Arduino Nano - STS21 температур мэдрэгчийн заавар: 4 алхам
Arduino Nano - STS21 температур мэдрэгчийн заавар: STS21 дижитал температур мэдрэгч нь дээд зэргийн гүйцэтгэл, зай хэмнэх боломжийг олгодог. Энэ нь дижитал, I2C форматаар тохируулагдсан, шугаман дохиог өгдөг. Энэхүү мэдрэгчийг үйлдвэрлэх нь CMOSens технологид суурилсан бөгөөд энэ нь дээд зэргийн онцлог шинж чанартай юм
Arduino Nano - TMP100 температур мэдрэгчийн заавар: 4 алхам
Arduino Nano-TMP100 температур мэдрэгчийн заавар: TMP100 өндөр нарийвчлалтай, бага чадалтай, дижитал температур мэдрэгч I2C MINI модуль. TMP100 нь урт температурыг хэмжихэд тохиромжтой. Энэ төхөөрөмж нь шалгалт тохируулга хийх эсвэл гадны бүрэлдэхүүн хэсгүүдийн дохиог тохируулах шаардлагагүй ± 1 ° C нарийвчлалыг санал болгодог. Тэр
Температур, харьцангуй чийгшил, Raspberry Pi ба TE Connectivity ашиглан агаар мандлын даралтыг бүртгэгч MS8607-02BA01: 22 алхам (зурагтай)
Температур, харьцангуй чийгшил, Raspberry Pi ба TE Connectivity ашиглан агаар мандлын даралтыг бүртгэгч MS8607-02BA01: Танилцуулга: Энэхүү төсөлд би температурын чийгшил, атмосферийн даралтыг бүртгэх системийг үе шаттайгаар хэрхэн яаж хийхийг танд үзүүлэх болно. Энэхүү төсөл нь Raspberry Pi 3 Model B ба TE Connectivity орчны мэдрэгч чип MS8607-02BA дээр суурилсан болно