使用MCU,STM32F103C8T6+OLED显示,板子自己手焊的。
说说使用感想DS18B20不愧是大厂的传感器,功能丰富,但使用起来确实有点麻烦。
DHT11应该就是国产模仿的吧,功能简单,没有唯一标识码,没有RAM,没有报警等等功能。
对照手册编写逻辑代码问题不大,关键就是STM32 HAL库里面us延时的问题,我用的是模仿在hal_rcc.c里面的一个函数
/**
* @brief This function provides delay (in milliseconds) based on CPU cycles method.
* @param mdelay: specifies the delay time length, in milliseconds.
* @retval None
*/
static void RCC_Delay(uint32_t mdelay)
{
__IO uint32_t Delay = mdelay * (SystemCoreClock / 8U / 1000U);
do
{
__NOP();
}
while (Delay --);
}
把1000改成1000000,延时有误差,但也算能将就用。其中肯定有更好的办法,以后再看吧。
其实没什么难的,都可以自己根据手册,将代码敲出来,这个链接写的DS18B20,特别值得参考:
http://bbs.elecfans.com/jishu_920279_1_1.html
代码也很规范。
最后上个图,我的成品。
关键字:Dht11 Ds18b20 温度传感器
引用地址:
Dht11与Ds18b20温度传感器使用
推荐阅读最新更新时间:2024-03-16 16:26
STM32学习日志——内部温度传感器实验
一、内部温度传感器简介 STM32有一个内部温度传感器,与ADCx的通道16相连,主要用来测量CPU及周围的温度,推荐采样时间为17us,测量温度范围为-40至125度,精度较差,可能有正负1.5度的误差,更适合用来检测温度的变化,因为它的温度差值还是比较准确的。 二、配置函数 1)设置ADC,开启内部温度传感器,与上一讲类似; 2)读取ADC值,读取平均值,也与上一讲类似; 3)根据得到的ADC值转换成温度值;公式如下: T(℃)={(V25-Vsense)/Avg_Slope}+25 其中:V25=Vsense 在 25 度时的数值(典型值为:1.43)。 Avg_Slope=温度与 Vsense 曲线的平均斜率(单位
[单片机]
数字温度传感器DS18B20在卫星电源系统中的应用
0 引言 卫星电源系统主要用来为整个卫星的正常运行提供稳定的电源。它是卫星电能产生、储存、变换、调节、传输分配和管理的重要分系统。其基本功能是通过物理和化学过程将太阳的光能、核能或化学能转化为电能,并根据需要对电能进行存储、调节和变换,然后向卫星其它各分系统不间断供电。我国的卫星大都采用太阳能/蓄电池供电系统。蓄电池充电终压控制采用电压-温度补偿法,即V-T曲线控制。蓄电池温度传感器传统上一般选用热电耦或铂电阻。模拟电路硬件控制是温度补偿的常用方法,已经在我国各种型号的卫星上获得成功应用。 为加快我国卫星电源分系统的数字化设计。充分体现数字电路体积小、重量轻、功耗低、适应性强和可靠性高等优点,提高电源分系统的电能重量比,本文以
[传感技术]
单片机测温系统(AT89C51、DS18B20温度传感器、LCD1602)
一、简介 此系统主要由AT89C51、DS18B20温度模块和LCD1602组成。 大致的原理是DS18B20温度采集到的数据传送给AT89C51的P3.3/INT1(外部中断1),最后通过LCD1602显示当前的实时温度。 二、效果图 模拟仿真图 三、源代码 /*想要更多项目私wo!!!*/ /*************** writer:shopping.w ******************/ #include reg52.h #include intrins.h #define uint unsigned int #define uchar unsigned char #define delayNOP()
[单片机]
Dht11与Ds18b20温度传感器使用
使用MCU,STM32F103C8T6+OLED显示,板子自己手焊的。 说说使用感想DS18B20不愧是大厂的传感器,功能丰富,但使用起来确实有点麻烦。 DHT11应该就是国产模仿的吧,功能简单,没有唯一标识码,没有RAM,没有报警等等功能。 对照手册编写逻辑代码问题不大,关键就是STM32 HAL库里面us延时的问题,我用的是模仿在hal_rcc.c里面的一个函数 /** * @brief This function provides delay (in milliseconds) based on CPU cycles method. * @param mdelay: specifies the delay
[单片机]
PIC单片机对数字温度传感器的控制设计
#include #define uchar unsigned char #define uint unsigned int #define DQ RC1 #define DQ_HIGH() TRISC1=1 #define DQ_LOW() TRISC1=0;DQ=0 __CONFIG(0x3B31); const uchar table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,0x7f,0x6f}; const uchar table1[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd, 0x87,0xff,0xef}; uint te mper; uc
[单片机]
基于STM32自码DS18B20驱动程序
DS18B20是一款单总线可编程分辨率的数字温度计,详细内容可见中英文datasheet,笔者不在赘述。 很早就接触到的温度传感器,也相信每一个曾学习过嵌入式开发的人都用过,笔者在STM32F4上自码DS18B20驱动,有些小小心得: DS18B20的控制流程 根据DS18B20的通信协议,DS18B20只能作为从机,而单片机系统作为主机,单片机控制DS18B20完成一次温度转换必须经过3个步骤:复位、发送ROM指令、发送RAM指令。每次对DS18B20的操作都要进行以上三个步骤。 复位过程为:单片机将数据线拉低至少480uS,然后释放数据线,等待15-60uS让DS18B20接收信号,DS18B20接收到信号后,会把数据线拉
[嵌入式]
单片机教程及学习之LCD1602显示DS18B20温度实验
#include reg52.h #include intrins.h typedef unsigned int uint; typedef unsigned char uchar; sbit LCD_RS=P2^0; sbit LCD_RW=P2^1; sbit LCD_EN=P2^2; sbit DQ=P3^4; uchar Temp_Value ={0x00,0x00}; uchar Temp=0; uchar Display_Digit ={0,0,0,0}; bit DS18B20_IS_OK=1; uchar code df_tab ={0,1,1,2,3,3,4,4,5,6,6,7,8,8,9,9};//de
[单片机]
基于DS18B20的室内智能温度控制系统设计
温度在工农业生产中起着举足轻重的作用,在冶金、医药、食品制造和化学制造业等行业尤其显得重要。在适当的温度下生产的产品质量、产量和合格率会大大的提高。有些药品的生产和存储要在很低的温度下进行;石油分馏的过程中在不同的温度下才能分离出汽油、柴油、煤油、硫化物;食品的制造和存储也要在特定的温度下才能保证质量。在农业大棚蔬菜和室内圈养牲畜对于环境温度的要求也很高,大棚蔬菜的温度基本上要保证在20~30℃。鸡舍的育雏期温度要控制在36℃左右。随着社会生产力和科学技术的发展,工农业生产对于温度的要求会越来越高,这样就需要系统不但可以测出室内的实际温度,还可以通过上位机来进行实时的控制,调整环境的温度。 1 系统的整体想路 本系统
[嵌入式]