Arduino字幕时钟的制作

发表于 2019-08-19 09:30:10 收藏 已收藏
赞(0) •  评论(0

Arduino字幕时钟的制作

发表于 2019-08-19 09:30:10

第1步:时钟类型示例

Arduino字幕时钟的制作

图片帧字时钟

图片1。

图像帧时钟是构建时钟最简单,最便宜的时钟。它只需要一个普通的黑色6“x6”(150x150mm)相框和一个白卡安装,将框架尺寸减小到4“x4”。足以看到周围有一点空间的显示器。有机玻璃被真正的2mm玻璃取代,因为有机玻璃吸引了太多灰尘。

在框架的后部,我添加了一个170mm x 170mm x 40mm深的薄胶合板盒子。您可以在背面获得一个带有相同尺寸框的阴影框。

有机玻璃立方体时钟

图片2.

有机玻璃立方体时钟建造起来有点棘手,因为有2个Veroboards可以在Perspex表壳和底座上钻多个孔。还可以制造更便宜的MDF底座,这也可以在主箱和DHT22温度和湿度传感器中安装PIR而不是雷达传感器。

有机玻璃外壳和20mm有机玻璃基座的成本均高于单独使用相框。

图3显示了迷你字时钟与原始时钟相比的相对大小。

第2步:有机玻璃案例选项

有机玻璃案例选项

带有雷达控制显示屏和PWM LED背光灯。

有两种外壳样式相框或有机玻璃立方体。

100mm x 100mm有机玻璃立方体可单独使用或具有MDF底座用于容纳温度/湿度传感器,还有一个PIR,用于在房间内无人时将显示屏空白。也可安装20毫米厚的有机玻璃底座,见上图1。在这种情况下,温度/湿度传感器安装在机箱内,并配有微波雷达传感器RCWL0516以感应运动。

图2.透明胶片安装在侧面,后面和顶部,可以是普通的,也可以根据需要打印信息。这些喷墨透明胶片由原始的结婚证书和原始邀请制成。安装在时钟的两侧,由板载LED照亮。

图3.后部的LED在夜间照亮由PIR/雷达传感器控制的透明胶片。

第3步:相框选项

图片框架选项

图片1我使用了一个普通的黑色6“x6”(150x150mm)相框和一个白卡安装架,将框架尺寸减小到4“x4”。足以看到周围有一点空间的显示器。有机玻璃被真正的2mm玻璃所取代,因为有机玻璃吸引了太多的灰尘。

图2在框架的后部我添加了一个170mm x 170mm x 40mm深的薄胶合板盒。我有使用斜接胶(图3)将盒子固定在一起,然后从木材切割中切割并粘合角撑。

盒盖用小木螺钉固定在这些角撑上。盒子固定在框架上,带有2个尖角支架,我从一些带角度的铝片上切下来。

使用有机玻璃盖可在框架后部看到触摸传感器。

从木块上切下木脚,在桌子或桌子上以一定角度固定框架。橡胶脚粘在木块脚上,以阻止时钟在桌面或桌面上滑动。

由于这个时钟是第一个结婚纪念日,因此在有机玻璃板后面贴上一个标签。此照片中未显示12v电源线和短USB线从盒子后部出来。

图4.点阵显示固定显示在卡片安装座的正面。在完成的时钟上,LED固定在字母掩模和一张深色中性密度有机玻璃板后面,只有当LED亮起时才能看到掩模上的字母。

第4步:触摸按钮控件

关于有机玻璃案例版本有5个触摸按钮。一个位于机箱背面,只需将背光设置为开启或关闭。

其他四个触摸按钮位于显示屏两侧的四个角落周围。图3是从机箱后部观察的,机箱透明胶片已移除,显示触摸按钮位置。这些按钮也在另一侧重复。

除非在子菜单中“左上”按钮步进到上一个显示模式,“右上”按钮步进到下一个显示模式。/p》

触摸外壳上的触摸位置时,触摸按钮上的LED指示灯会在您触摸时指示它处于活动状态。图2触摸按钮在主显示屏后面发光,以显示其位置。按钮仅在触摸时亮起,通常是关闭的。

图片1显示正在使用的触摸按钮的动画。

1个左上角按钮从“字时钟”模式步进到上一个模式“消息显示”2右上方按钮从“消息显示”模式返回到下一个模式“字时钟”3在“字时钟”模式下按下右下方按钮关闭PIR/雷达模块“PIR NO”显示为2秒4在“字时钟”模式下按下左下按钮打开PIR/雷达模块开“PIR ON”显示2秒

图4相框版本有四个触摸按钮位于每个角落主框架的后部。

通过轻轻挤压拇指和食指之间的角落来激活按钮。

步骤5:触摸按钮控件

触摸按钮具有不同的功能,具体取决于时钟的模式,请参见下图。

有机玻璃时钟在机箱后部有一个第5个按钮,用于打开和关闭背光LED

步骤6:显示模式时钟和实用程序

时钟有三种时间模式字时钟,数字时钟,模拟时钟和温度和湿度模式以及三个游戏,生命游戏,西蒙和俄罗斯方块。

它还有一个消息模式,在启动时显示消息或选择模式1。由于这是第一个结婚周年纪念时钟,启动消息显示婚礼日期以及新娘和新郎的名字。

相框时钟或有机玻璃立方体时钟的显示模式相同。

时钟/实用程序

图2模式1信息启动时预设的循环消息或模式1设置

图1模式2字时钟

时间显示在显示屏底部显示的文字和线性秒数

图3模式3数字时钟

显示屏底部带有线性秒数的数字时钟

图4模式4温度和湿度显示模式

图5模式5模拟时钟

带线性秒的模拟时钟

第7步:显示模式游戏

图片1模式6生命游戏

康威的生命游戏世界生命游戏的世界是一个无限的二维正方形格子网格,每个网格都处于两种可能的状态之一,活着或死亡,或“人口稠密”或“无人居住” ”。

每个细胞与其八个邻居相互作用,这八个邻居是水平,垂直或对角相邻的细胞。在每个步骤中,发生以下转换:具有少于两个活邻居的任何活细胞死亡,好像由人口不足引起。任何有两三个活邻居的活细胞都会留在下一代。任何有三个以上活着的邻居的活细胞都会死亡,好像是人口过剩。具有正好三个活邻居的任何死细胞变成活细胞,就好像通过繁殖一样。

初始模式构成了系统的种子。通过将上述规则同时应用于种子出生中的每个细胞并且同时发生死亡来创建第一代,并且发生这种情况的离散时刻有时被称为蜱(换句话说,每一代是前一个的纯函数)一)。规则继续被重复应用以创造更多世代。

