Mục lục:

Tự làm cảm biến nhiệt độ sử dụng một diode: 3 bước
Tự làm cảm biến nhiệt độ sử dụng một diode: 3 bước

Video: Tự làm cảm biến nhiệt độ sử dụng một diode: 3 bước

Video: Tự làm cảm biến nhiệt độ sử dụng một diode: 3 bước
Video: Bạn sẽ làm gì với cảm biến nhiệt lấy trong bếp từ cũ ? 2024, Tháng mười một
Anonim
Cảm biến nhiệt độ tự làm bằng một diode
Cảm biến nhiệt độ tự làm bằng một diode
Cảm biến nhiệt độ tự làm bằng một diode
Cảm biến nhiệt độ tự làm bằng một diode

Vì vậy, một trong những sự thật về mối nối PN là điện áp giảm phía trước của chúng thay đổi theo dòng điện đi qua và theo nhiệt độ mối nối, chúng tôi sẽ sử dụng điều này để tạo ra một cảm biến nhiệt độ rẻ tiền đơn giản.

Thiết lập này thường được sử dụng trong nhiều Mạch tích hợp để đo nhiệt độ bên trong của nó và nhiều cảm biến nhiệt độ như LM35 nổi tiếng dựa trên đặc tính này.

Chỉ đơn giản là giảm điện áp chuyển tiếp của một diode (là một điểm nối PN duy nhất) thay đổi khi lượng dòng điện đi qua nó thay đổi, cũng như nhiệt độ diode thay đổi, điện áp giảm sẽ thay đổi (Khi nhiệt độ tăng, chuyển tiếp thả giảm giá trị (1,0 miliVolt đến 2,0 miliVolt đối với điốt silicon và 2,5 miliVolt đối với điốt gecmani).

Vì vậy, bằng cách cho một dòng điện không đổi qua diode, điện áp chuyển tiếp giảm xuống bây giờ chỉ thay đổi theo nhiệt độ của diode. Bây giờ chúng ta chỉ cần đo điện áp chuyển tiếp của diode, áp dụng một số phương trình đơn giản và đây là cảm biến nhiệt độ của bạn !!!

Quân nhu

1 - 1n4007 diode # 12 - 1 Kohm điện trở # 13 - Bo mạch Arduino

Bước 1: Sơ đồ mạch

Sơ đồ mạch
Sơ đồ mạch

Như bạn có thể thấy trong giản đồ, nó rất đơn giản. Bằng cách kết nối diode nối tiếp với điện trở hạn chế dòng điện và nguồn điện áp ổn định, chúng ta có thể có được nguồn dòng điện không đổi thô, do đó, điện áp đo được trên diode sẽ chỉ thay đổi do sự thay đổi nhiệt độ. quá thấp đến mức có nhiều dòng điện đi qua diode và tạo ra sự tự nóng lên đáng chú ý trong diode, cũng không phải là điện trở quá cao nên dòng điện đi qua không đủ để duy trì mối quan hệ tuyến tính giữa điện áp thuận và nhiệt độ.

một điện trở 1 kilo Ohm với nguồn cung cấp 5V sẽ tạo ra dòng điện diode 4 miliAmpere là giá trị đủ cho mục đích này. I (diode) = VCC / (Rseries + Rdiode)

Bước 2: Mã hóa

Chúng ta cần lưu ý rằng có một số giá trị cần điều chỉnh trong mã để có được kết quả tốt hơn như:

1 - VCC_Voltage: vì giá trị analogRead () phụ thuộc vào VCC của chip ATmega nên chúng ta cần thêm nó vào phương trình sau khi đo trên bảng arduino.

2 - V_OLD_0_C: điện áp giảm phía trước của diode được sử dụng ở dòng điện 4 mA và nhiệt độ 0 độ C

3 - Hệ số nhiệt độ: gradient nhiệt độ của diode của bạn (tốt hơn nên lấy từ biểu dữ liệu) hoặc bạn có thể đo nó bằng cách sử dụng phương trình sau: Vnew - Vold = K (Tnew - Told)

ở đâu:

Vnew = điện áp rơi mới đo được sau khi làm nóng diode

Vold = điện áp rơi đo được ở một số nhiệt độ phòng

Tnew = nhiệt độ nơi diode được làm nóng

Told = nhiệt độ phòng cũ mà Vold được đo ở

K = Nhiệt độ_ Hệ số (giá trị âm thay đổi trong khoảng từ -1,0 đến -2,5 miliVolts) Cuối cùng, bây giờ bạn có thể tải lên mã và nhận kết quả nhiệt độ của mình.

#define Sens_Pin A0 // PA0 cho bảng STM32F103C8

gấp đôi V_OLD_0_C = 690.0; // 690 mV Điện áp chuyển tiếp ở 0 độ C ở dòng điện thử nghiệm 4 mA

gấp đôi V_NEW = 0; // Điện áp chuyển tiếp mới ở nhiệt độ phòng ở dòng điện thử nghiệm 4 mA gấp đôi Nhiệt độ = 0.0; // Nhiệt độ tính toán trong phòng gấp đôi Nhiệt độ_ Hệ số = -1,6; //-1,6 mV thay đổi trên mỗi độ C (-2,5 đối với điốt gecmani), tốt hơn nên lấy từ biểu dữ liệu điốt đôi VCC_Voltage = 5010.0; // Điện áp hiện tại ở đường ray 5V của arduino tính bằng miliVolts (yêu cầu để có độ chính xác tốt hơn) (3300.0 cho stm32)

void setup () {

// đặt mã thiết lập của bạn ở đây, để chạy một lần: pinMode (Sens_Pin, INPUT); Serial.begin (9600); }

void loop () {

// đặt mã chính của bạn ở đây, để chạy nhiều lần: V_NEW = analogRead (Sens_Pin) * VCC_Voltage / 1024.0; // chia cho 4.0 nếu bạn đang sử dụng ADC 12 bit Nhiệt độ = ((V_NEW - V_OLD_0_C) / Nhiệt độ_ Hệ số);

Serial.print ("Temp =");

Serial.print (Nhiệt độ); Serial.println ("C");

chậm trễ (500);

}

Bước 3: Nhận được giá trị tốt hơn

Nhận được giá trị tốt hơn
Nhận được giá trị tốt hơn
Nhận được giá trị tốt hơn
Nhận được giá trị tốt hơn

Tôi nghĩ rằng bạn nên có một thiết bị đo nhiệt độ đáng tin cậy bên cạnh khi thực hiện dự án này.

bạn có thể thấy rằng có một lỗi đáng chú ý trong các bài đọc có thể lên đến 3 hoặc 4 độ C vậy lỗi này là do đâu?

1 - bạn có thể cần điều chỉnh các biến được đề cập ở bước trước

2 - độ phân giải ADC của arduino thấp hơn những gì chúng ta cần để phát hiện sự khác biệt điện áp nhỏ

3 - tham chiếu điện áp của arduino (5V) quá cao đối với sự thay đổi điện áp nhỏ này trên diode

Vì vậy, nếu bạn định sử dụng thiết lập này như một cảm biến nhiệt độ, bạn nên lưu ý rằng mặc dù nó rẻ và tiện dụng, nó không chính xác nhưng nó có thể cung cấp cho bạn một ý tưởng rất tốt về nhiệt độ của hệ thống của bạn hoặc nó trên một PCB hoặc được gắn vào động cơ đang chạy, v.v.…

Hướng dẫn này có nghĩa là sử dụng ít thành phần nhất có thể. Nhưng nếu bạn muốn nhận được kết quả chính xác nhất từ ý tưởng này, bạn có thể thực hiện một số thay đổi:

1 - thêm một số bộ khuếch đại và các giai đoạn lọc bằng cách sử dụng op-amps như trong liên kết này arduino nhưng lưu ý rằng bạn không thể kết nối nhiều hơn 1,1 Volt với bất kỳ chân analog nào của arduino.

bạn có thể thêm dòng này trong chức năng thiết lập:

analogReference (NỘI BỘ);

4 - Sử dụng bộ vi điều khiển có ADC độ phân giải cao hơn như STM32F103C8 có độ phân giải 12 bit ADC Vì vậy, tóm lại, thiết lập dựa trên arduino này có thể cung cấp một cái nhìn tổng quan tốt đẹp về nhiệt độ hệ thống của bạn nhưng kết quả không quá chính xác (khoảng 4,88 mV / Đọc)

thiết lập STM32F103C8 sẽ cung cấp cho bạn một kết quả khá chính xác vì nó có ADC 12 bit cao hơn và giá trị tham chiếu tương tự 3,3V thấp hơn (khoảng 0,8 mV / lần đọc)

Chà, vậy đó !!:NS

Đề xuất: