×

LED MATRIX动画时间、日期、温度和湿度开源

消耗积分:0 | 格式:zip | 大小:0.00 MB | 2022-11-07

李敏

分享资料个

描述

在本教程中,我们将学习如何使用 LED 矩阵 MAX7219、温度和湿度传感器 DHT11 和 RTC DS1307 模块来显示当前温度、湿度、时间和日期。

观看视频!

第 1 步:您需要什么

  • Arduino UNO(或任何其他 Arduino)
  • LED矩阵。我们将使用 FC-16 模块,它具有四个级联的 8×8 LED 矩阵显示器和每个显示器的内置 MAX7219 LED 驱动器。
  • 面包板
  • 跳线
  • RTC DS1307 模块
  • DHT11传感器
  • Visuino 程序:下载 Visuino

第 2 步:电路

 
poYBAGNkdJCAd26kAAGRY0-uEFg260.jpg
 
  • 将 RTC DS1307 模块引脚[VCC] 连接到 Arduino 引脚[5V]
  • 将 RTC DS1307 模块引脚[GND] 连接到 Arduino 引脚[GND]
  • 将 RTC DS1307 模块引脚[SDA] 连接到 Arduino 引脚[SDA]
  • 将 RTC DS1307 模块引脚[SCL] 连接到 Arduino 引脚[SCL]
  • 将 DHT11 传感器引脚 [GND] 连接到 Arduino 引脚 [GND]
  • 将 DHT11 传感器引脚 [VCC] 连接到 Arduino 引脚 [5V]
  • 将 DHT11 传感器信号引脚 [S] 连接到 Arduino 数字引脚 [4]
  • 将 LED 矩阵引脚 [VCC] 连接到 Arduino 引脚 [5V]
  • 将 LED 矩阵引脚 [GND] 连接到 Arduino 引脚 [GND]
  • 将 LED 矩阵引脚 [DIN] 连接到 Arduino 数字引脚 [11]
  • 将 LED 矩阵引脚 [CS] 连接到 Arduino 数字引脚 [10]
  • 将 LED 矩阵引脚 [CLK] 连接到 Arduino 数字引脚 [13]

注意:另请阅读下面的故障排除部分

第 3 步:启动 Visuino,并选择 Arduino UNO 板类型

 
 
 
 
poYBAGNghkqAQ9LeAABpWGAU18Q335.jpg
 
1 / 2
 

Visuino:https ://www.visuino.eu也需要安装。下载免费版本或注册免费试用。

启动Visuino,如第一张图所示点击Visuino中Arduino组件(图1)上的“工具”按钮出现对话框时,选择“Arduino UNO”,如图2所示

第 4 步:在 Visuino 中添加组件

 
 
 
 
poYBAGNkdJWAG7k6AAAWliVvAt0540.jpg
 
1 / 13
 
  • 添加2X“比较整数值”组件
  • 添加 2X“数字(布尔)值”组件
  • 添加“延迟”组件
  • 添加“数字多源合并”组件
  • 添加“时钟发生器”组件
  • 添加2X“计数器”组件
  • 添加“ Maxim LED Display Controller SPI MAX7219/MAX7221 ”组件
  • 添加“日期/时间值”组件
  • 添加“实时时钟(RTC)DS1307 ”组件
  • 添加“解码(拆分)日期/时间”组件
  • 添加4X“格式化文本”组件
  • 添加“ DHT11 ”组件
  • 添加“ Text Mux(多通道切换) ”组件
  • 添加“整数多源”组件

第 5 步:在 Visuino 设置组件中

 
 
 
 
pYYBAGNkdJeAVAeOAAA-bWCZIC4969.jpg
 
1 / 15
 
  • 选择“ Delay1 ”并在属性窗口中将“Interval (uS)”设置为 5000000
  • 选择“ DigitalValue2 ”并在属性窗口中将“ Value ”设置为 True
  • 选择“ ClockGenerator1 ”并在属性窗口中将“频率”设置为 10 并选择“启用”并单击 Pin 图标并选择“ Boolean SinkPin
  • 选择“ Counter1 ”并在属性窗口中将Max>Roll Over设置为 False 并将Max>Value设置为 5
  • 选择“ Counter1 ”并在属性窗口中将Min>Value设置为 -8
  • 选择“ Counter1 ”并在属性窗口中将“ Reversed ”设置为 True
  • 选择“ CompareValue1 ”并在属性窗口中将“ Value ”设置为 5
  • 选择“ Counter2 ”并在属性窗口中将Max>Value设置为 3
  • 选择“ Counter2 ”并在属性窗口中将Min>Value设置为 0
  • 选择“ IntegerMultiSource1 ”并在属性窗口中设置为Output Pins to 3
  • 双击“ LedController1 ”并在“Pixel Groups”窗口中将“ 2D Graphics ”拖到左侧
  • 并在属性窗口中将“水平镜像”设置为真,将“水平反转”设置为真,并将“宽度”设置为 32
  • 还在属性窗口中选择“元素”,然后单击 3 点按钮

在元素窗口中拖动:

  • 左侧的Text Field ”并在属性窗口中将“ Wrap ”设置为False,然后单击“ X ”引脚按钮并选择“ Integer Sink Pin ”并单击“ Y ”引脚按钮并选择“ Integer Sink销"
  • 填充屏幕”到左侧

关闭“元素”窗口

关闭“像素组”窗口

  • 选择“ DateTimeValue1 ”并在属性窗口中将“ Value ”设置为您当前的日期和时间
  • 选择“ TextMux1 ”并在属性窗口中将“ Input Pins ”设置为 4
  • 选择“ FormattedText1 ”并在属性窗口中将“ Text ”设置为%0%1
  • 双击“ FormattedText1 ”并在元素窗口中
  • 将“ Analog Element ”拖到左侧并在属性窗口中将“ Precision ”设置为1
  • 将“文本元素”拖到左侧并在属性窗口中将“初始值”设置为 C

