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
10 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

Bộ điều khiển PID - ứng dụng phần 2 - xe dò line dùng thuật toán PID

Tiép nối bài viết về xe dò line cảm ơn Đỗ Hữu Toàn đã viết hộ mình phần 4. hôm nay mình sẽ làm cho chiếc xe dò line đi mượt và có hồn hơn 

lên
34 thành viên đã đánh giá bài viết này hữu ích.
Các bài viết cùng tác giả

Hướng dẫn điều khiển động cơ bước với thư viện Accel Stepper và driver điều khiển động cơ bước A4988 hoặc DRV8825

Mình thấy có nhiều bạn hỏi về stepper và cách điều khiển nó. Đồng thời thấy vấn đề điều khiển động cơ bước là một vấn đề kinh điển nhưng lại chưa có trên Cộng đồng. Ngoài ra, vì chức năng điểm cộng đồng khá hay và mình cũng muốn có quà nên hôm nay mình sẽ hướng dẫn rất kỹ với các bạn! Thư viện mình dùng là thư viện AccelStepper chứ không phải thư viện stepper mặc định của Arduino nên có thể điều khiển đồng thời nhiều stepper và kết hợp với các thư viện bất đồng bộ khác.

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

Lập trình ATtiny45 hoăc ATtiny85 với Codebender

Hôm nay có vấn đề đụng đến attiny45 mà mình lại lười tải Arduino IDE 1.0.6 để lập trình cho dễ, thành ra quyết định dùng codebender để lập trình. Mình tìm trên cộng đồng mà không có bài nào nói về vấn đề này, nhưng lại có bài của ksp khá liên quan, chỉ cần chỉnh file boards.txt rồi up lên một tí là được. Nên mình quyết định viết bài cho anh em sau này gặp thì giải quyết cho dễ

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