图片2模式7西蒙游戏

西蒙记忆游戏

当输入你的序列时双击最后一个条目结束轮到你了。

图片3模式8俄罗斯方块

俄罗斯方块是1984年6月发布的苏联瓷砖配对拼图视频游戏。

第8步:组件

图1和2 16x16 LED矩阵/MAX2719模块 - 4关

这些将在使用前进行修改。

图3微波雷达传感器RCWL0516 - 1关闭

用于相框设计或在立方体上使用有机玻璃基座时钟

图4 PIC模块1关闭

仅在有机玻璃立方体时钟上使用MDF基础时使用

图5 MP1584 PSU模块1关闭

该DC/DC降压转换器基于MP1584,它将4.5V和28V之间的输入电压转换为0.8V和18V之间的较小电压,能够驱动3A负载,具有出色的线路和负载调节性能。

图6和7 TTP223电容式触摸开关模块4关闭相框设计或5个关闭有机玻璃立方体

TTP223是一款触摸板检测器IC,提供内置于微型模块中的1个触摸键15mm x 11mm,可以从2.5到5.5v的PSU供电。触摸检测IC旨在取代传统的机械按钮,并通过有机玻璃和玻璃非常好地工作。

Pic 8 DS3231 RTC(实时时钟)1关闭

RTC使用DS3231 AT24C32 I2C精密实时时钟模块,0°C至+ 40°C时精度为±2ppm。该模块随附锂离子充电电池,但我使用非充电电池,因此已从模块中取下电阻R5,如下所示。

图9 AM2302 DHT22温度和湿度模块1关闭

AM2302是一款电容式湿度传感,数字温度和湿度模块,可通过1线将数据发送至Arduino。我使用的模块形式包括5v到输出引脚之间的电阻。

Pic 10 Arduino Nano 1关闭

需要的其他几个电子元件参见Schematics和Veroboard布局详情。

步骤9:构造显示蒙版

显示蒙版在喷墨透明纸上打印出来。

掩码是在Inkscape中绘制的。 Inkscape是专业品质的矢量图形软件,可在Windows,Mac OS X和GNU/Linux上运行。它被世界各地的设计专业人士和业余爱好者用于创建各种图形,如插图,图标,徽标,图表,地图和网页图形。

我使用了大字时钟的原始文件并在Photoshop中将其缩小,因此字母边框为6.2平方厘米。然后通过增加画布大小来添加黑色边框。我在底部添加了额外的黑色边框,以便调整LED显示屏。要创建自己的蒙版,请使用此处包含的原始Inkscape文件,修改它然后缩小它。

步骤10:构造框架图层

图片1框架,白色安装和玻璃安装

图片2框架被移除,一张中性密度有机玻璃被切割成与安装座/玻璃相同的尺寸。

这是安装在支架后面。

图片3框架安装和玻璃安装,但中性密度有机玻璃板被移除,以显示Vero板和显示矩阵。

图4白色安装和中性密度有机玻璃被移除,框架显示为半透明,以显示Vero板如何位于框架中的玻璃折扣内。

时钟后部的木箱适合这个折扣允许删除vero板。

图5中性密度板安装到位。 LED矩阵变黑并消失。按此顺序排列 - 框架,玻璃,白色安装板,中性密度有机玻璃,喷墨透明度上的字母掩模,Vero板。请注意仅通过中性密度有机玻璃板和Vero板的螺栓。

图6所有层都在适当位置并显示在上面。 LED通过字母掩模照射,并在框架中可见。

所有图层都通过折扣内侧的框钉固定在框架中。

步骤11:构造有机玻璃案例

100毫米x 100毫米有机玻璃外壳有5个侧面和一个可拆卸底座,在这里从亚马逊购买。

图片1和2有机玻璃外壳可以保持透明或配有包含信息或图片的透明胶片。

这些是由LED背光照明,如果需要可以进行PIR/雷达控制。

图3& 4表壳前部装有深色中性密度有机玻璃板。 LED矩阵与此相配合,中性密度板将未点亮的LED隐藏起来。

图5可根据需要在箱子上安装各种底座,厚度为20mm的有机玻璃板。

图6 MDF底座适合透明外壳。显示器Veroboard固定LED矩阵用螺栓固定在表壳前面,中间密度板在前面。可以看到主Vero板安装在机箱底座上,并装有Nano和其他组件。 PIR和温度/湿度传感器分别安装在机箱前部和底座上。如果使用透明的Perspex底座,则PIR将被雷达模块替换,因为它将粘在外壳的顶部。

有机玻璃外壳的底座用螺钉固定在MDF底座上或用螺栓固定在底座上。有机玻璃基地都通过主要的Veroboard。然后将有机玻璃案件固定在三个地方。

图7固定案例的细节。案件的两侧有两个。为清晰起见,拆下外壳外侧的钢垫圈。

图3第3箱固定的细节。为清楚起见,外壳上的钢垫圈再次移除。

步骤12:构造RTC修改

RTC修改

修改DS3231 AT24C32 I2C精密实时时钟模块

我的时钟使用DS3231 AT24C32 I2C精密实时时钟模块。

该模块随附锂离子充电电池,请参见上图。我使用的是非充电电池,因此已从模块中取下电阻器R5,如图1和图2所示。

图4显示了修改后的原理图。

警告。

这一步是可选的,我只是这样做,因为我不希望在我的时钟中充电锂离子电池的风险。在一些论坛上讨论了这个模块设计是否适合为这些电池充电。

步骤13:构建修改MAX2719显示模块

此时钟的原始设计使用定制的PCB。要使用带有软件的标准MAX7219模块,需要在每个MAX2719模块上更改六个连接。

这可以在软件中完成,但不是计算软件旋转,我发现更快更改接线以匹配软件。如果你想用软件做它并让它工作,请告诉我,我将修改我的代码。

图1和2修改非常简单。首先将以下LED矩阵引脚弯曲90°,顶部引脚向上弯曲,底部引脚向下弯曲。引脚16,15,3,4,10和11

连接使LEDA到点矩阵引脚16

LEDB到点矩阵引脚15

LEDG到点矩阵引脚3

LEDF到点矩阵引脚4

LEDE到点矩阵引脚10

LEDC到点矩阵引脚11

图3首先将六根导线焊接到LED矩阵的背面。

图4将六根导线向下穿过PCB的安装孔。

图片5&6最后将电线焊接到PCB上的LED引脚。

焊接的电线应与LED矩阵上的引脚弯曲引脚相对应。

模块按原样旋转安装(再次由于实际情况限制,这是原始设计)见图7和8前视图和后视图。

图9模块的前视图,点阵显示器未插入

步骤14:构造测试修改后的MAX7219模块

MAX7219点阵模块接线测试程序

我有modif使用字时钟草图,使MAX2719模块在接线模块后进行测试。所有这个程序都是从矩阵的左上角到右下角依次点亮每个LED。请参见动画1.

图2只需将5根线连接到NANO和MAX2719模块,然后从其USB端口为NANO供电。

从随附的zip文件加载草图并将其放入跑。依次测试每个模块。

图3一旦所有模块都经过修改和测试,就可以将它们插入Vero板。

在显示器边缘周围建一个木框架来固定它们紧密连在一起,使LED与单词对齐。

根据您的Veroboard,可能不需要。我发现LED矩阵没有准确排列,因此很难在以后的LED上使用Letter掩膜。

框架只是在角落处用薄的木材粘合,并使用了斜面粘合剂。后箱构建。

步骤15:构建模块互连

模块互连

该图显示了模块的连接方式。大多数模块直接连接到Arduino Nano。

MAX7219板仅通过模块01连接到NANO。其他模块以菊花链形式连接在一起。然后将每个8x8 LED矩阵连接到MAX7219模块。

将NANO和第一个MAX7219模块与MAX7219模块之间的距离尽可能缩短。

还要确保为菊花链式MAX7219的两端供电,因为大部分电源都是由电路的这一部分吸取的。

除非在立方体时钟设计上使用5来控制LED背光,否则需要四个触摸传感器模块。

根据所选设计,将需要PIR或雷达模块。

步骤16:构建Veroboard布局图片帧时钟

Veroboard布局画框时钟

注意。任何水平安装的连接器都需要使用工艺刀在孔之间切割轨道。

相框样式有1个单板,而有机玻璃立方体设计有2个板。

Picture 1 Picture Frame Veroboard Layouts Board显示次要组件,模块插槽位置和5v/0v运行。注意LDR连接器,预设R,DHT22和触摸传感器连接器安装在电路板后部。所示的安装螺栓将通过中性密度显示过滤器连接。任何水平安装的连接器都需要使用工艺刀在孔之间切割轨道 - 见后视图。

图2电路板布局,所有模块都将LED矩阵固定到位。注意垂直安装的MP1584和RTC垂直安装并弯曲成与LED矩阵顶部齐平的角度。

这样可以在以后安装时保持中性密度有机玻璃板的清晰度。电池座从RTC上脱焊,并安装在电路板背面。只需取下工作时钟上的后盖即可轻松更换电池。微波运动检测器固定在3针安装插座上,并附有一些热熔胶。

图3 LED矩阵安装在MAX2719板上。请注意LED矩阵外侧的薄木支撑框架,使它们紧密对齐。

图4最后,带有字母的喷墨透明度放在LED矩阵的顶部。请注意,未显示这是带有大标签顶部和底部的纸张的切口,以便在中性密度有机玻璃板用螺栓固定到位后进行对齐。

图5 Veroboard的背面。

请注意安装在后部的预设电阻和RTC电池座,以便在卸下后盖时轻松取用。同样,4触摸传感器DHT22和LDR的连接器也安装在Vero Board的后部。

注意。任何水平安装的连接器都需要用工艺刀在孔之间切割轨道。

封闭的zip文件包含所有全尺寸的Veroboard布局。

步骤17:构建Veroboard布局有机玻璃案例时钟

Veroboard布局有机玻璃盒时钟

这种时钟基板和显示板有2个Veroboard。

图1显示基板。请注意,背光控制触摸传感器模块安装在触摸时钟盒的后部。

图2带模块的基板。

注1带有MDF底座的DHT22和PIR模块安装在底座上,电缆通过电路板上的开孔布线。

如果使用Perspex底座,则DHT22直接安装在插座上。这将测量不是房间内的温度/湿度,因此可以预期更高的温度读数。

注2:某些模块垂直安装。

图3显示了后部Veroboard布局。

显示板

图4显示模块连接器的裸板(MAX2719和主板的触摸传感器连接器安装在板的后部)。

请注意,任何水平安装的连接器都需要用工艺刀切割孔之间的轨道 - 见后视图。

图5带有MAX2719板的显示板。请注意每块电路板的方向。

图6 LED矩阵适用于MAX2719电路板。木框架使LED矩阵保持对齐。

图7最后,带有字母的喷墨透明度放在LED矩阵的顶部。

注意未显示这是切出的一旦显示板用螺栓固定在有机玻璃外壳的前面,顶部和底部都有大的标签,以便对齐。

触摸传感器模块垂直显示。这些将配备一些泡沫单面胶带,并从板上弯曲成角度,使它们与外壳接触。这允许触摸传感器通过有机玻璃盒工作。

图8

显示器后部电路板将触摸传感器和MAX2719显示在安装在电路板这一侧的主板连接器上。

注意插座仅用于说明 - 在此端直接焊接到主板的电缆连接。

任何水平安装的连接器都需要用工艺刀切割孔之间的轨道。

图9

在电路板一侧显示触摸传感器的显示板接线。

我没有使用MAX2719和触摸传感器的插座连接器连接主板,如图所示在上面的Veroboard后面布局中,但是已经将电线直接焊接到电路板上。

显示的2个黑色插头是插入主板的这两个连接。请注意在焊点附近支撑这两条连接电缆的黑色棉质扎带。这样可以防止电缆在焊点处脱落。当拧紧安装螺栓时,用螺栓固定在Veroboard顶部和底部的铝制角度使其在LED矩阵周围扭曲。您可能会发现不需要这些括号!

图10

主板通过外壳固定在底座上。如果使用有机玻璃基座,则使用木螺钉固定MDF底座或M2螺栓。表壳顶部使用2个铜带固定,这些铜带以一定角度弯曲,M3螺栓焊接到位。

上一步中的全尺寸Veroboard布局采用zip文件。

步骤18:原理图

原理图

注意触摸传感器LED仅适用于立方体时钟。根据需要使用PIR或雷达模块。

zip文件中的全尺寸原理图。

步骤19:设置实时时钟

设定实时时钟

图片1

时钟在木框中有四个触摸传感器,见下图。

使用拇指和索引手指放在框架的前部和后部,非常轻柔地挤压框架以激活传感器。

在大多数屏幕

模式下,左上角传感器向后移动一个模式,右上角传感器移动到下一个屏幕模式。

模式为;

1个积分或启动信息

2个字时钟

3个数字时钟

4温度和湿度显示

5模拟时钟

6生命游戏

7西蒙游戏

8俄罗斯方块游戏

左下方按钮仅适用于某些显示模式。

设置时间

图片2

在数字时钟显示模式下设置时间。

按左上或右上触摸传感器,直至进入数字时钟模式

图3

在数字时钟模式下,按下左下或右下触摸传感器。

这将启动时钟设置模式,持续时间为小时闪烁和秒数停止。

图片4

通过按下右下方的触摸传感器,秒数可以重置为零。

左上方传感器现在可以逐步减少时间,右上方传感器将逐步增加时间。