关闭元素窗口

  • 选择“ FormattedText2 ”并在属性窗口中将“ Text ”设置为%0%1
  • 双击“ FormattedText2 ”并在元素窗口中
  • 将“ Analog Element ”拖到左侧并在属性窗口中将“ Precision ”设置为0
  • 将“文本元素”拖到左侧并在属性窗口中将“初始值”设置为 %

关闭元素窗口

  • 选择“ FormattedText3 ”并在属性窗口中将“ Text ”设置为%0:%1
  • 双击“ FormattedText3 ”并在元素窗口中
  • 2X 文本元素”拖到左侧

关闭元素窗口

  • 选择“ FormattedText4 ”并在属性窗口中将“Text”设置为%0.%1
  • 双击“ FormattedText4 ”并在元素窗口中
  • 将 2X“文本元素”拖到左侧

关闭元素窗口

第 6 步:在 Visuino Connect 组件中

 
 
 
 
pYYBAGNkdJyACSOCAAEwXTjQ7lM136.jpg
 
1 / 5
 
  • 将“ DateTimeValue1 ”引脚输出连接到“ RealTimeClock1 ”引脚设置
  • 将“ RealTimeClock1 ”引脚控制 I2C 连接到Arduino引脚 I2C In
  • 将“ RealTimeClock1 ”引脚输出连接到“ DecodeDateTime1 ”引脚输入
  • 将“ DecodeDateTime1 ”引脚“月”连接到“ FormattedText4 >“ TextElement2 ”引脚
  • 将“ DecodeDateTime1 ”引脚“Day”连接到“FormattedText4 > “TextElement1”引脚 In
  • 将“ DecodeDateTime1 ”引脚“Hour”连接到“FormattedText3 > “TextElement1”引脚
  • 将“ DecodeDateTime1 ”引脚“Minute”连接到“FormattedText3 > “TextElement2”引脚
  • 将“ HumidityThermometer1 ”引脚传感器连接到Arduino板数字引脚 [4]
  • 将“ HumidityThermometer1 ”引脚温度连接到“FormattedText1> AnalogElement1”引脚输入
  • 将“HumidityThermometer1”引脚湿度连接到“FormattedText2>AnalogElement1”引脚输入
  • 将“ FormattedText1 ”引脚输出连接到“ TextMux1 ”引脚[0]
  • 将“ FormattedText2 ”引脚输出连接到“ TextMux1 ”引脚[1]
  • 将“ FormattedText3 ”引脚输出连接到“ TextMux1 ”引脚[2]
  • 将“ FormattedText4 ”引脚输出连接到“ TextMux1 ”引脚[3]
  • 将“ TextMux1 ”引脚输出连接到“LedController1 > Text Field”引脚输入
  • 将“ CompareValue2 ”引脚输出连接到“ Delay1 ”引脚“Start”和“ DigitalValue1 ”引脚时钟
  • 将“ Delay1 ”引脚输出连接到“ DigitalValue2 ”引脚时钟
  • 将“ DigitalValue1 ”引脚输出连接到“ DigitalMultiMerger1 ”引脚[0]
  • 将“ DigitalValue2 ”引脚输出连接到“ DigitalMultiMerger1 ”引脚 [1]
  • 将“ DigitalMultiMerger1 ”引脚输出连接到“ ClockGenerator1 ”引脚“启用”
  • 将“ ClockGenerator1 ”引脚时钟连接到“ Counter1 ”引脚输入
  • 将“ Counter1 ”引脚输出连接到“ IntegerMultiSource1 ”引脚输入,“ CompareValue1 ”引脚输入和“ CompareValue2 ”引脚输入
  • 将“ CompareValue1 ”引脚输出连接到“ Counter2 ”引脚输入
  • 将“ Counter2 ”引脚输出连接到“ TextMux1 ”引脚选择
  • 将“ IntegerMultiSource1 ”引脚 [0] 连接到“LedController1 > 文本字段”引脚 Y
  • 将“ IntegerMultiSource1 ”引脚 [1] 连接到“LedController1 > Fill Screen”引脚时钟
  • 将“ IntegerMultiSource1 ”引脚 [2] 连接到“LedController1 > Text Field”引脚时钟
  • 将“ LedController1 ”引脚输出 SPI 连接到Arduino 板引脚 SPI In
  • 将“ LedController1 ”引脚芯片选择连接到Arduino 板数字引脚 [10]

第 7 步:生成、编译和上传 Arduino 代码

 
pYYBAGNkXMOATYIuAAC6zMtn_xU450.jpg
 

在 Visuino 中,在底部单击“构建”选项卡,确保选择了正确的端口,然后单击“编译/构建和上传”按钮。

第 8 步:播放

如果您为 Arduino UNO 模块供电,LED 矩阵将开始从底部到顶部显示温度、湿度、时间和日期。

恭喜!您已经使用 Visuino 完成了您的项目。还附上了我为本教程创建的 Visuino 项目文件,您可以下载并在 Visuino 中打开它:

第 9 步:故障排除

在我的情况下,当为 Arduino 供电时,LED 矩阵闪烁并且文本没有完全显示。这是因为 MAX7219 芯片对任何电压干扰都非常敏感。

为了解决这个问题,我在 LED Matrix VCC(+) 和 GND(-) 之间添加了一个 47uf 电解电容,确保正确连接电容,+ on (VCC) 和 - on (GND)


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !