Kiến Thức Điện Tử

Thiết kế mạch đo nhiệt độ dùng cảm biến Lm35

Một trong những cách dễ nhất và không tốn kém để thêm cảm biến nhiệt độ trong dự án Arduino của bạn là sử dụng Cảm biến nhiệt độ LM35. Các cảm biến này khá chính xác và không cần các thành phần bên ngoài để hoạt động. Vì vậy, chỉ với một vài kết nối và một số mã Arduino, bạn sẽ nhanh chóng cảm nhận được nhiệt độ! Dưới đây là Thiết kế mạch đo nhiệt độ dùng cảm biến Lm35 hãy cùng theo dõi với MCA nhé !

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

LM35 là một cảm biến nhiệt độ độ chính xác, điện áp thấp do Texas Instruments sản xuất. Nó là một con chip cung cấp đầu ra điện áp tỷ lệ tuyến tính với nhiệt độ tính bằng ° C và do đó, rất dễ sử dụng với Arduino.

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

Cảm biến nhiệt độ LM35 khá chính xác, không bao giờ bị hao mòn, hoạt động trong nhiều điều kiện môi trường và không yêu cầu các bộ phận bên ngoài hoạt động. Ngoài ra, cảm biến LM35 không yêu cầu hiệu chuẩn và cung cấp độ chính xác điển hình là ± 0,5 ° C ở nhiệt độ phòng và ± 1 ° C trong phạm vi nhiệt độ từ −55 ° C đến + 155 ° C đầy đủ.

Cảm biến có thể được cấp nguồn bằng nguồn điện 4V đến 30V và tiêu thụ ít hơn 60µA trong quá trình chuyển đổi nhiệt độ hoạt động, cung cấp khả năng tự làm nóng rất thấp (dưới 0,08 ° C trong không khí tĩnh).

Dưới đây là thông số kỹ thuật đầy đủ:

Nguồn cấp 4V đến 30V
Current draw 60µA
Phạm vi nhiệt độ −55 ° C đến + 155 ° C
Sự chính xác ± 0,5 ° C
Hệ số quy mô đầu ra 10mV / ° C
Đầu ra ở 25 ° C 250mV

Nhược điểm duy nhất của cảm biến LM35 là nó yêu cầu điện áp phân cực âm để đo nhiệt độ âm. Vì vậy, nếu bạn đang có ý định sử dụng cảm biến để đo nhiệt độ âm, thì bạn nên sử dụng cảm biến nhiệt độ TMP36. TMP36 của Thiết bị Tương tự khá chính xác (-40 ° C đến 125 ° C) và có lợi thế là có thể đo nhiệt độ âm mà không cần điện áp phân cực âm. Bạn có thể tìm thấy một hướng dẫn dành riêng cho TMP36 bên dưới.

Một giải pháp thay thế tốt hơn cho LM35 là sử dụng cảm biến nhiệt độ kỹ thuật số như DS18B20 đi kèm trong cùng một gói. Cảm biến nhiệt độ kỹ thuật số có khả năng chống ồn tốt hơn, rất hữu ích khi đặt cảm biến ở khoảng cách xa hoặc trong môi trường nhiễu điện.

Nguyên lý làm việc LM35

LM35 sử dụng kỹ thuật trạng thái rắn để đo nhiệt độ. Nó sử dụng thực tế là điện áp giảm giữa đế và bộ phát (điện áp thuận – V be ) của bóng bán dẫn được kết nối với Diode giảm với tốc độ đã biết khi nhiệt độ tăng. Bằng cách khuếch đại chính xác sự thay đổi điện áp này, có thể dễ dàng tạo ra tín hiệu tương tự tỷ lệ thuận với nhiệt độ.

Mối quan hệ tuyến tính giữa điện áp thuận và nhiệt độ là lý do tại sao các bóng bán dẫn kết nối với diode được sử dụng làm thiết bị đo nhiệt độ. Về cơ bản đây là cách đo nhiệt độ, mặc dù đã có một số cải tiến trong kỹ thuật này trong những năm qua.

Cách đo nhiệt độ với LM35

LM35 rất dễ sử dụng; chỉ cần kết nối chân trái với nguồn (4V đến 30V) và chân phải với đất (giả sử mặt phẳng của cảm biến hướng về phía bạn). Khi đó chân giữa sẽ có điện áp tương tự tỷ lệ thuận (tuyến tính) với nhiệt độ tính bằng ° C. Điều này có thể dễ dàng nhận thấy trong đặc tính điện áp đầu ra và nhiệt độ. Lưu ý rằng điện áp đầu ra tương tự độc lập với nguồn điện.

Để chuyển đổi điện áp thành nhiệt độ, chỉ cần sử dụng công thức cơ bản:

Nhiệt độ (° C) = Vout * 100

Ví dụ: nếu điện áp ra là 0,5V có nghĩa là nhiệt độ là 0,5 * 100 = 50 ° C

