BÀI 12. HIỂN THỊ GIÁ TRỊ CẢM BIẾN NHIỆT ĐỘ LÊN MÀN HÌNH LCD 16x02

Bởi nguyenthanhphi (01/08/2018) 1 Bình luận

Giới thiệu cảm biến nhiệt độ LM35:

Cảm biến nhiệt độ LM35 là một loại cảm biến tương tự rất hay được ứng dụng trong các ứng dụng đo nhiệt độ thời gian thực ( nhưng vẫn còn sai số lớn) . Với kích thước nhỏ và giá thành rẻ là một trong những ưu điểm của nó. Vì đây là cảm biến tương tự (analog sensor) nên ta có thể dễ dàng đọc được giá trị của nó bằng hàm analogRead().

Nhiệt độ được xác định bằng cách đo hiệu điện thế ngõ ra của LM35.

→ Đơn vị nhiệt độ: °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ông suất tiêu thụ là 60uA.

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 độ.

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 (giống y hệt cách đọc giá trị biến trở), bạn sẽ có được nhiệt độ (0-100ºC) bằng công thức:

float temperature = (5.0*analogRead(A0)*100.0/1024.0);

Với LM35, bạn có thể tự tạo cho mình mạch cảm biến nhiệt độ sử dụng LM35 và tự động ngắt điện khi nhiệt độ vượt ngưỡng tối đa, đóng điện khi nhiệt độ thấp hơn ngưỡng tối thiểu thông qua module rơ le...

Phần cứng chuẩn bị:

  • Mạch Arduino (ở đây mình sử dụng Arduino UNO).
  • Breadboard còn gọi testboard.
  • 1 cảm biến nhiệt độ LM35.
  • Dây cắm test board.
  • 1 Module I2C cho LCD.
  • 1 LCD 16x02.

Lắp mạch :

Lập trình điều khiển:

#include <Wire.h> 
#include <LiquidCrystal_I2C.h>
int sensorPin = A0;    // chân analog của cảm biến LM35 nối với chân A0 của arduino.
LiquidCrystal_I2C lcd(0x3F,16,2);  
void setup()
{
  Serial.begin(9600);    //Khởi động Serial ở mức baudrate 9600
  lcd.init();                      
  lcd.backlight();
  lcd.print("NHIET DO");
}
void loop()
{
  //đọc giá trị từ cảm biến LM35
   int reading = analogRead(sensorPin);  
  //tính ra giá trị hiệu điện thế (đơn vị Volt) từ giá trị cảm biến
   float voltage = reading * 5.0 / 1024.0; 
   // cứ mỗi 10mV = 1 độ C.
   // Vì vậy nếu biến voltage là biến lưu hiệu điện thế (đơn vị Volt)
    float temp = voltage * 100.0;
   Serial.println(temp);
   lcd.setCursor(0, 1);
   lcd.print("T =");
   lcd.setCursor(5, 1);
   lcd.print(temp);
   delay(1000);    //đợi 1 giây cho lần đọc tiếp theo
}

 

 

Các bạn có thể tham khảo thêm eBooks Lập Trình Arduino Từ A đến Z dành cho người mới bắt đầu, sẽ giúp các bạn học lập trình Arduino dễ dàng hơn.

Mọi chi tiết xin liên hệ:

Hotline: 01695 304 802

Email: tdhshop1991@gmail.com

Facebooks: https://www.facebook.com/profile.php?id=100010302510283

Đóng góp ý kiến

Bình luận(1)

  • Bình luận bởi xuan thanh
    em làm cảm biến nhiệt độ lm35 như trên nhưng khi chạy thi no hiển thị nhiệt độ không đúng và khi thư với bat lửa thì nhiệt độ giảm xuông. Cho em xin ý kiến trường hợp như vậy với.cam ơn