Хичээл 23 Термометр

Энэхүү хичээлээр бид LCD дэлгэц дээр орчны температурын утгыг хэвлэж харуулах бөгөөд үүнийг хийхдээ термисторыг ашиглах юм. Үр дүнд нь бид термистор гэж юу болох түүнийг хэрхэн ашиглах талаар мэдлэгтэй болох юмаа.

Хэрэглэгдэхүүн:

  1. Ардиуно 1ш
  2. LCD дэлгэц 1ш
  3. 10к ом эсэргүүцэл 1ш
  4. Термистор 1ш
  5. Потенциометр 1ш
  6. Туршилтын хавтан 1ш
  7. М-М утас 18ш

Термистор гэж юу вэ?

Термистор нь температураас хамааран өөрчлөгддөг эсэргүүцэл юм. Тэд маш мэдрэмтгий бөгөөд температурын маш бага өөрчлөлтөд хариу үйлдэл үзүүлдэг. Тэдгээрийг тодорхой температурыг хадгалах шаардлагатай үед, мөн орчны температурыг 50 ° C-аас доошгүй байлгахад хамгийн сайн ашигладаг. Ардиуно ашиглан термисторын эсэргүүцлийн хэмжээ температураас хэрхэн хамаардаг талаар судлах нь бидний ажлын гол зорилго юм.

Thermistor

Зарчмын схем

Зарчмын схем
Зарчмын схем

Программ

Программын гол зорилго нь термисторын мэдээллийг боловсруулан LCD дэлгэц дээр орчны температуурын утгыг хэвлэх бөгөөд жишээ болгон дэлгэц дээр температурын утгыг цельс болон фаренгейтийн хувиараар хэвлэх кодыг орууллаа. Энэхүү кодыг туршиж зөв ажиллаж байгааг шалгаж дүгнэлт хийгээрэй.

#include <LiquidCrystal.h>
int tempPin = 0;
//                BS  E  D4 D5  D6 D7
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
void setup()
{
  lcd.begin(16, 2);
}
void loop()
{
  int tempReading = analogRead(tempPin);
  // This is OK
  double tempK = log(10000.0 * ((1024.0 / tempReading - 1)));
  tempK = 1 / (0.001129148 + (0.000234125 + (0.0000000876741 * tempK * tempK )) * tempK );       //  Temp Kelvin
  float tempC = tempK - 273.15;            // Convert Kelvin to Celcius
  float tempF = (tempC * 9.0)/ 5.0 + 32.0; // Convert Celcius to Fahrenheit
  /*  replaced
    float tempVolts = tempReading * 5.0 / 1024.0;
    float tempC = (tempVolts - 0.5) * 10.0;
    float tempF = tempC * 9.0 / 5.0 + 32.0;
  */
  // Display Temperature in C
  lcd.setCursor(0, 0);
  lcd.print("Temp         C  ");
  // Display Temperature in F
  //lcd.print("Temp         F  ");
  lcd.setCursor(6, 0);
  // Display Temperature in C
  lcd.print(tempC);
  // Display Temperature in F
  //lcd.print(tempF);
  delay(500);
}
Бодит зураг