与LCD显示器相比,七段LED显示器更亮,更吸引人,并且提供了较远的观看距离和更宽的视角。该项目描述了用于Arduino Uno或兼容板的串行七段LED显示护罩。屏蔽层由八个MAX6190芯片驱动的八个0.56英寸的七段显示器组成。屏蔽层还具有一个光敏电阻(LDR),以对LED显示屏实施自适应亮度控制。 LDR输出可以馈入Arduino的A0或A1模拟输入通道以读取周围的照明水平。然后,Arduino可以使用该信息来调整LED显示屏的亮度。本文的后半部分还提供了演示代码和Eagle CAD文件。
串行七段式LED显示屏护罩
MAXIM的MAX7219显示驱动器芯片提供3线串行(SPI)接口,可驱动多达八个七段LED显示(共阴极型),芯片上包括BCD解码器,多路扫描电路,段和数字驱动器, 8×8静态RAM存储数字值。所有LED的最大段电流通过外部电阻设置。但是,该设备还能够通过软件对LED段进行16级亮度控制。有关MAX7219内部框图和操作的更多详细信息,请阅读我先前的项目串行4位LED显示屏以及 Maxim的数据手册。
显示屏防护罩功能
由八行七段式LED显示屏(0.56英寸高度)组成,两行四位数字排列。
带并联跳线的接头插针(1),用于连接将MAX7219的DIN,CLK和LOAD引脚连接到Arduino引脚。使用跳线,您可以将DIN连接到引脚8或2,将CLK连接到引脚9或3,将LOAD连接到引脚10或4。
用于检测环境光水平的LDR电路。 LDR输出可以通过跳线J2连接到A0或A1引脚。
这些功能在下图中突出显示。
串行7段LED显示屏屏蔽功能
跳线选择Arduino I/O引脚用于DIN,CLK和LOAD MAX7219的引脚
自适应亮度控制
基本上,自动亮度调节是一种闭环系统,能够评估环境光并相应地调节显示器的亮度。在该屏蔽层中,通用LDR和固定值电阻器(10K)串联连接在电源和接地引脚之间,以创建分压网络。在明亮的照明条件下,典型LDR的电阻小于1KΩ。在极端黑暗的条件下,其电阻可能高达数百KΩ。因此,跨过10K电阻器的电压会随着周围的照度成比例增加。对于给定的设置,10K电阻两端的电压可以从0.1V(在黑暗条件下)到超过4.0V(在非常明亮的照明下)之间变化。可以对Arduino进行编程,以通过其模拟输入通道(A0或A1)读取该模拟电压,然后将适当的信号发送至MAX7219驱动器,以调整七段LED显示屏的亮度。我已经在上一篇文章中详细解释了该主题。
测试代码
该代码通过读取LDR输出来检测环境光线条件通过A0通道并调节LED显示屏的亮度。显示屏仅显示0-7之间的数字。您将需要安装 LedControl 库。
/* Testing SPI 7-Segment LED display shield
* Uses LedControl library
* Demonstrates the use of LDR for auto brightness adjustment.
*/
#include “LedControl.h”
// Arduino Pin 8 to DIN, 9 to Clk, 10 to LOAD, no.of devices is 1
LedControl lc=LedControl(8,9,10,1);
int adc_value, brightness;
void setup()
{
// Initialize the MAX7219 device
lc.shutdown(0,false); // Enable display
lc.setIntensity(0,8); // Set brightness level (0 is min, 15 is max)
lc.clearDisplay(0); // Clear display register
}
void loop()
{
adc_value = analogRead(A0);
brightness = adc_value/65; // Divide by 65 to get Maximum Brightness 15.
lc.setIntensity(0,brightness);
// Display 1 through 8
for(int i=0; i《8; i++){
lc.setDigit(0,i,i,false);
}// End i
delay(500);
}
使温度/湿度计显示自动调节亮度
您只需将DHT22传感器插入Arduino屏蔽接头(引脚GND,13、12、11)即可制成温度/湿度计,如下所示。 DHT22引脚的GND,数据和VCC连接到Arduino的GND,D12和D11引脚。然后,您只需向D11引脚写入“逻辑1”即可为DHT22传感器供电。
制造一个具有自适应亮度控制的基于DHT22的简单温度/湿度计
要进行测试,您可以将DHT22直接插入Arduino接头并通过I/O引脚为传感器供电。
责任编辑:wv
-
LED显示屏
+关注
关注
35文章
1817浏览量
98589 -
防护罩
+关注
关注
0文章
4浏览量
6600
发布评论请先 登录
相关推荐
评论