技术热线: 4007-888-234

如何使用PIC单片机做一个自适应亮度温湿度计

更新时间: 2019-11-18
阅读量:2940

目前,有关温湿度计的单片机方案有很多,但带七段式LED显示器自适应亮度的温湿度计却没有多少。为此,英锐恩单片机开发工程师们分享了一个基于PIC单片机的数字温度计和湿度计。在该方案中,通过在4个七段式LED显示器上显示温度和相对湿度,这些LED显示器可根据周围的照明情况调节其亮度水平。

30_01_00_08_1778632324046269437.png

整个单片机方案由一个闭环系统组成,该闭环系统使用光敏电阻(LDR)连续评估环境光条件,并使用该信息来调整显示器的亮度。此外,DHT11传感器用于测量温度和相对湿度,使用的PIC单片机是PIC16F688,它以其内部源产生的4 MHz时钟运行。单独的显示驱动器芯片(MAX7219)用于控制和刷新七个分段LED上的显示数据。

TrhMeterPS_CircuitPT.jpg

为什么需要七段式LED显示器亮度控制?

自动调节七段式LED显示器的亮度不仅可以节省功率,而且可以提高在所有环境照明条件下的可读性。现在,许多智能手机,HDTV,PDA,平板电脑和计算机屏幕都具有此功能。它基本上可以在黑暗的环境中使显示器变暗,并且仍然可读且舒缓。同样,当环境光水平升高时,它会使显示屏变亮以增强可读性。该方案在1英寸大的七段式LED上显示室内温度和相对湿度,这些LED会自动调节亮度,使其与房间的光照条件保持平衡。因此,如果将此表放在卧室中,则不必担心在夜间将其关闭。它会自动调低到足够低的水平,以免干扰您的睡眠,同时保持可读性。

七段式LED显示器亮度温湿度计电路原理图

为了便于说明,我将整个电路图分为三个部分:电源单元,单片机和传感器单元以及显示驱动器单元。

该电源单元包括一个LM7805稳压器IC,可从9-15V直流壁式适配器获取+5V稳压电源。完整的电源单元电路图如下所示。LED1是开机指示灯LED。

下图为DHT11传感器和光敏电阻(也称为光敏电阻或LDR)与PIC16F688单片机的连接。DHT11是一款低成本数字传感器,可测量0-50°C的温度,精度为±2°C,相对湿度范围为20-95%,精度为±5%。该传感器提供经过完全校准的数字输出,并具有自己的专有1线协议进行通讯。PIC16F688使用RC4 I/O引脚读取DHT11输出数据。请注意,R7用作DHT11传感器的数据引脚所需的上拉电阻。电路图中的S2开关用于在华氏度(°F)和摄氏度(°C)单位之间进行选择,以进行温度显示。开关断开时,默认情况下RC3引脚被拉低,并且温度以“°F”单位显示。为了选择“°C”单位显示,应将RC3引脚拉高,这在S2闭合时发生。

TrHMeter_uCircuit.jpg

接下来,光敏电阻(R5)和R4构成一个分压器网络,如电路所示。R4两端的模拟电压与落在光敏电阻上的光量成比例地增加。典型的光敏电阻的电阻小于1KΩ。在明亮的照明条件下。它的抵抗力可能高达数百K?在极端黑暗的条件下。因此,对于给定的设置,R4电阻两端的电压可以从小于0.1V(在黑暗条件下)到超过4.0V(在非常明亮的照明条件下)变化。PIC16F688单片机通过其AN2(RA2)ADC通道读取该模拟电压,以确定周围的亮度水平。

如下图所示,该显示单元由MAX7219芯片组成,可通过3线串行接口直接驱动多达8个7段LED显示器(共阴极型)。芯片上包括一个BCD解码器,多路复用扫描电路,段和数字驱动器,以及一个用于存储数字值的8×8静态RAM。所有LED的段电流仅通过ISET引脚和电源之间连接的一个外部电阻设置。该器件还使用其内部脉宽调制器通过软件提供16级亮度控制。要了解有关MAX7219器件的更多信息,请阅读我以前的文章  串行4位七段LED显示屏。在该方案中,PIC16F688的RC0、RC1和RC2 I/O引脚用于驱动MAX7219的DIN、LOAD和CLK信号线。

TrHMeter_displayCircuit.jpg

七段式LED显示器亮度温湿度计单片机方案源代码

七段式LED显示器亮度温湿度计源代码.zip

以上就是英锐恩单片机开发工程师分享的基于PIC单片机的七段式LED显示器亮度温湿度计。英锐恩专注单片机应用方案设计与开发,提供8位单片机、16位单片机、32位单片机、运算放大器和模拟开关。