×

欧姆时钟开源分享

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

陈厚合

分享资料个

描述

这个时钟的形状像一个大电阻,通过点亮具有等效电阻颜色代码的波段来显示时间。

poYBAGNkfrOAORKuAAGqkK6Zf5g511.jpg
每个“电阻”带包含一个 RGB LED
 

如果您不知道您的电阻器颜色代码,您可以使用下表来确定时间。

pYYBAGNkfrWAAm4DAAE4KdPmb4Y467.jpg
如何使用电阻颜色代码显示时间
 

设定时间

时钟支持使用一对按钮或通过读取放置在其两个端子上的实际电阻器的值来设置时间。

两个按钮是 SET 和 NEXT。按下 SET 按钮将使小时 - 十和小时 - 单位波段闪烁。NEXT 按钮将提前小时。到达 23 (RED - ORANGE) 后,它将自动滚动到零 (BLACK - BLACK)。按下 SET 按钮将固定小时并闪烁 Minutes - 10 波段。NEXT 按钮将前进数十分钟。达到 5(绿色)后,它将自动滚动到零(黑色)。按下 SET 按钮将固定几十分钟并闪烁 Minutes - Units 带。NEXT 按钮将推进分钟单位。到达 9(白色)后,它将自动滚动到零(黑色)。再次按下 SET 按钮会将时间写回实时时钟 (RTC)。

要使用电阻器设置时间,请将电阻器放在端子上并按下 NEXT 按钮。大于 100,000 欧姆的值将被忽略。任何大于 2359 欧姆的值都会导致时钟设置为 23:59。任何大于 59 的分钟值都将导致时钟设置为 59 分钟。例如,一个 390 欧姆的电阻会导致时间显示 03:59。

电路设计

时钟围绕 ATtiny1614 微处理器构建。它使用 DS1307 RTC(实时时钟)来保持时间,即使时钟未通电。两个触觉按钮用于手动设置时间。该时钟还包括一个自动量程欧姆表,因此您可以使用电阻器设置时间。例如,1000 欧姆电阻器会将时间设置为上午 10:00,而 2200 欧姆电阻器会将时间设置为 2200 小时或晚上 10:00。

欧姆表使用模拟引脚来读取使用已知电阻器和被测量电阻器的分压器的输出。它有五个范围,每个范围由一个 P 沟道 MOSFET 切换。

pYYBAGNkfriAVe92AABR4WP60VA668.jpg
测量未知电阻
 
poYBAGNkfryAINPcAAMdvH26QBE505.png
欧姆时钟示意图
 

3D打印

STL 文件已包含在内。要么把它们带到 3D 打印店打印出来,要么如果你有自己的 3D 打印机,通过切片软件运行它们。

  • “Ohm - Band Separator.stl” - 3 关,0.2mm 层高,无支撑,白色
  • “Ohm - Band.stl” - 4 关,0.2 毫米层高,无支撑,棕色
  • “Ohm - Black Seperator.stl” - 8 关,0.2mm 层高,无支撑,黑色
  • “Ohm - End Piece.stl” - 2 关,0.2mm 层高,支持触摸构建板,棕色
  • “Ohm - Wire.stl” - 2 关,层高 0.2mm,支持触摸构建板,银色
  • “Ohm - Mount.stl” - 2 关,0.2mm 层高,无支撑,黑色
  • “Ohm - Base.stl” - 1 个,层高 0.2mm,所有支撑,黑色

组装 - 步骤 1

打印零件后的第一步是为每个段添加一个 WS2812B RGB LED。最初我使用 4 个 WS2812B RGB 5050 LED 并将电线直接焊接到每个引脚上。

poYBAGNkfr6AND3UAAGIhnHxMbs598.jpg
连接 WS2812B RGB 5050 LED
 

问题是如果施加过多热量,LED 很容易损坏。为了简化构建,我的第二个版本使用了安装在散热器上的 WS2812B。

pYYBAGNkfsGAXKqWAABCZO5Txs8201.jpg
WS2812B RGB 5050 LED 散热片
 

无论您选择使用哪种类型的 WS2812B LED,接线仍然如此。

pYYBAGNkfseAdq_XAAdhpimMZRY162.jpg
如何接线和安装 WS2812B LED
 

组装 - 第 2 步

每个段的每一端都有一个黑色端板(Ohm - Black Seperator.stl)。使用强力胶粘在每个端板上。

pYYBAGNkfs2AKT6bAAc3FrSL0Yc639.jpg
将端板和 LED 模块添加到带组件
 

组装 - 第 3 步

使用 WS2812B 测试仪测试分段组件。您可以使用 Arduino UNO 或类似设备上的 Adafruit_NeoPixel 库中的 StrandTest 示例连接快速测试仪。我用的是自制的WS2812B 测试仪

poYBAGNkftyAMG4yAAqg-Ob3apQ917.jpg
测试带组装
 

组装 - 第 4 步

每个段通过分隔符(Ohm - Band Separator.stl)与其相邻段分开。使用强力胶将隔板粘到其中一个部分上。将右段的 DOUT 连接到左段的 DIN。连接后,将两个部分粘合在一起。

pYYBAGNkfuSAQzzRAAfB_rznH_g439.jpg
将带子和胶水连接到垫片上
 

所有 GND 线连接在一起,所有 VCC 线连接在一起。您现在可以粘在末端件上(“Ohm - End Piece.stl”)。测试完成的组件。

组装 - 步骤 5

现在是组装 PCB 的时候了。由于 ATtiny1614 仅提供 SMD 封装,因此 PCB 完全采用 SMD 封装。

我已经包含了 Eagle 文件,以防您想将电路板商业化,或者像我一样自己制作。我使用了碳粉方法。

poYBAGNkfuiABLZbAAhbiF6F1-k292.jpg
添加 SMD 组件和链接
 

首先添加 SMD 组件。我发现在焊接 SMD 元件时使用焊膏比使用卷盘中的焊料更容易。

如果您的电路板是单面的,请添加链接。

组装 - 步骤 6

将顶部组件添加到 PCB。请注意,470uF 电容器位于板上。我使用了两个机加工的母头针来允许外部电阻设置时间。

poYBAGNkfu6AKzGBAAtIjxBhypU950.jpg
添加顶部组件,接线并粘到底座上
 

在粘贴其他任何内容之前,我建议您上传代码(请参阅下一步)。激活电阻器组件后,旋转组件直到可以看到条带。将“Ohm - Wire.stl”粘贴到电阻器组件的每一端。将两个“Ohm - Mount.stl”支架粘贴到“Ohm - Base.stl”底座上。最后将底座粘到电阻器组件上。

用热胶粘上 2032 SMD 电池座和 PCB。您可能需要使用热胶来保持接线到位。

组装 - 步骤 7

ATtiny1614 是新一代 ATtiny 微处理器的一部分。与 ATtiny85 等早期系列不同,新品种使用 RESET 引脚对 CPU 进行编程。要对其进行编程,您需要一个 UPDI 程序员。我用 Arduino Nano 做了一个。您可以在Create Your Own UPDI Programmer中找到完整的构建说明它还包含将 megaTinyCore 板添加到 IDE 的说明。

USB 插座为时钟 (5V) 供电。ATtiny1614 处理器的 UPDI 引脚连接到 USB 插座上的 D+ 引脚。这允许使用定制电缆对 ATtiny1614 进行编程。USB Mini 插头可在 eBay 上买到,或者您可以剪断旧的 USB Mini 电缆。

pYYBAGNkfvOANkqqAARPOzBhoW0928.jpg
用于我的自制 UPDI 编程器的 USB-Mini 连接器电缆
 

将 USB 电缆从您的 PC 连接到 Arduino Nano。打开 Arduino IDE 并上传随附的草图。

结论

不幸的是,RGB LED 不能显示全范围的颜色。棕色与灰色和黑色一起是一个有问题的颜色。这往往会破坏整体效果。


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

评论(0)
发评论

下载排行榜

全部0条评论

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