Arduino Bingo Machine with DIY A4-Size 7-Segment Displays
组件和用品
| × | 3 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 2 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 2 | ||||
| × | 2 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
必要的工具和机器
|
关于这个项目
走在ACTION商店时,我发现了一个价格可以接受的数字LED旅行(包括12V电源适配器,甚至包括一个带红外遥控器的控制器)。我决定购买一个并开始与它们一起玩,目的是在我的情况下使用 Arduino Uno 控制 LED 灯条。
尽管在包装或 LED 灯条本身上没有指定任何地方,但很快我发现这是一种带三个 5050 LED 段的灯条,每 3 个 LED 有一个 WS2811 驱动器。
我将条带连接到 Arduino Uno,以使用 Adafruit NeoPixel 库和一些示例代码(如 RGBW strandtest)对其进行试验。
我开始进行一些头脑风暴,并产生了使用这些行程制作 A4 尺寸 7 段显示器的想法。如上所示,七部分条带可以完成这项工作,另外还有一个用于显示小数点。这使其有效地分为 8 个段,这些段仅由 Arduino 的一个输出引脚控制,并由 ACTION 包中已包含的 12 V 适配器供电。
但是,只有一个 7 段显示器可以做什么?
我决定制作其中的 2 个并将它们用于创建 宾果机 按下按钮后显示 1 到 75 之间的随机数。
第 1 步:制作 7 段显示
显示器的整个制作过程是一个很长的故事,我可以在单独的教程中进行描述。短版制作如下:
两种 A4 尺寸的显示器均采用传统方法和材料制成。使用激光切割机和 3D 打印机时,整个过程会有所不同,而且可能更简单。你在互联网上找到了很好的例子,例如YouTube (https://learn.adafruit.com/ninja-timer-giant-7-segment-display/overview),您甚至可以购买现成的。
我发现自己制作它们是一种挑战和乐趣..
对于 LED 灯条,我使用了 3 个 LED 的 16 个部分,每个部分都是从 ACTION 的 WS2811 LED 灯条上切下的。
这些段通过焊接线连接到条带的 +12V、GND 和 Do 和 Di。您可以在互联网上找到许多有关如何正确执行此操作的教程。
对于房屋,我使用了当地 ACTION 商店提供的现成且价格合理的 Peg Board。
外壳的新正面由宜家的白色半透明砧板材料制成。
使用模板从电路板顶部的涂漆层(黑色底漆)中切割出部分。
使用便宜的音频电缆(也来自 ACTION)将 7 段显示器通过 220 欧姆电阻器连接到 Arduino,只需 3 条线(12V、GND 和数据输入)。
我修改了外壳,以便轻松插入音频连接器。
第 2 步:制作记分板
我还决定创建一个记分牌显示器,显示生成的随机数,一个用于生成新数字的按钮和一个用于结束和开始新一轮的“宾果游戏按钮”。
记分板使用与外壳相同的 ACTION 钉板制成(如上所述)。盖板由深灰色砧板(同样来自 ACTION)制成,上面钻有孔。顶盖由宜家砧板制成。两层之间是照片纸上的印刷品和保护性透明箔。
在里面,贴在砧板背面的是 5 节 15 个 WS2812 LED,每节加上 3 * 8 个 LED 灯条部分,用于照亮“BINGO”这个词。
第 3 步:制作软件
使用 Arduino 和无焊面包板完成了对 LED 灯条和 7 段显示器进行编码和播放的初步实验。
一个大的瞬时按钮连接到 GND 和 Uno 的数字 IO 引脚 2。按下按钮开始生成新的随机数。在短暂的“灯光秀 1”之后,随机数显示在两个 7 段显示器上。
在七段显示器上创建数字所用的表格如下:
为了帮助构建 Arduino Sketch,我在 ClickCharts 的帮助下制作了一些简单的流程图,一个非商业用途的免费版本(一旦你习惯了一些固有的限制,就可以正常工作)
生成的数字存储在名为 SCORE[] 的数组中,该数组由 75 个位置组成,填充为“0”或“1”。如果生成的新数已经存在,则自动生成一个新的随机数。
新号码在记分牌上亮起(有 75 个号码),同时新号码显示在 7 段显示器上
记分牌一直显示生成的所有随机数,直到获得有效的宾果游戏为止。名为“BINGO”的按钮将以简短的“BingoLightShow”结束回合
此后SCORE数组清零,可以开始新一轮。
也可以通过拨动电源开关(断开 12V 电源)来启动新一轮,这将重置 Arduino 并重新启动程序。
第 4 步:电子产品
12V、2A充电器为整个宾果机供电。
Arduino 电源插孔上的 12V 输入已修改为启用电源切换(开 - 关)。
用于记分牌的 99 个 LED (75 + 24) 的 5 V 电源通过 7805 电压调节器(几乎可以处理 WS2812 LED 灯条汲取的电流)从 12V 输入电源获得;建议安装散热器或电源版本(在更新中,我可能会添加一个功率晶体管来处理主要由记分板内的 99 个 WS2812 LED 消耗的所需 5V 电源。我以这种方式为 Arduino 绘制了草图记分牌的电力需求适中。
Fritzing 图中的布局如下所示:
请注意,宾果记分板上的 7 段 LED 部分 (12V) 以及照亮数字 1 -75 的 LED 灯条均由来自 Uno 的同一个输出引脚 (6) 控制。
由 Pierre Pennings 开发和制作(2018 年 11 月)。
代码
- BINGO_Machine_rev04.ino
BINGO_Machine_rev04.inoArduino
带有 Arduino Uno 和 2 个 A4 尺寸 7 段显示器和电子记分板的宾果机草图由 WS2811 LED 灯条制成的尺寸 7 段显示器由 12V 供电(3 个 LED 对和 1 个控制芯片)由 3 个 LED 组成的每个段仅用一个控制地址寻址每个显示器有 7 个段加上一个小数点 (DP) 数字在 2 个显示器上显示的数字从 1 到 75,就像在普通的宾果游戏中一样 一个瞬时按钮连接到 GND 和 ARDUINO UNO 的数字 IO 引脚 6 按下按钮开始生成新的随机数 短时间后“Light Show 1”随机数显示在两个 7 段显示器上 生成的数字也存储在名为 SCORE[] 的数组中,该数组由 75 个位置组成,填充为“0”或“1” 如果生成的新数字已经准备好存在,自动一个新的随机数ber 生成 包括 ARDUINO UNO 本身在内的所有电子设备都内置在一个单独的记分板显示器中 75 个数字由一个 WS2812B 控制器芯片点亮,每个芯片带有一个 SMD5050 LED(由 5 V 供电) 记分板显示所有生成的随机数,直到获得有效的 BINGO 一个名为“BINGO”的按钮将以简短的“BingoLightShow”结束回合 此后清除 SCORE 阵列并可以开始新回合 也可以通过切换电源开关(断开12V 电源),这将重置 ARDUINO 并重新启动程序 12V、2A 充电器为整个 BINGO 机器供电 ARDUINO 电源插孔上的 12 V 输入已修改为启用电源开关(开 - 关) 5 V 电源用于记分板的 99 个 LED (75 + 24) 通过 7805 稳压器(几乎可以处理 WS2812 LED 灯条吸收的电流)从 12V 输入电源获得;建议安装散热器或电源版本 此代码根据 GPL3+ 许可证获得许可。*/#include定制零件和外壳
tekening_gaten_patron_puntjes_xgW76A8Jmw.svg用作显示器正面的模板示意图
bingo_sketch_66WRdQITE2.fzz制造工艺