lập trình cảm biến nhiệt độ lm35

LM35 là loại cảm biến tương tự, hoạt động chính xác, sai số nhỏ, kích thước gọn nhẹ, có giá thành hợp lý nên được ứng dụng nhiều trong đo nhiệt độ ở thời gian thực rất phổ biến. Loại cảm biến nhiệt độ tương tự này cũng rất dễ dàng đọc thông số, giá trị đo bằng các hàm đơn giản.

Cảm biến nhiệt độ 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 độ. Như vậy, bằng cách đưa vào chân bên trái của cảm biến LM35 hiệu điện thế 5V, chân phải nối đất, đo hiệu điện thế ở chân giữa bằng các pin A0 trên Arduino, bạn sẽ có được nhiệt độ (0-100ºC).

Sơ đồ chân

Mạch đo nhiệt độ dùng cảm biến LM35 và Arduino

Số chân Tên Chức năng 1 Vs Điện áp nguồn; 5V (+4V đến 30V) 2 Vout Điện áp ra (-1V đến 6V) 3 GND Chân nối đất

Thông số kỹ thuật

  • Điện áp đầu vào từ 4V đến 30V
  • Điện áp ra: -1V đến 6V
  • Công suất tiêu thụ là 60uA
  • Độ phân giải điện áp đầu ra là 10mV/oC
  • Độ chính xác cao ở 25 C là 0.5 C
  • Trở kháng đầu ra thấp 0.1 cho 1mA tải
  • Độ chính xác thực tế: 1/4°C ở nhiệt độ phòng và 3/4°C ngoài khoảng -55°C tới 150°C

Tính toán nhiệt độ đầu ra của LM35

Việc đo nhiệt độ sử dụng LM35 thông thường chúng ta thực hiện bằng cách

Đo nhiệt độ dùng cảm biến LM35 và Arduino

Như vậy ta có:

VOUT = t*k

Trong đó:

  • VOUT là điện áp đầu ra của cảm biến LM35
  • t là nhiệt độ môi trường (oC)
  • k là hệ số theo nhiệt độ của LM35 (10mV/oC)

VOUT = t*10mV/oC

Giả sử điện áp cấp cho LM35 là 5V. Bộ chuyển đổi ADC gồm 10 bit tức là 1024 (210) mức.

Vậy mỗi bước thay đổi của LM35 sẽ là n = 5/(210) = 5/1024

Giá trị ADC đo được từ điện áp đầu vào của LM35 là

Giá trị ADC = VOUT/n = (t* 10-2*1024) / 5

Vậy nhiệt độ ta đo được t (oC) = Giá trị ADC/2,048

Tương tự với ADC 11 bit và VCC khác ta cũng tính như trên để được công thức lấy nhiệt độ

Sơ đồ mạch và giải thích

Đo nhiệt độ dùng cảm biến LM35 và Arduino

Sơ đồ mạch cho nhiệt kế số sử dụng cảm biến nhiệt độ Arduino LM35, được thể hiện trong hình trên. Ở đây màn hình LCD 16×2 được kết nối trực tiếp với Arduino trong chế độ 4-bit. Chân dữ liệu của LCD là RS, EN, D4, D5, D6, D7 được kết nối với số các chân 7, 6, 5, 4, 3, 2 của arduino. Cảm biến nhiệt độ LM35 cũng được kết nối với chân Analog A0 của Arduino, tạo ra nhiệt độ 1 độ C trên mỗi thay đổi đầu ra 10mV tại chân đầu ra của nó.

Chương trình

#include<LiquidCrystal.h>LiquidCrystal lcd(7,6,5,4,3,2);

#define sensor A0

Sau khi nhận được giá trị tương tự (analog) tại chân A0, Arduino sẽ đọc giá trị đó bằng cách sử dụng hàm đọc Analog và lưu trữ giá trị đó trong một biến. Và sau đó bằng cách áp dụng công thức đã cho để chuyển đổi nó sang nhiệt độ.

float analog_value=analogRead(analog_pin);

float nhietdo=analog_value*factor*100

Trong đó

factor=5/1024

analog_value= giá trị ngõ ra của cảm biến nhiệt độ

float reading=analogRead(sensor);float nhietdo=reading*(5.0/1023.0)*100;delay(10);

Ký hiệu độ (o) ở đây được tạo bằng cách sử dụng phương pháp ký tự tùy chỉnh

byte degree[8] ={0b00011,0b00011,0b00000,0b00000,0b00000,0b00000,0b00000,0b00000};

Rate this post