Hướng dẫn sử dụng cảm biến nhiệt độ TMP36 - Khoảng đo từ -40 đến 125 độ C

Mình thấy cảm biến nhiệt độ LM35 rất rẻ và hoạt động cũng tương đối chính xác. Tuy nhiên, độ bền của nó không cao vì mình thấy mình chỉ dùng cảm biến LM35 trong khoảng thời gian 3 tháng, sau đó phải thay cảm biến khác (để đo nhiệt độ luộc gà). Bản thân mình không thích điều đó nên thử dùng một cảm biến khác cũng có chức năng tương tự là TMP36 và thấy nó hoạt động bền hơn (đã đến tháng thứ 4 nhưng chưa hư). Mình xin chia sẻ với các bạn nhé. Loại này hơi khó tìm và không thông dụng, nhưng nó bền hơn hẳn LM35 các bạn nhé.

I. Chuẩn bị

II. Giới thiệu về TMP36

Cảm biến này nhìn qua thì chúng ta thấy giống như một transistor vậy. TMP36 sử dụng rất đơn giản, nếu nhìn thẳng vào mặt phẳng thì:

  • Chân số 1 là chân cấp nguồn 5V (chân này bạn có thể cắm vào nguồn 5V của Arduino khi sử dụng nó với Arduino).
  • Chân thứ 2 là chân xuất tín hiệu tương tự (tín hiệu dạng xung).
  • Chân thứ 3 là chân nối mát hay chân GND(khi sử dụng với Arduino các bạn có thể lấy từ chân Gnd từ Arduino.

Cảm biến TMP 36 này xuất tín hiệu là tín hiệu điện áp, tín hiệu này tỷ lệ thuận với nhiệt độ. Cứ 10mV tương đương với 1 độ C, nó có thể đo được nhiệt độ từ -40 ==>125 độ C (hơn hẳn so với LM35 các bạn nhé). Bởi vì nó xuất một tín hiệu tương tự nên khi làm việc với Arduino chúng ta sử dụng hàm analogRead(). Khi Arduino làm việc nó sẽ trả tín hiệu tương tự này về giá trị từ 0-1023 tùy thuộc vào điện áp từ 0-5V(5000mV). Điện áp thực tế sẽ là điện áp mà Arduino đọc được sau đó nhân với (5000/1024). Sau đó chúng ta phải trừ đi điện áp bù 400 và chia cho 10 sẽ ra kết quả là độ C. Bây giờ chúng ta cùng ráp vào mạch nhé!

III. Ráp mạch nào

IV. Lập trình

#define SENSOR_PIN A0


float voltage = 0; // Thiết lập một số giá trị ban đầu

float sensor = 0;

float celsius = 0;

float fahrenheit = 0;

void setup() {
	Serial.begin(9600);   // Bật serial monitor
}


void loop()

{              // Bắt đầu đo

	sensor = analogRead(SENSOR_PIN);
	
	voltage = (sensor*5000)/1024; // Chuyển đổi tín hiệu cảm biến sang mili Volt
	
	voltage = voltage-400;        // Trừ đi điện áp bù
	
	celsius = voltage/10;         // Chuyển đổi mV sang độ C
	
	fahrenheit = ((celsius * 1.8)+32); // Đổi độ C sang độ F
	
	Serial.print("Nhiet do: ");
	
	Serial.print(celsius,2);
	
	Serial.println(" do C");
	
	Serial.print("Nhiet do: ");
	
	Serial.print(fahrenheit,2);
	
	Serial.println(" do F");
	
	Serial.println("____");
	
	delay (1000); // delay 1s để khổi trôi dư liệu
}

V. Lời kết

Chúc các bạn thành công!

Những hình ảnh về dự án: 
Bài viết truyền cảm hứng: 
lên
9 thành viên đã đánh giá bài viết này hữu ích.
Các dự án được truyền cảm hứng

Select any filter and click on Apply to see results

Các bài viết cùng tác giả

Làm thế nào để điều khiển LED RGB - Led 3 màu

Cũng đã khá lâu kể từ lần cuối mình viết bài chia sẻ với Cộng đồng Arduino Việt Nam. Mấy hôm nay, mình có một dự án liên quan đến LED RGB (Led 3 màu - led có thể biểu diễn tất cả các màu), mà tìm tài liệu trên Cộng đồng Arduino lại không có, vì vậy, mình sẽ viết một bài viết để chia sẻ cho các bạn đi sau.

Mục tiêu mà mình hướng đến và muốn chia sẻ trong bài viết này đó là giới thiệu về LED RGB và chỉ các bạn điều khiển 1 con LED RGB. Còn muốn điều khiển nhiều con LED RGB thì cần nhiều đồ hơn và phức tạp hơn nên mình xin nhường lại vấn đề này cho các bạn tìm hiểu thêm và chia sẻ cho cộng đồng.

lên
36 thành viên đã đánh giá bài viết này hữu ích.