Kiểm tra cảm biến LM35

Kiểm tra LM35 khá dễ dàng, chỉ cần kết nối chân trái với nguồn điện 4V đến 30V (Bốn pin AA hoạt động tốt) và chân phải với đất (giả sử mặt phẳng của cảm biến hướng về phía bạn). Bây giờ hãy kết nối đồng hồ vạn năng của bạn ở chế độ điện áp DC với mặt đất và chân cắm ở giữa. Ở nhiệt độ phòng (25 ° C), điện áp nên vào khoảng 0,25V.

Thử bóp nhẹ vỏ nhựa của cảm biến để xem nhiệt độ tăng lên.

Hoặc thử chạm vào cảm biến bằng một cục nước đá (trong túi nhựa để mạch của bạn không tiếp xúc với nước) và xem nhiệt độ giảm xuống.

Sơ đồ chân cảm biến LM35

LM35 có ba dạng khác nhau, nhưng loại phổ biến nhất là gói TO-92 3 chân, trông giống như một bóng bán dẫn. Hãy xem sơ đồ chân của nó.

  • Vs là nguồn cung cấp cho cảm biến có thể nằm trong khoảng từ 4V đến 30V.
  • Voutpin tạo ra một điện áp tương tự tỷ lệ thuận (tuyến tính) với nhiệt độ. Nó phải được kết nối với đầu vào Analog (ADC).
  • GND là một chân nối đất.

Kết nối Cảm biến nhiệt độ LM35 với Arduino

Kết nối LM35 với Arduino rất đơn giản. Bạn chỉ cần kết nối ba chân: hai chân để cấp nguồn và một chân để đọc giá trị cảm biến.

Cảm biến có thể được cấp nguồn từ 5V. Điện áp dương kết nối với ‘+ Vs’ và nối đất với ‘GND’. Chân giữa ‘Vout’ là đầu ra tín hiệu tương tự từ cảm biến và kết nối với đầu vào tương tự A0 của Arduino.

Dưới đây là tóm tắt cho các thử nghiệm với LM35:

sơ đồ mạch điều khiển nhiệt độ
sơ đồ mạch điều khiển nhiệt độ

Để đo nhiệt độ không khí, hãy để cảm biến ở ngoài trời hoặc gắn nó vào vật bạn muốn đo nhiệt độ, chẳng hạn như tản nhiệt.

Đọc dữ liệu nhiệt độ tương tự

Như bạn có thể thấy trong sơ đồ đấu dây ở trên, đầu ra của LM35 được kết nối với một trong các đầu vào tương tự của Arduino. Giá trị của đầu vào tương tự này có thể được đọc với analogRead()chức năng.

Tuy nhiên, analogRead()chức năng này không thực sự trả lại điện áp đầu ra của cảm biến. Thay vào đó, nó ánh xạ điện áp đầu vào giữa 0 và điện áp tham chiếu ADC (về mặt kỹ thuật, đó là điện áp hoạt động, tức là 5V hoặc 3,3V trừ khi bạn thay đổi nó) thành các giá trị số nguyên 10 bit khác nhau, từ 0 đến 1023. Để chuyển đổi giá trị này trở lại điện áp đầu ra của cảm biến, sử dụng công thức sau:

Vout = (đọc từ ADC) * (5/1024)

Công thức này chuyển đổi số 0-1023 từ ADC thành 0-5V

Sau đó, để chuyển đổi vôn thành nhiệt độ, hãy sử dụng công thức sau:

Nhiệt độ (° C) = Vout * 100

Mã Arduino – Nhiệt kế đơn giản

Bản phác thảo sau đây cho thấy một cách nhanh chóng để đọc cảm biến nhiệt độ LM35 và có thể làm cơ sở cho các thí nghiệm và dự án thực tế hơn. Nó chỉ đơn giản là đọc giá trị từ LM35 bằng cổng analog A0 và in nhiệt độ hiện tại (cả ° C và ° F) trên màn hình nối tiếp. Tiếp tục và tải nó lên Arduino của bạn.

// Define the analog pin, the LM35's Vout pin is connected to
#define sensorPin A0

void setup() {
  // Begin serial communication at 9600 baud rate
  Serial.begin(9600);
}

void loop() {
  // Get the voltage reading from the LM35
  int reading = analogRead(sensorPin);

  // Convert that reading into voltage
  float voltage = reading * (5.0 / 1024.0);

  // Convert the voltage into the temperature in Celsius
  float temperatureC = voltage * 100;

  // Print the temperature in Celsius
  Serial.print("Temperature: ");
  Serial.print(temperatureC);
  Serial.print("\xC2\xB0"); // shows degree symbol
  Serial.print("C  |  ");
  
  // Print the temperature in Fahrenheit
  float temperatureF = (temperatureC * 9.0 / 5.0) + 32.0;
  Serial.print(temperatureF);
  Serial.print("\xC2\xB0"); // shows degree symbol
  Serial.println("F");

  delay(1000); // wait a second between readings
}

