精华内容
下载资源
问答
  • 单片机热敏电阻测温

    千次阅读 2019-08-07 22:58:12
    y, 3) p = np.poly1d(f) print('p is :\n', p) yf=np.polyval(f, x) plt.figure() plt.scatter(x, y, c='r') plt.plot(x, yf) plt.show() 长这样,几乎就是一条直线, 多项式表达式,把这个表达式灌入单片机即可,...

    作者

    QQ群:852283276
    微信:arm80x86
    微信公众号:青儿创客基地
    B站:主页 https://space.bilibili.com/208826118

    参考

    matplotlib之散点图
    python 对于任意数据和曲线进行拟合并求出函数表达式的三种方案。
    numpy.linspace()等差数列函数

    方法

    首先测得不同温度下对应的电压,这样的通过ADC测出电压就可以反推出温度,首先用python绘图,看看情况,安装matplotlib,会自动安装numpy, cycler, python-dateutil, kiwisolver, pyparsing, matplotlib

    # pip uninstall matplotlib
    PS C:\dog\program\fj\dcl4\prj\python> pip install matplotlib
    Collecting matplotlib
      Downloading https://files.pythonhosted.org/packages/1a/c0/69e3f695d7384012e90be1e16570c08953baae00fd98094179ef87c7d5a2/matplotlib-3.1.1-cp37-cp37m-win_amd64.whl (9.1MB)
         |████████████████████████████████| 9.1MB 159kB/s
    Collecting numpy>=1.11 (from matplotlib)
      Downloading https://files.pythonhosted.org/packages/26/26/73ba03b2206371cdef62afebb877e9ba90a1f0dc3d9de22680a3970f5a50/numpy-1.17.0-cp37-cp37m-win_amd64.whl (12.8MB)
         |████████████████████████████████| 12.8MB 285kB/s
    Collecting cycler>=0.10 (from matplotlib)
      Downloading https://files.pythonhosted.org/packages/f7/d2/e07d3ebb2bd7af696440ce7e754c59dd546ffe1bbe732c8ab68b9c834e61/cycler-0.10.0-py2.py3-none-any.whl
    Collecting python-dateutil>=2.1 (from matplotlib)
      Downloading https://files.pythonhosted.org/packages/41/17/c62faccbfbd163c7f57f3844689e3a78bae1f403648a6afb1d0866d87fbb/python_dateutil-2.8.0-py2.py3-none-any.whl (226kB)
         |████████████████████████████████| 235kB 117kB/s
    Collecting kiwisolver>=1.0.1 (from matplotlib)
      Downloading https://files.pythonhosted.org/packages/c6/ea/e5474014a13ab2dcb5056608e0716c600c3d8a8bcffb10ed55ccd6a42eb0/kiwisolver-1.1.0-cp37-none-win_amd64.whl (57kB)
         |████████████████████████████████| 61kB 231kB/s
    Collecting pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 (from matplotlib)
      Downloading https://files.pythonhosted.org/packages/11/fa/0160cd525c62d7abd076a070ff02b2b94de589f1a9789774f17d7c54058e/pyparsing-2.4.2-py2.py3-none-any.whl (65kB)
         |████████████████████████████████| 71kB 143kB/s
    Requirement already satisfied: six in c:\users\qinge\appdata\roaming\python\python37\site-packages (from cycler>=0.10->matplotlib) (1.12.0)
    Requirement already satisfied: setuptools in c:\users\qinge\appdata\local\programs\python\python37\lib\site-packages (from kiwisolver>=1.0.1->matplotlib) (40.6.2)
    Installing collected packages: numpy, cycler, python-dateutil, kiwisolver, pyparsing, matplotlib
    Successfully installed cycler-0.10.0 kiwisolver-1.1.0 matplotlib-3.1.1 numpy-1.17.0 pyparsing-2.4.2 python-dateutil-2.8.0
    

    编写绘图程序,采用多项式拟合,

    import matplotlib.pyplot as plt
    import numpy as np
     
    x = [0.376, 0.397, 0.42 , 0.443, 0.465, #-24 -20
         0.49 , 0.516, 0.543, 0.571, 0.6,   #-19 -15
         0.631, 0.662, 0.695, 0.728, 0.763, #-14 -10
         0.799, 0.836, 0.874, 0.913, 0.953, #-9  -5
         0.994, 1.037, 1.08 , 1.124, 1.17,  #-4   0
         1.216, 1.263, 1.312, 1.361, 1.41,  # 1   5
         1.461, 1.512, 1.564, 1.617, 1.67,  # 6   10
         1.724, 1.778, 1.833, 1.888, 1.943, # 11  15
         1.999, 2.054, 2.11 , 2.166, 2.222, # 16  20
         2.278, 2.334, 2.389, 2.445, 2.5,   # 21  25
         2.555, 2.609, 2.663, 2.717, 2.77,  # 26  30
         2.822, 2.874, 2.926, 2.976, 3.026, # 31  35
         3.076, 3.124, 3.172, 3.219, 3.265, 
         3.31 , 3.355, 3.398, 3.441, 3.483, 
         3.524, 3.564, 3.603, 3.642, 3.679, 
         3.716, 3.752, 3.787, 3.821, 3.854, 
         3.887, 3.918, 3.949, 3.979, 4.008, 
         4.036, 4.064, 4.091, 4.117, 4.142, 
         4.167, 4.191, 4.214, 4.237, 4.259, 
         4.28 , 4.301, 4.321, 4.34 , 4.359]
    y = np.arange(-24, 76, 1.0)
    f = np.polyfit(x, y, 3)
    p = np.poly1d(f)
    print('p is :\n', p)
    yf=np.polyval(f, x)
    plt.figure()
    plt.scatter(x, y, c='r')
    plt.plot(x, yf)
    plt.show()
    

    长这样,几乎就是一条直线,
    113
    多项式表达式,把这个表达式灌入单片机即可,

    PS C:\dog\program\fj\dcl4\prj\python> python .\temperature.py
    p is :
            3         2
    1.854 x - 12.44 x + 44.69 x - 38.15
    
    展开全文
  • 51单片机热敏电阻测温数码管显示keil工程文件C源文件,数码管显示热敏读出的温度
  • 51单片机热敏电阻测温查表程序
  • 51单片机热敏电阻测温程序.doc
  • 热敏电阻测温小程序,关键是成本低。简单方便,又实用
  • 视频演示地址: 本设计是由STM32F103C8T6为主控芯片热敏电阻测温液晶1602显示报警设计 开机显示测量温度当高出设定值后蜂鸣器报警 按键可调整报警值

    视频演示地址:https://www.bilibili.com/video/BV1yh411Y7jJ/

    本设计是由STM32F103C8T6为主控芯片热敏电阻测温液晶1602显示报警设计
    开机显示测量温度当高出设定值后蜂鸣器报警
    按键可调整报警值

    展开全文
  • 基于单片机热敏电阻测温设计, 本资源是基于单片机热敏电阻测温设计,下载附件包括基于单片机热敏电阻测温电路原理图
  • 基于单片机热敏电阻测温设计, 本资源是基于单片机热敏电阻测温设计,下载附件包括基于单片机热敏电阻测温电路PCB文件
  • 基于单片机热敏电阻测温设计, 本资源是基于单片机热敏电阻测温设计,下载附件包括基于单片机热敏电阻测温设计任务书
  • 基于单片机热敏电阻测温设计。 本资源是基于单片机热敏电阻测温设计,下载附件是C语言代码。
  • 基于单片机热敏电阻测温设计, 本资源是基于单片机热敏电阻测温设计,下载附件包括基于单片机热敏电阻测温电路原理图和PCB图
  • 基于单片机热敏电阻测温设计开题报告。本资源是基于单片机热敏电阻测温设计,下载包含开题报告,仅供参考。
  • 本设计以51系列单片机STC89C52为控制核心,以液晶显示模块、键盘为人机接口,负温度系数热敏电阻器(NTC)为采样传感器,实现了一个基于51单片机热敏电阻测温设计。 附件为C代码。
  • 基于单片机热敏电阻测温设计 1.基本功能 1)具有声光报警功能; 2)使用液晶显示; 3)温度上、下限报警值设定;温度上、下限报警; 4)手动方式设定温度上下限; 总体方案设计 温度控制系统主要由温度传感器...

    基于单片机的热敏电阻测温设计

    1.基本功能
    1)具有声光报警功能;
    2)使用液晶显示;
    3)温度上、下限报警值设定;温度上、下限报警;
    4)手动方式设定温度上下限;

    总体方案设计

    温度控制系统主要由温度传感器(热敏电阻),A/D转换器,单片机(STC12C5A60S2),按键设置和液晶显示显示组成。
    

    主函数

    void main()
    {
    	float Rad;
    	LCD1602_cls();
    	TMOD=0x01;
    	TH0=0x4c;
    	TL0=0x00;
    	ET0=1;
    	TR0=1;
    	EA=1;
    	temp_h=byte_read(0x2000);
    	temp_l=byte_read(0x2200);
    	if(temp_h>99||temp_l>99||temp_l>=temp_h)
    	{
    		temp_h=30;
    		temp_l=10;
    	}
    	while(1)
    	{
    		zhi=(float)read2543(0)/819.0;
    		Rad=zhi/((5.0-zhi)/10000.0);
    		temp=(int)(temp * 0.5) + (TempCalculate(Rad,3950.0,0,10000.0) * 0.5);
    		show();		 //显示函数
    		key();		 //按键处理程序
    		proc();		 //超限处理程序
    	}
    }
    

    按键检测

    void key()
    {
    
    	if(!key_1)
    	{
    		delay(888);
    		if(!key_1)
    		{
    			state=(state+1)%3;
    			while(!key_1);
    		}
    	}
    	if(state!=0)
    	{
    		if(!key_2)
    		{
    			delay(888);
    			if(!key_2)
    			{
    				while(!key_2) show();
    				switch(state)
    				{
    					case 1:
    					if(temp_h<99)temp_h++;
    					SectorErase(0x2000);	 //保存上限值
    					byte_write(0x2000,temp_h);
    					break;
    					case 2:
    					if(temp_h>temp_l+1)temp_l++;	
    					SectorErase(0x2200);	 //保存上限值
    					byte_write(0x2200,temp_l);
    					break;
    				}
    			}
    		}
    		if(!key_3)
    		{
    			delay(888);
    			if(!key_3)
    			{
    				while(!key_3) show();
    				switch(state)
    				{
    					case 1:
    					if(temp_h>temp_l+1)temp_h--;
    					SectorErase(0x2000);	 //保存上限值
    					byte_write(0x2000,temp_h);
    					break;
    					case 2:
    					if(temp_l>-40)temp_l--;
    					SectorErase(0x2200);	 //保存上限值
    					byte_write(0x2200,temp_l);
    					break;
    
    				}
    			}
    		}
    	}
    }
    
    

    数据显示

    void show()			//显示数据
    {
    
    		LCD1602_write(0,0x80);
    		LCD1602_writebyte("Temp:");
    		if(temp>=0)
    		{
    		   	if(temp>99)LCD1602_write(1,0x30+temp/100%10);
    			else LCD1602_writebyte(" ");
    			if(temp>9)LCD1602_write(1,0x30+temp/10%10);
    			else LCD1602_writebyte(" ");
    			LCD1602_write(1,0x30+temp%10);
    		}else
    		{
    			LCD1602_writebyte("-");
    			if(temp*-1>9)LCD1602_write(1,0x30+(temp*-1)/10%10);
    			else LCD1602_writebyte(" ");
    			LCD1602_write(1,0x30+(temp*-1)%10);	
    		}
    		LCD1602_write(1,0xdf);
    		LCD1602_writebyte("C   ");
    
    
    
    	 	LCD1602_write(0,0xC0);
    		LCD1602_writebyte("H:");
    		if(state==1&&s1==1)
    		{
    			LCD1602_writebyte("   ");
    		}else
    		{
    
    
    			if(temp_h>=0)
    			{
    			   	if(temp_h>99)LCD1602_write(1,0x30+temp_h/100%10);
    				else LCD1602_writebyte(" ");
    				if(temp_h>9)LCD1602_write(1,0x30+temp_h/10%10);
    				else LCD1602_writebyte(" ");
    				LCD1602_write(1,0x30+temp_h%10);
    			}else
    			{
    				LCD1602_writebyte("-");
    				if(temp_h*-1>9)LCD1602_write(1,0x30+(temp_h*-1)/10%10);
    				else LCD1602_writebyte(" ");
    				LCD1602_write(1,0x30+(temp_h*-1)%10);	
    			}
    		}
    		LCD1602_write(1,0xdf);
    		LCD1602_writebyte("C L:");
    		if(state==2&&s1==1)
    		{
    			LCD1602_writebyte("   ");
    		}else
    		{
    //			LCD1602_write(1,0x30+temp_l/10%10);
    //			LCD1602_write(1,0x30+temp_l%10);
    
    			if(temp_l>=0)
    			{
    			   	if(temp_l>99)LCD1602_write(1,0x30+temp_l/100%10);
    				else LCD1602_writebyte(" ");
    				if(temp_l>9)LCD1602_write(1,0x30+temp_l/10%10);
    				else LCD1602_writebyte(" ");
    				LCD1602_write(1,0x30+temp_l%10);
    			}else
    			{
    				LCD1602_writebyte("-");
    				if(temp_l*-1>9)LCD1602_write(1,0x30+(temp_l*-1)/10%10);
    				else LCD1602_writebyte(" ");
    				LCD1602_write(1,0x30+(temp_l*-1)%10);	
    			}
    		}
    		LCD1602_write(1,0xdf);
    		LCD1602_writebyte("C");
    	
    }
    
    
    展开全文
  • 单片机在电子产品中的应用已经越来越广泛,在很多的电子产品中也用到了... RT为100K-精度为1%的热敏电阻;  R1为100Ω的普通电阻;  C1为0.1μ的瓷介电容。  其工作原理为:  1.先将P1.0、P1.1、P1.2都设
  • 39-基于51单片机热敏电阻测温设计

    千次阅读 2020-03-26 17:51:55
    本设计以51系列单片机STC89C52为控制核心,以液晶显示模块、键盘为人机接口,负温度系数热敏电阻器(NTC)为采样传感器,实现了一个基于51单片机热敏电阻测温设计。

    1、设计需求及目标

    具有温度上下限范围,并可以手动调整;

    1. 初始化后显示温度信息与上下限信息;

    2. 模数转换芯片使用分辨率10位以上A/D芯片;

    3. 采用液晶显示;

    2、设计思路及方案

    本设计以51系列单片机STC89C52为控制核心,以液晶显示模块、键盘为人机接口,负温度系数热敏电阻器(NTC)为采样传感器,实现了一个基于51单片机的热敏电阻测温设计。

    资料获取请关注微信公众号“电子工程师成长日记”,回复关键词:“资料”!

    展开全文
  • 单片机课程设计之热敏电阻测温
  • 基于单片机热敏电阻测温设计, 本资源是基于单片机热敏电阻测温设计,下载附件包括基于单片机热敏电阻测温电路原理图和PCB图
  • #include"eeprom52.h" //调用STC89C52单片机的EEPROM控制程序 #include "math.h" #define uchar unsigned char //宏定义 #define uint unsigned int //宏定义 #define LCD1602_dat P0 //LCD1602的数据...
  • 基于51单片机ADC的热敏电阻测温装置制作包含仿真代码 误差1度
  • 分别接到单片机的P2.0 , P2.1上面。 为什么选这两个引脚?因为51单片机上没有IIC总线接口,需要用普通的IO模拟,所以它随便选了两个IO接上就行。 VREF是什么?基准电压,也是它能测量的最大电压。 如何...
  • NTC热敏电阻测温

    2021-09-17 15:32:44
    所谓NTC热敏电阻器就是负温度系数热敏电阻器,即就是电阻值随着温度上升而迅速下降,因此可以利用这个特性来测量温度。 2、温度计算公式 其中,T1和T2指的是K度,即开尔文温度,开氏度 = 摄氏度+273.15; Rntc是...

空空如也

空空如也

1 2 3 4 5 ... 15
收藏数 282
精华内容 112
关键字:

单片机热敏电阻测温