Trang chủ Điện - Điện tửArduinoHiển thị nhiệt độ LM35 lên LCD 16×2

Hiển thị nhiệt độ LM35 lên LCD 16×2

bởi Admin
61 lượt xem 4 Phút đọc

Mục tiêu

  • Đọc nhiệt độ từ cảm biến LM35 qua chân analog.
  • Hiển thị nhiệt độ lên màn hình LCD 16x2 (I2C) hoặc OLED I2C.

Phần cứng cần có

  • Arduino Uno/Nano
  • Cảm biến LM35
  • Dây nối Breadboard

Kết nối phần cứng

LM35

  • Chân 1 (VCC) → 5V
  • Chân 2 (OUT) → A0
  • Chân 3 (GND) → GND

LCD 16x2 I2C

  • VCC → 5V
  • GND → GND
  • SDA → A4
  • SCL → A5

Cài thư viện

Vào Tools → Manage Libraries và cài đặt:

  • LiquidCrystal_I2C (cho LCD)

Code hiển thị nhiệt độ từ LM35 lên LCD 16x2 I2C

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

const int analogPin = A0;
const float voltage = 5.0;
const float sensitivity = 0.01;

LiquidCrystal_I2C lcd(0x27, 16, 2); // Địa chỉ có thể là 0x27 hoặc 0x3F

// Định nghĩa ký tự độ (°)
byte degree[8] = {
  0b00000,
  0b00110,
  0b01001,
  0b00110,
  0b00000,
  0b00000,
  0b00000,
  0b00000
};

void setup() {
  lcd.init();
  lcd.backlight();
// Tạo ký tự độ tại vị trí 0 trong bộ nhớ CGRAM của LCD
  lcd.createChar(0, degree);
}

void loop() {
  int sensorValue = analogRead(analogPin);
  float voltageRead = sensorValue * voltage / 1023.0;
  float temperatureC = voltageRead / sensitivity;

  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Nhiet do:");
  lcd.print(temperatureC);
  lcd.write(byte(0));
  lcd.print("C");   
  lcd.setCursor(2, 1);
  lcd.print("LM35 Sensor");

  delay(1000);
}

Demo

GND VCC SD A SC L

Giải thích các hàm quan trọng

  • lcd.init(): Khởi tạo giao tiếp I2C cho LCD
  • lcd.setCursor(x, y): Đặt vị trí con trỏ để in dữ liệu
  • lcd.print(): In ra màn hình LCD
  • lcd.clear(): Xóa màn hình
  • analogRead(A0): Đọc giá trị điện áp từ chân analog (0–1023).
  • voltageRead = sensorValue * 5.0 / 1023.0: Chuyển giá trị ADC về điện áp thực.
  • temperatureC = voltageRead / 0.01: LM35 xuất 10mV cho mỗi °C, nên chia để ra nhiệt độ.
  • lcd.setCursor(x, y)lcd.print(): Hiển thị dữ liệu trên LCD.

Mở rộng

  • Thêm nút nhấn để chuyển đổi giữa °C và °F.
  • Lưu nhiệt độ cao nhất/thấp nhất trong ngày.
  • Hiển thị biểu tượng hoặc biểu đồ nhỏ trên OLED.
Lưu ý: LM35 không cần thư viện, chỉ cần đọc analog và tính toán điện áp → nhiệt độ. Hãy đảm bảo dây nối chắc chắn để tránh nhiễu tín hiệu.

Để lại bình luận

Focus Mode

Đã phát hiện trình chặn quảng cáo

Vui lòng hỗ trợ chúng tôi bằng cách tắt tiện ích chặn quảng cáo (AdBlocker) trên trình duyệt của bạn khi truy cập trang web của chúng tôi.