Bạn sẽ thấy đầu ra sau đây trong màn hình nối tiếp.

Giải thích mã:

Bản phác thảo bắt đầu bằng cách xác định chân Arduino mà chân Vout của cảm biến được kết nối.

#define sensorPin A0

Trong phần thiết lập, chúng tôi khởi tạo kết nối nối tiếp với máy tính.

void setup() {
  Serial.begin(9600);
}

Trong vòng lặp, đầu tiên chúng ta đọc tín hiệu tương tự từ LM35 bằng cách sử dụng analogRead()hàm.

int reading = analogRead(sensorPin);

Tiếp theo, chúng ta sẽ sử dụng các công thức mà chúng ta đã thảo luận trước đó trong bài viết để chuyển giá trị đọc tương tự thành điện áp và sau đó thành nhiệt độ.

float voltage = reading * (5.0 / 1024.0);

float temperatureC = voltage * 100;

Tiếp theo, kết quả được in trên Serial Monitor.

Serial.print("Temperature: ");
Serial.print(temperatureC);
Serial.print("\xC2\xB0"); // shows degree symbol
Serial.print("C  |  ");

Giá trị nhiệt độ mà chúng tôi nhận được là độ C (° C). Nó được chuyển đổi sang Fahrenheit (° F) bằng công thức đơn giản và được in trên Serial Monitor.

(° F) = T (° C) × 9/5 + 32

float temperatureF = (temperatureC * 9.0 / 5.0) + 32.0;
Serial.print(temperatureF);
Serial.print("\xC2\xB0"); // shows degree symbol
Serial.println("F");

Sơ đồ mạch cảm biến nhiệt độ lm35 với LCD

Đôi khi bạn nảy ra ý tưởng muốn hiển thị kết quả đo nhiệt độ trong thời gian thực và hiển thị cảnh báo khi nhiệt độ nằm ngoài phạm vi quy định. Sau đó, bạn có thể sẽ cần một màn hình LCD 16 × 2 ký tự thay vì một màn hình nối tiếp.

Trong ví dụ này, chúng tôi sẽ kết nối I2C LCD với Arduino cùng với LM35.

Kết nối I2C LCD khá dễ dàng như bạn có thể thấy trong sơ đồ đấu dây bên dưới. Nếu bạn không quen với màn hình LCD I2C, hãy xem xét việc đọc (ít nhất là đọc lướt) hướng dẫn dưới đây.

Sơ đồ sau đây cho bạn thấy làm thế nào để nối dây mọi thứ.

sơ đồ nguyên lý mạch cảm biến nhiệt độ
sơ đồ nguyên lý mạch cảm biến nhiệt độ

Bản phác thảo sau sẽ in các giá trị nhiệt độ trên I2C LCD. Mã tương tự như ví dụ trước, ngoại trừ các giá trị được in trên I2C LCD.

// Include the LiquidCrystal_I2C library
#include <LiquidCrystal_I2C.h>

// Create a new instance of the LiquidCrystal_I2C class
LiquidCrystal_I2C lcd(0x3F, 16, 2);

// Define a custom degree character
byte Degree[] = {
  B00111,
  B00101,
  B00111,
  B00000,
  B00000,
  B00000,
  B00000,
  B00000
};

// Define the analog pin, the LM35's Vout pin is connected to
#define sensorPin A0

void setup() {
  // Start the LCD and turn on the backlight
  lcd.init();
  lcd.backlight();

  // Create a custom character
  lcd.createChar(0, Degree);
}

void loop() {
  // Get the voltage reading from the LM35
  int reading = analogRead(sensorPin);

  // Convert that reading into voltage
  // Replace 5.0 with 3.3, if you are using a 3.3V Arduino
  float voltage = reading * (5.0 / 1024.0);

  // Convert the voltage into the temperature in Celsius
  float temperatureC = voltage * 100;

  // Print the temperature on the LCD;
  lcd.setCursor(0, 0);
  lcd.print("Temperature:");
  lcd.setCursor(0, 1);
  lcd.print(temperatureC, 1);
  lcd.write(0); // print the custom degree character
  lcd.print("C ");
  
  // Print the temperature in Fahrenheit
  float temperatureF = (temperatureC * 9.0 / 5.0) + 32.0;
  lcd.print(temperatureF, 1);
  lcd.write(0); // print the custom degree character
  lcd.print("F ");

  delay(1000); // wait a second between readings
}

Bạn sẽ thấy kết quả sau trên màn hình LCD:

dothuyhocdientu

Học Điện Tử là trang hướng dẫn về kiến thức điện tử cơ bản đến nâng cao , thiết kế mạch điện tử , các linh kiện điện tử cơ bản nhất Địa chỉ : 27 Tây Mỗ , Quận Nam từ Liêm , Thành Phố Hà Nội #hodientu #dientucoban #machdien

Related Articles

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Back to top button