好消息:请在手机淘宝或闲鱼上搜索“电子入门趣谈”,有惊喜哦 :) 我把全本电子入门趣谈的电子版(包括科技提升和理论升华部分,共计50余万字)放到上面开始兜售啦,如果您真的喜欢这本书,又想跟作者一起聊聊天的话 :) ... ...欢迎各界电子科技爱好者朋友们斧正收藏 。作者微信:zhangbolin1202 --- 2019.05.27注
3.2 常见传感器及其驱动电路
比较简单的传感器像光敏电阻,热敏电阻、光电二极管、光敏三极管大家稍微看看应该就能明白了,下面送给大家一些相对比较复杂的传感器案例,这几款传感器操作起来难易不均,但是包含的知识量都比较丰富,弄明白这几个传感器估计您再操作其他传感器也就不在话下了。另外,第六章的竞赛机器人里也会介绍一些传感器的使用方法,欢迎查阅。
3.2.1 DS18B20
测量温度是生活中一项常见的活动,通常我们利用的是各种温度计,温度计靠人来读,现在我们利用传感器进行温度测量,让CPU来读。在本案例中,我们利用温度传感器DS18B20、51单片机和LED数码管来完成温度的测量和显示任务。项目实现功能:利用DS18B20采集环境温度,LED数码管将显示得到的温度值。
注:事实上DS18B20属于传感器里比较难操作的传感器,要考虑的东西几乎囊括了其他芯片要考虑的所有的问题,包括指令码、时序图、数据寄存器、配置寄存器、发送指令、发送数据甚至还有CRC(循环冗余校验)的知识内容,所以这一节的内容相当重要,把这个传感器放在第一个讲就是让大家“欣赏”一下单片机控制芯片的整个流程,实在读不明白的地方先放一放,找个时间再读读,这个东西绝对不是看一遍就能精通的,但是后面的电路图和程序流程框图及其代码非常值钱,在类似的项目上基本上可以直接拿过来用。不要害怕,后面的会相对简单得多,咱们开始吧。
(1)DS18B20温度传感器简介
美国Dallas 半导体公司的数字化温度传感器DS1820 是世界上第一片支持 "一线总线"接口的温度传感器。全部传感元件及转换电路集成在形如一只三极管的集成电路内。一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。现在,新一代的DS18B20 体积更小、更经济、更灵活。使你可以充分发挥“一线总线”的优点。一线总线(1—Wire总线)是Dallas公司的专有技术,只需要一根导线就可以完成串行通信,该技术将设备的地址线、数据线、控制线合为一根线。单根信号线既可以传输时钟,又可以传输数据,数据传输可以是双向的。一线总线技术适合于单主机系统,可以由一个或多个从设备。
在传统的模拟信号远距离温度测量系统中,需要很好的解决引线误差补偿问题、多点测量切换误差问题和放大电路零点漂移误差问题等技术问题,才能够达到较高的测量精度。另外一般监控现场的电磁环境都非常恶劣,各种干扰信号较强,模拟温度信号容易受到干扰而产生测量误差,影响测量精度。因此,在温度测量系统中,采用抗干扰能力强的新型数字温度传感器是解决这些问题的最有效方案,新型数字温度传感器DS18B20 具有体积更小、精度更高、适用电压更宽、采用一线总线、可组网等优点,在实际应用中取得了良好的测温效果。
(2)DS18B20主要特点
以下这些特点可以直接从DS18B20的数据手册(datasheet)上查到,对于一款传感器,在阅读它的数据手册的时候一般来说都要注意它的供电电压、分辨率、测量范围、数据通信方式等。
Ø 适应电压范围更宽,电压范围:3.0~5.5V,在寄生电源方式下可由数据线供电
Ø 独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20 的双向通讯
Ø DS18B20 支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温
Ø DS18B20 在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内
Ø 温范围-55℃~+125℃,在-10~+85℃时精度为±0.5℃
Ø 可编程的分辨率为9~12 位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃,可实现高精度测温。
Ø 测量结果直接输出数字温度信号,以一条总线串行传送给CPU,同时可传送CRC校验码,具有很强的抗干扰和纠错能力。
Ø 负压特性,当电源接反时。芯片不会因为发热而烧毁,但芯片不能正常工作。
Ø 在9位分辨率时最多在 93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快。
(3)DS18B20内部结构
为了利用DS18B20进行温度测量,我们当然应该了解它的内部结构,只有准确把握了它的特性,我们才能设计出正确的温度测量程序。如果希望DS18B20协助我们测量温度,我们该如何表达我们的意愿呢?DS18B20当然听不懂我们的日常用语了,所以我们得学习可以和DS18B20交流的语言。DS18B20的操作在芯片控制领域非常典型,难度也很大,大家努努力,争取把它看懂了,以后再遇到其他芯片就会一帆风顺了。
DS18B20内部结构主要由64位ROM、温度传感器、温度触发器TH和TL及高速缓冲器等部分组成,如下图所示。注意,常说DS18B20是一个温度传感器,事实上它是一个小系统,温度传感器是它里面最主要的部分而已。
1、DS18B20 的指令:
指令就相当于暗号,单片机给芯片发出指令会促使芯片完成相应的功能,DS18B20的指令及其约定代码如下表所示。
例如某温度测量系统中只有一个DS18B20,我们可以直接使用跳过ROM指令:CCH(H表示前面的CC是十六进制数),该指令允许主设备不提供64位二进制ROM代码就使用存储器操作命令。
所以我们在程序设计中只需要按照上面的指令表写入特定的指令,就可以完成对DS18B20特定的操作。读到这,有没有疑问?啥叫64位ROM代码?
知识点:
光刻ROM 中的64 位序列号是出厂前被光刻好的,它可以看作是该DS18B20 的地址序列码,实际上就相当于我们的身份证号。