Đo nhiệt độ bằng Cảm biến LM35 sử dụng Arduino Uno

11 Tháng 04 2019 | Đăng bởi: Nguyễn Cường

 

Hôm nay chúng ta sẽ cùng nhau tìm hiểu về cách sử dụng cảm biến nhiệt độ LM35.

Cảm biến có ưu điểm hoạt động khá chính xác và ít sai số đồng thời kích thước nhỏ, giá thành thấp nên được sử dụng rất nhiều trong các ứng dụng đo nhiệt độ thời gian thực.

Qua bài viết này, các bạn sẽ tìm hiểu thêm một hàm mới là analogRead().

  • Đọc bài viết về hàm analogRead(pin).

Cảm biến nhiệt độ LM35

  • LM35 là một cảm biến nhiệt độ Analog (A0 đến A5 trên board Arduino Uno).

  • LM35 không cần phải canh chỉnh nhiệt độ khi sử dụng.

  • LM35 thay đổi nhiệt độ nhanh và chính xác.

 

cảm biến nhiệt độ LM35

Cảm biến nhiệt độ LM35.

 

 

Cảm biến nhiệt độ LM35 là bộ cảm biến nhiệt mạch tích hợp chính xác cao mà điện áp đầu ra của nó tỷ lệ tuyến tính với nhiệt độ theo thang độ Celsius.                            

Thông số kỹ thuật của cảm biến:

  • Điện áp hoạt động: 4-20V DC.

  • Công suất tiêu thụ: 60uA.

  • Khoảng đo nhiệt độ: -55°C đến 150°C.

  • Nhiệt độ thay đổi tuyến tính: 10mV/°C.

  • Độ chính xác thực tế: 1/4°C ở nhiệt độ phòng và 3/4°C ngoài khoảng 2°C tới 150°C.

Cảm biến LM35 hoạt động bằng cách cho ra một giá trị hiệu điện thế nhất định tại chân Vout (chân giữa) ứng với mỗi mức nhiệt độ.

Sơ đồ đấu nối

Arduino Uno

Cảm biến nhiệt độ LM35

VCC

+Vs (4 - 20V)

GND

GND

A0

VOUT

     

 Sơ đồ nguyên lý lm35 với arduino uno

 

Các linh kiện cần thiết cho dự án

Code mẫu

int sensorPin = A0;
void setup()
{
   Serial.begin(9600);
}
void loop()
{
  int reading = analogRead(sensorPin);  
  float voltage = reading * 5.0 / 1024.0;
  float temp = voltage * 100.0;
  Serial.println(temp);
  delay(1000);
}

Giải thích Code

reading = analogRead(sensorPin);


Hàm analogRead() có nhiệm vụ đọc giá trị điện áp từ một chân Analog (ADC), hàm này luôn trả về 1 số nguyên nằm trong khoảng từ 0 đến 1023 tương ứng với thang điện áp (mặc định) từ 0 đến 5V. Hàm analogRead() cần 100 micro giây để thực hiện.

Vậy reading = analogRead(sensorPin) có nghĩa là đọc giá trị điện áp từ cảm biến nhiệt độ LM35.

 

float voltage = reading * 5.0 / 1024.0;

Công thức tính ra giá trị hiệu điện thế từ giá trị cảm biến (đơn vị Volt) Voltage = giá trị điện áp từ cảm biến chia cho mức analog cao nhất (1024)  rồi nhân với mức điện áp 5V.

Như ở trên ta thấy nhiệt độ thay đổi tuyến tính 10mV/°C nên đổi từ Vol sang °C thì ta chỉ cần nhân giá trị điện thế với 100 là ra nhiệt độ.

 

float temp = voltage * 100.0;

Bài viết liên quan

Viết bình luận: