6 通道射频遥控器采用 CC2500 射频收发器模块和 microchip 的 PIC16F1847 微控制器设计。发射器配有 6 个轻触开关、4 个...
使用侧光 LED 显示屏的数字时钟/温度计
接线图
2024年10月20日 19:22 18
admin
该项目使用 Arduino 处理器控制 1958 年的老式研磨有机玻璃数字显示屏,用于显示时间和温度。电路由 USB 连接器的 5VDC、Arduino 电源的 9VDC 或使用降压调节器电路板的 12VDC 供电。该项目自 2022 年建成以来一直由 12V 太阳能电池持续运行。DS3231 实时时钟非常稳定,只需在夏令时发生变化时调整时间即可。
该显示屏显然是早期数字电压表的一部分,根据左侧数字上的 +/- 和 AC 符号可知。它是从一家剩余电子产品经销商处购买的,没有附带任何电子设备。该结构由一个铝制框架组成,带有铣削通道,可容纳成堆的有机玻璃片。数字、小数点和其他符号被铣削到有机玻璃片上。当光线通过铝制框架上的孔照射到有机玻璃片的侧面时,各个数字就会亮起。显示屏的外观类似于大型霓虹 NIXIE管。最初,显示屏会由小型白炽灯或霓虹灯照亮。数字高 1 英寸,显示屏正面约为 8 英寸 x 3 英寸。该显示屏由 100% 的难得金属 制成,是独一无二的设备。有一家名为 Lixie Labs的小公司 过去曾生产过类似的显示屏。不幸的是,该公司似乎不再有数字库存。有数控铣床的雄心勃勃的人可以生产所需的数字板并制作自己的显示屏。
总共有 24 位信息从 Arduino 微控制器串行移位到控制 LED 显示屏的接口板。接口板使用三个 74HC595 移位寄存器/锁存器 IC,它们控制四个 74LS145 解码器/驱动器 IC,用于驱动 40 个独立数字。6 位 75492 驱动器 IC 控制四个小数点和 +/- 符号。这里可以使用更常见的 ULN2003 IC,并进行适当的引脚排列更改。如果建造者想要使用第三个移位寄存器的所有 8 个输出,也可以使用 8 位 ULN2803。原始电压表应用中的 AC 符号未使用。
显示屏的 LED 是超亮的 505nM 水绿色部件。之所以选择它们是因为它们亮度高,颜色好看。也可以使用不同颜色的 LED,但它们应该是超亮类型的。LED 通过 100 欧姆和 120 欧姆限流电阻驱动,这些电阻将工作电流设置在 15mA 左右。如果您想驱动红色或橙色等低压 LED 颜色,则应增加这些电阻的值。小数点和 +/- 符号以较低的电流水平驱动,因为符号位于显示屏的前面,需要的亮度稍低一些。
接口板的 5V DC 电源来自 Arduino 的 5V 总线,一些旁路电容器用于消除移位寄存器电路的故障。1N4001 二极管连接在接口板的 5V 总线和接地线上,当电源引脚与 Arduino 连接不正确时,它可以防止反极性施加到接口芯片上。接口板上安装了可选的红色 LED 和限流电阻器作为电源指示器。
Dallas DS3231 I2C 实时时钟芯片通过 SCL 和 SDA 引脚连接到 Arduino 的 I2C 总线。时钟芯片还需要连接到 Arduino 的 +5V 和接地引脚。Adafruit 出售一款不错的 DS3231 分线板 ,其中包括一个小型锂电池座。
这是该项目的Arduino 源代码 。需要将几个额外的库下载到 Arduino 开发系统中以支持温度传感器。这些包括:SPI、OneWire 和 DallasTemperature。DS3231 时钟芯片需要 Adafruit RTClib 和 BusIO 库。
接口板是使用 IC 插座和点对点焊接接线在穿孔原型板上构建的。大多数连接都使用绕线,+5V 和接地总线使用 22 号镀锡总线线。接口板和 LED 阵列之间的连接使用彩虹带状电缆完成。接口板和 Arduino 之间的连接使用绞合线和针头完成。在连接所有 LED 之前,测试接口板非常重要,这样可以最大限度地减少电缆弯曲,从而避免 LED 针脚折断。
单个 LED 安装在显示屏组件的孔中,并用热熔胶固定。五个公共 LED 阴极总线连接在一起,并通过另一条带状电缆带回接口板。焊接 LED 引脚时务必使用散热器,因为 LED 对过热极为敏感。
使用螺纹支架和 4-40 机械螺钉将 Arduino 和接口板固定在空白 PC 板上。使用热熔胶将空白 PC 板固定在显示器组件的背面。
用于放置显示屏的木箱目前处于规划阶段。将切割三块木料作为底部和侧面。将切割一块透明的有机玻璃作为顶部,以便可以看到 LED 的背面。背面将添加一块薄木片或电路板材料以保护电子设备。
时钟和温度计的操作是全自动的,只需打开电源并观察其运行即可。打开电源后,软件会通过小数点和减号运行一个简短的动画序列,然后显示温度传感器的数量。之后,它进入主显示循环。主循环交替显示时间和温度,也可以选择显示一系列随机数。软件会自动找出连接了多少个温度传感器,然后显示每个传感器,然后再循环显示时间。随机数只是为了展示显示器功能的视觉效果,数字会随机跳动几秒钟,形成一场漂亮的 3D 灯光秀。
一旦设置好,实时时钟应能保持数年的准确时间。如果软件检测到实时时钟芯片的电池电量耗尽,它会将时钟设置为最近一次编译的时间。
有三个时间设置按钮连接到 Arduino 的数字输入引脚 5、6 和 7。输入引脚均有 4.7K 上拉电阻连接到 +5V,按下按钮时,每个输入引脚接地。要设置小时,请按下引脚 5 上的按钮,等待 2 位数字显示开始递增,当小时正确时松开按钮。引脚 6 上的按钮以与小时设置相同的方式设置分钟。引脚 7 上的按钮将秒数保持在零,松开按钮后计数恢复。要准确设置时间,请将分钟向前调整一分钟,然后按住秒数归零按钮,直到参考时间达到 0 秒。
项目扩展
无需更改软件即可将多个温度传感器添加到设备中。只需将额外的 DS18B20 温度 IC 与第一个传感器并联即可。每个 DS18B20 都有一个唯一的序列号,并将在软件中显示不同的索引号,从 0 开始。
远程温度传感器应使用屏蔽线进行连接,以防止附近的雷击和其他噪声破坏数据甚至损坏 Arduino。屏蔽线应在控制器侧接地,在传感器侧保持浮置。
第三个 74HC595 移位寄存器上有两个未使用的位,它们可用于直接驱动两个 LED 以指示摄氏温度或华氏温度或内部/外部温度。这两个额外的位还可以驱动 2 到 4 线解复用器 IC(例如 74HC139 或 74HC155 的一半),以点亮四个 LED 中的一个或三个 LED 中的一个,并关闭第四个状态的 LED。三个 LED 可用于指示内部/外部温度和 PM(时间)。
通过在设置函数中将单位变量设置为 0 或 1,可以轻松修改传感器软件以显示华氏度或摄氏度的温度。通过读取 Arduino 数字 I/O 引脚之一上的开关或跳线的状态,可以轻松更改代码以选择任一刻度。
相关文章
发表评论