一旦小时正确,按下左下方传感器。

图5

现在设置小时,使时钟移动到分钟设置模式,由分钟闪烁。

如果你还没有这样做,则右下方传感器会将秒数重置为零。

左上传感器现在将分秒向下,右上传感器将分钟上调。

将分钟设置为下一个实际分钟以及何时重新开始零按下左下方传感器以在正确的时间启动时钟。

图6

时钟在您设置时重新开始。

在有机玻璃盒上,时钟设置是唯一的区别,因为触摸传感器位于时钟盒的左侧和右侧。

步骤20:代码

Word映射表的时间

该图表显示了当天的每一分钟如何映射到单词。

这就是我说的时间。这当然会根据您所在的国家/地区,您居住在英国的英国以及您上学的某种程度而有所不同。

您可能希望更改此内容,当然也可以显示以下内容:开始屏幕。

更改代码

当您想要更改我的代码时,您可以将我的代码与“加泰罗尼亚代码”进行比较,以便更容易理解您需要做出哪些更改。我已将//Brett添加到我的代码中以突出显示我的更改。

更改代码。如果像我一样,你不是很擅长编码只是玩代码来了解它是如何工作的。每次我做一个微小的改变时,我只保存一个不同的版本。这样,如果我搞砸了,我可以回去一个版本然后重新开始。如果要保持线性秒显示更新显示屏上的版本号,那么您就知道每次尝试的版本号。这是在第47行的credit.h模块中完成的。

解释所有代码需要太长时间,但这里有一个非常简短的指南,介绍如何更改单词以及何时显示单词。

图2 WORDS在time.h中设置

在第52行,我们有const字节w_the [3] PROGMEM = {0,0,3 };

“THE”这个词在这一行描述,LED位置在大括号“{0,0,3}”中

这是LED的坐标当我们称之为“w_the”时,我们会发光。

LED矩阵编号从左上角开始,从0开始,因此“{0,0,3}”是第3个LED上下第3个LED包括这一个的3个LED将点亮。当字母THE处于该位置时,显示“THE”字样。

类似地,通过在这里{0,4,4}或第0行,第5行点亮四个LED来点亮“TIME”一词。 LED沿着LED点亮4个(记住从0开始计数)。沿着页面向下工作显示所有单词的位置。

图3 控制单词被点亮

这发生在模块time.cpp

在这里,您只需制作一个规则列表,告诉时钟在特定时间点亮哪些字。

图3显示了从第695行开始的部分代码

午夜时分,我们想让时钟说“晚上的时间是十二点”

午夜是00 00

“时间是”始终显示在第687行

所以我们添加规则,如果分钟为0,那么如果小时为0,则显示小时数字“ TWELVE“和”OCLOCK“这个词的单词”AT“和单词”NIGHT“

如果你按照代码说明,所有可能的时间组合都会被覆盖。

Code

程序文件模块

Brett_wordclock_v3_4.ino主程序

brightness.cpp/.h亮度自动调整

character.cpp/.h字符(数字)定义

credits.cpp/.h结束学分

display.cpp/.h显示和LED功能

life.cpp/.h生命游戏

serial.cpp/.h串口设置菜单

simon.cpp/.h Simon说游戏

temphum.cpp/.h温度和湿度显示

tetris.cpp/.h俄罗斯方块游戏

time.cpp/.h字时钟,数字时钟

timeanalog.cpp/.h模拟时钟

touchbuttons.cpp/.h触摸按钮,模式切换

第三方库:

Chronodot.cpp/.h Chronodot库(适用于DS3231)

DHT.cpp/.h温度传感器库(适用于DHT22)

LedControl.cpp/.h LedControl库(适用于MAX7219)

stc.cpp/.h/platform.h简单的俄罗斯方块克隆库

pitches.h注意来自Arduino网页的频率

声明:本文由入驻电子说专栏的作者撰写或者网上转载,观点仅代表作者本人,不代表电子发烧友网立场。如有侵权或者其他问题,请联系举报。侵权投诉

收藏

相关话题

评论(0)

加载更多评论

分享到

QQ空间 QQ好友 微博
取消