Სარჩევი:
ვიდეო: Arduino Nano - HTS221 შედარებითი ტენიანობისა და ტემპერატურის სენსორის სახელმძღვანელო: 4 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:17
HTS221 არის ულტრა კომპაქტური capacitive ციფრული სენსორი ფარდობითი ტენიანობისა და ტემპერატურისათვის. იგი მოიცავს სენსორულ ელემენტს და შერეული სიგნალის გამოყენების სპეციფიკურ ინტეგრირებულ წრეს (ASIC), რომელიც უზრუნველყოფს გაზომვის ინფორმაციას ციფრული სერიული ინტერფეისების საშუალებით. ამდენი მახასიათებლით ინტეგრირებული ეს არის ერთ -ერთი ყველაზე შესაფერისი სენსორი კრიტიკული ტენიანობისა და ტემპერატურის გაზომვისთვის. აქ არის დემონსტრაცია არდუინო ნანოთი.
ნაბიჯი 1: რაც გჭირდებათ..
1. არდუინო ნანო
2. HTS221
3. I²C კაბელი
4. I²C ფარი არდუინო ნანოსთვის
ნაბიჯი 2: კავშირები:
აიღეთ I2C ფარი არდუინო ნანოსთვის და ნაზად წაისვით ნანოს ქინძისთავებზე.
შემდეგ დააკავშირეთ I2C კაბელის ერთი ბოლო HTS221 სენსორთან და მეორე ბოლო I2C ფარს.
კავშირები ნაჩვენებია ზემოთ მოცემულ სურათზე.
ნაბიჯი 3: კოდი:
Arduino კოდი HTS221– ისთვის შეგიძლიათ გადმოწეროთ ჩვენი github საცავიდან- DCUBE Community.
აქ არის იგივე ბმული:
github.com/DcubeTechVentures/HTS221/blob/master/Arduino/HTS221.ino
ჩვენ მოიცავს ბიბლიოთეკას Wire.h სენსორის I2c კომუნიკაციის გასაადვილებლად Arduino დაფასთან.
თქვენ ასევე შეგიძლიათ დააკოპიროთ კოდი აქედან, იგი მოცემულია შემდეგნაირად:
// განაწილებულია თავისუფალი ნების ლიცენზიით.
// გამოიყენეთ იგი ნებისმიერი ფორმით, როგორც გსურთ, მოგებით ან უფასოდ, იმ პირობით, რომ იგი ჯდება ლიცენზიებთან დაკავშირებული სამუშაოებისათვის.
// HTS221
// ეს კოდი შექმნილია HTS221_I2CS I2C მინი მოდულთან მუშაობისთვის
#ჩართეთ
// HTS221 I2C მისამართი არის 0x5F
#განსაზღვრეთ Addr 0x5F
ბათილად დაყენება ()
{
// I2C კომუნიკაციის ინიციალიზაცია, როგორც MASTER
Wire.begin ();
// სერიული კომუნიკაციის ინიციალიზაცია, დაყენებული baud rate = 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);
// მონაცემთა რეესტრის გაგზავნა
Wire.write ((48 + i));
// შეაჩერე I2C გადაცემა
Wire.endTransmission ();
// მოითხოვეთ მონაცემების 1 ბაიტი
მავთული. მოთხოვნა (Addr, 1);
// მონაცემების 1 ბაიტის წაკითხვა
თუ (Wire.available () == 1)
{
მონაცემები = Wire.read ();
}
}
// ტენიანობის მონაცემების კონვერტაცია
H0 = მონაცემები [0] / 2;
H1 = მონაცემები [1] / 2;
for (int i = 0; i <2; i ++)
{
// დაიწყეთ I2C გადაცემა
Wire.beginTransmission (Addr);
// მონაცემთა რეესტრის გაგზავნა
Wire.write ((54 + i));
// შეაჩერე I2C გადაცემა
Wire.endTransmission ();
// მოითხოვეთ მონაცემების 1 ბაიტი
მავთული. მოთხოვნა (Addr, 1);
// მონაცემების 1 ბაიტის წაკითხვა
თუ (Wire.available () == 1)
{
მონაცემები = Wire.read ();
}
}
// ტენიანობის მონაცემების კონვერტაცია
H2 = (მონაცემი [1] * 256.0) + მონაცემი [0];
for (int i = 0; i <2; i ++)
{
// დაიწყეთ I2C გადაცემა
Wire.beginTransmission (Addr);
// მონაცემთა რეესტრის გაგზავნა
Wire.write ((58 + i));
// შეაჩერე I2C გადაცემა
Wire.endTransmission ();
// მოითხოვეთ მონაცემების 1 ბაიტი
მავთული. მოთხოვნა (Addr, 1);
// მონაცემების 1 ბაიტის წაკითხვა
თუ (Wire.available () == 1)
{
მონაცემები = Wire.read ();
}
}
// ტენიანობის მონაცემების კონვერტაცია
H3 = (მონაცემები [1] * 256.0) + მონაცემები [0];
// ტემპერატურის გათავისუფლების ღირებულებები
// დაიწყეთ I2C გადაცემა
Wire.beginTransmission (Addr);
// მონაცემთა რეესტრის გაგზავნა
Wire.write (0x32);
// შეაჩერე I2C გადაცემა
Wire.endTransmission ();
// მოითხოვეთ მონაცემების 1 ბაიტი
მავთული. მოთხოვნა (Addr, 1);
// მონაცემების 1 ბაიტის წაკითხვა
თუ (Wire.available () == 1)
{
T0 = Wire.read ();
}
// დაიწყეთ I2C გადაცემა
Wire.beginTransmission (Addr);
// მონაცემთა რეესტრის გაგზავნა
Wire.write (0x33);
// შეაჩერე I2C გადაცემა
Wire.endTransmission ();
// მოითხოვეთ მონაცემების 1 ბაიტი
მავთული. მოთხოვნა (Addr, 1);
// მონაცემების 1 ბაიტის წაკითხვა
თუ (Wire.available () == 1)
{
T1 = Wire.read ();
}
// დაიწყეთ I2C გადაცემა
Wire.beginTransmission (Addr);
// მონაცემთა რეესტრის გაგზავნა
Wire.write (0x35);
// შეაჩერე I2C გადაცემა
Wire.endTransmission ();
// მოითხოვეთ მონაცემების 1 ბაიტი
მავთული. მოთხოვნა (Addr, 1);
// მონაცემების 1 ბაიტის წაკითხვა
თუ (Wire.available () == 1)
{
ნედლეული = Wire.read ();
}
ნედლეული = ნედლეული & 0x0F;
// გადააკეთეთ ტემპერატურის გამოძახილი მნიშვნელობები 10 ბიტზე
T0 = ((ნედლეული & 0x03) * 256) + T0;
T1 = ((ნედლეული & 0x0C) * 64) + T1;
for (int i = 0; i <2; i ++)
{
// დაიწყეთ I2C გადაცემა
Wire.beginTransmission (Addr);
// მონაცემთა რეესტრის გაგზავნა
Wire.write ((60 + i));
// შეაჩერე I2C გადაცემა
Wire.endTransmission ();
// მოითხოვეთ მონაცემების 1 ბაიტი
მავთული. მოთხოვნა (Addr, 1);
// მონაცემების 1 ბაიტის წაკითხვა
თუ (Wire.available () == 1)
{
მონაცემები = Wire.read ();
}
}
// მონაცემების კონვერტაცია
T2 = (მონაცემები [1] * 256.0) + მონაცემები [0];
for (int i = 0; i <2; i ++)
{
// დაიწყეთ I2C გადაცემა
Wire.beginTransmission (Addr);
// მონაცემთა რეესტრის გაგზავნა
Wire.write ((62 + i));
// შეაჩერე I2C გადაცემა
Wire.endTransmission ();
// მოითხოვეთ მონაცემების 1 ბაიტი
მავთული. მოთხოვნა (Addr, 1);
// მონაცემების 1 ბაიტის წაკითხვა
თუ (Wire.available () == 1)
{
მონაცემები = Wire.read ();
}
}
// მონაცემების კონვერტაცია
T3 = (მონაცემები [1] * 256.0) + მონაცემები [0];
// დაიწყეთ I2C გადაცემა
Wire.beginTransmission (Addr);
// მონაცემთა რეესტრის გაგზავნა
Wire.write (0x28 | 0x80);
// შეაჩერე I2C გადაცემა
Wire.endTransmission ();
// მოითხოვეთ 4 ბაიტი მონაცემები
მავთული. მოთხოვნა (Addr, 4);
// წაიკითხეთ 4 ბაიტი მონაცემები
// ტენიანობა msb, ტენიანობა lsb, temp msb, temp lsb
თუ (Wire. Available () == 4)
{
val [0] = Wire.read ();
val [1] = Wire.read ();
val [2] = Wire.read ();
val [3] = Wire.read ();
}
// მონაცემების კონვერტაცია
float ტენიანობა = (val [1] * 256.0) + val [0];
ტენიანობა = ((1.0 * H1) - (1.0 * H0)) * (1.0 * ტენიანობა - 1.0 * H2) / (1.0 * H3 - 1.0 * H2) + (1.0 * H0);
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 ("ტემპერატურა ფარენჰეიტში:");
Serial.print (fTemp);
Serial.println ("F");
დაგვიანება (500);
}
ნაბიჯი 4: პროგრამები:
HTS221 შეიძლება გამოყენებულ იქნას სხვადასხვა სამომხმარებლო პროდუქტში, როგორიცაა ჰაერის დამატენიანებლები და მაცივრები და ა.შ.
გირჩევთ:
როგორ გამოვიყენოთ DHT12 I2C ტენიანობისა და ტემპერატურის სენსორი არდუინოსთან ერთად: 7 ნაბიჯი
როგორ გამოვიყენოთ DHT12 I2C ტენიანობის და ტემპერატურის სენსორი არდუინოსთან ერთად: ამ გაკვეთილში ჩვენ ვისწავლით თუ როგორ გამოიყენოთ DHT12 I2C ტენიანობის და ტემპერატურის სენსორი არდუინოსთან და აჩვენეთ ღირებულებები OLED ეკრანზე. უყურეთ ვიდეოს
ტენიანობისა და ტემპერატურის დამკვირვებელი ჟოლოს Pi გამოყენებით SHT25 პითონში: 6 ნაბიჯი
ტენიანობის და ტემპერატურის დამკვირვებელი ჟოლოს Pi გამოყენებით SHT25 პითონში: როგორც ჟოლოს პიის ენთუზიასტი, ჩვენ მოვიფიქრეთ მასზე უფრო სანახაობრივი ექსპერიმენტები. ამ კამპანიაში ჩვენ გავაკეთებთ ტენიანობისა და ტემპერატურის დამკვირვებელს, რომელიც ზომავს ტენიანობასა და ტემპერატურას ჟოლოს პი და SHT25, Humidi
Arduino AMS5812_0050-D-B წნევისა და ტემპერატურის სენსორის სახელმძღვანელო: 4 ნაბიჯი
Arduino AMS5812_0050-D-B წნევისა და ტემპერატურის სენსორის სახელმძღვანელო: AMS5812 გაძლიერებული წნევის სენსორი ანალოგური და ციფრული გამომავალი არის მაღალი სიზუსტის სენსორი ანალოგური ძაბვის გამომუშავებით და ციფრული I2C ინტერფეისით. იგი აერთიანებს პიეზორესზისტული შეგრძნების ელემენტს სიგნალის კონდიცირების ელემენტთან მისი მუშაობისთვის
Arduino Nano - SI7050 ტემპერატურის სენსორის გაკვეთილი: 4 ნაბიჯი
Arduino Nano - SI7050 ტემპერატურის სენსორის სახელმძღვანელო: SI7050 არის ციფრული ტემპერატურის სენსორი, რომელიც მუშაობს I2C საკომუნიკაციო პროტოკოლზე და გთავაზობთ მაღალ სიზუსტეს მთელ ძაბვისა და ტემპერატურის დიაპაზონში. სენსორის ასეთი მაღალი სიზუსტე მიეკუთვნება სიგნალის ახალ დამუშავებას და ანალურ
ტემპერატურის კითხვა LM35 ტემპერატურის სენსორის გამოყენებით Arduino Uno– ით: 4 ნაბიჯი
ტემპერატურის კითხვა LM35 ტემპერატურის სენსორის გამოყენებით Arduino Uno– ით: გამარჯობა ბიჭებო ამ ინსტრუქციებში ჩვენ ვისწავლით თუ როგორ გამოიყენოთ LM35 არდუინოსთან ერთად. Lm35 არის ტემპერატურის სენსორი, რომელსაც შეუძლია წაიკითხოს ტემპერატურის მნიშვნელობები -55 ° C– დან 150 ° C– მდე. ეს არის 3 ტერმინალური მოწყობილობა, რომელიც უზრუნველყოფს ტემპერატურის პროპორციულ ანალოგიურ ძაბვას. მაღალი