NTC和PTC统称为热敏电阻,又可称为温控电阻。现在有些东西与电阻有关,但它是如何工作的以及可以使用这些组件设计哪种类型的电路。让我们了解工作概念,然后我们将实际使用它们。
这些热敏电阻的值不随温度线性变化。热敏电阻电阻减小的方式与热敏电阻行业中称为beta (β) 的常量有关。给出者:
其中:Rt1 = 温度 1 时的电阻 Rt2 = 温度 2 时的电阻T1 = 温度 1 (K) T2= 温度 2 in (K)
NTC 热敏电阻是一种温度传感器,它使用陶瓷/金属复合材料的电阻特性来测量温度。我们的全光谱 NTC 传感器在温度传感方面具有许多优势,包括微型尺寸、出色的长期稳定性、高精度和高精度。
该项目由JLCPCB赞助,JLCPCB是中国领先的 PCB 制造商之一。JLCPCB 提供优质的 FR4 2layer PCB,5 件仅需2 美元。要了解更多关于 PCBA、STENCIL 制作和 3D 打印等服务,请立即访问 JLCPCB。使用此链接注册并获得价值 54 美元的免费优惠券来下订单。
PTC热敏电阻是具有正温度系数的电阻器,这意味着电阻随温度升高而增加。PTC 热敏电阻根据使用的材料、结构和制造工艺分为两组。PTC 热敏电阻是用于电路保护的热敏电阻。PTC保险丝用于在产生热量或过大电流时保护电子设备。
现在让我们看看电阻实际上是如何随着温度的升高/降低而变化的。我们可以直接将它们放在火上,但为了安全起见,我在这里使用烙铁和 ICE 进行这两个测试。
对于 NTC,电阻值在接触加热的烙铁时下降,并在用 ICE 测试时迅速增加。
PTC 应该有同样的特色,但恰恰相反。但是粒子方法是不同的。电阻在加热时增加,但在较冷区域测试时保持不变。这就是为什么 NTC 优先使用温度监控设备的原因。我们可以将 PTC 用作可重复使用的保险丝。下面给出了有关保险丝动作的正确演示。
众所周知,加热时电阻会增加,如果过大的电流流过 PTC,PTC 就会发热。这切断了电源连接,在这里我将一个 LED 与 PTC 串联,稍微加热后电阻上升,从而关闭 LED。
但一段时间后,当温度下降时,LED 又开始发光。这就是使 PTC 成为可重复使用保险丝的原因。其他类型的保险丝只是一次性设备,但在现代电子系统中使用 PTC 代替保险丝。
NTC 的值与温度不是线性的,它给出了如上所述的对数曲线。这是在 Arduino 代码中修改的。在这里,我们在分压器配置中使用 10k NTC 和 10k 电阻。
1) 负温度系数 10K
2)10K电阻
3) 16X2 液晶屏
4) 阿杜诺
5)10k电位器
6)LED、蜂鸣器和连接线
7) 定制印刷电路板。
在电路中,当温度达到高温时,红色 LED 发光并发出蜂鸣器。绿色 LED 是正常温度的指示。屏幕上提供以摄氏度和华氏度为单位的温度值。10K电位器用于调整屏幕对比度。
然后我根据 EasyEDA 中修改后的原理图设计了原理图,并从那里制作了 PCB 制造 Gerber 文件。
自 2020 年以来,我在我的项目中使用JLCPCB PCB 原型制作、SMT 组装和模板服务。与价格相比,质量非常高,5 件 2 层 PCB 和SMT 组件 2 美元,起价 8 美元。
使用常量/变量初始化所有库和 I/O 引脚。
#include //Libraries
LiquidCrystal lcd(2, 3, 4, 5, 6, 7); //Arduino pins to lcd
#define ThermistorPin A0 // for Arduino microcontroller
long ADC_Value;
float R1 = 10000; // value of R1 on board
float logR2, R2, T;
//steinhart-hart coeficients for thermistor
float c1 = 0.001129148, c2 = 0.000234125, c3 = 0.0000000876741;
float temp_c, temp_f;
#define G_led 8
#define R_led 9
#define buzzer 13
定义 NTC 的系数值,以精确地在开尔文刻度范围内使用。
float c1 = 0.001129148, c2 = 0.000234125, c3 = 0.0000000876741;
在此之后,电阻分压器网络中引脚 A0 上的模拟值被转换为电压。
ADC_Value=0;
for(int i=0; i< 50; i++) {
ADC_Value = ADC_Value+analogRead(ThermistorPin);
delay(1);
}
ADC_Value=ADC_Value/50;
R2 = R1 * (1023.0 / (float)ADC_Value - 1.0); //calculate resistance on thermistor
然后使用上面给出的公式(对数计算)测量开尔文温度。
temp_c = (1.0 / (c1 + c2*logR2 + c3*logR2*logR2*logR2)); // temperature in Kelvin
转换摄氏度和华氏度的开尔文值
temp_c = temp_c - 273.15; //convert Kelvin to Celcius
temp_f = (temp_c * 9.0)/ 5.0 + 32.0; //convert Celcius to Fahrenheit
在屏幕上显示值(摄氏度):
lcd.setCursor(0,1);
lcd.print(temp_c, 1);
lcd.write(0xdf); // to display °
lcd.print("C ");
/* The easy circuit:
* Analog pin 0
* |
* 5V |-----/\/\/\-----+-----/\/\/\-----| GND
* ^ ^
* 10K thermistor 10K resistor
*/
#include //Libraries
LiquidCrystal lcd(2, 3, 4, 5, 6, 7); //Arduino pins to lcd
#define ThermistorPin A0 // for Arduino microcontroller
long ADC_Value;
float R1 = 10000; // value of R1 on board
float logR2, R2, T;
//steinhart-hart coeficients for thermistor
float c1 = 0.001129148, c2 = 0.000234125, c3 = 0.0000000876741;
float temp_c, temp_f;
#define G_led 8
#define R_led 9
#define buzzer 13
void setup(){
pinMode(ThermistorPin, INPUT);
pinMode(R_led,OUTPUT); // declare Red LED as output
pinMode(G_led,OUTPUT); // declare Green LED as output
pinMode(buzzer,OUTPUT); // declare Buzzer as output
lcd.begin(16, 2); // Configura lcd numero columnas y filas
lcd.clear();
lcd.setCursor (0,0);
lcd.print(" Welcome To ");
lcd.setCursor (0,1);
lcd.print("Temperature NTC");
delay(2000);
lcd.clear();
}
void loop(){
ADC_Value=0;
for(int i=0; i< 50; i++) {
ADC_Value = ADC_Value+analogRead(ThermistorPin);
delay(1);
}
ADC_Value=ADC_Value/50;
R2 = R1 * (1023.0 / (float)ADC_Value - 1.0); //calculate resistance on thermistor
logR2 = log(R2);
temp_c = (1.0 / (c1 + c2*logR2 + c3*logR2*logR2*logR2)); // temperature in Kelvin
temp_c = temp_c - 273.15; //convert Kelvin to Celcius
temp_f = (temp_c * 9.0)/ 5.0 + 32.0; //convert Celcius to Fahrenheit
lcd.setCursor(0,0);
lcd.print(" Temperature ");
lcd.setCursor(0,1);
lcd.print(temp_c, 1);
lcd.write(0xdf); // to display °
lcd.print("C ");
lcd.setCursor(9,1);
lcd.print(temp_f,1);
lcd.write(0xdf);
lcd.print("F ");
if(temp_f>100){
digitalWrite(buzzer, HIGH);
digitalWrite(G_led, LOW); // Turn LED off.
digitalWrite(R_led, HIGH); // Turn LED on.
delay(300);
}else{
digitalWrite(G_led, HIGH); // Turn LED on.
digitalWrite(R_led, LOW); // Turn LED off.
}
digitalWrite(buzzer, LOW);
delay(500);
}
使用 JLCPCB 软件的自动 PCB 检测功能,订购过程非常简单。根据此项目的描述下载 Gerber 文件。
使用此链接注册并获取免费优惠券。
上传您的 Gerber 文件。
设置所有参数、数量、颜色和整理。
添加到购物车并付款。只需 7 天,即可将PCB带回家。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !