0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

乒乓球LED时钟的制作

454398 来源:工程师吴畏 2019-08-21 14:30 次阅读

第1步:材料/工具:

材料:

在本地购买:

- Mdf板(80 * 30 cm)

- 用于框架的木材(必须宽5厘米,总长度至少200厘米)

- 128乒乓球球(白色的,最好是乳白色)

- 一些(4)小钉子

- 旧USB线(可以为Arduino nano供电

- 旧电子设备的电源线

在线购买(中国)

- 5V 10A电源(较低的安培数也可能有效)

- Arduino nano(克隆)

- ws2812b LED灯条(5m 30Leds/米IP30)

- DS3231 RTC

- 带3芯(2米以上)的电线

可选

- 母针连接器

- 电阻器(介于两者之间) 300和500欧姆)

工具:

- 可以切割30度角的锯(斜切锯)

- 带细齿的手锯(金属) -saw)

- 剥线钳

- 烙铁

- 12mm钻头

- 32mm孔锯

- 木胶

- 热胶

- 手电筒

- 砂纸

注意:

选择正确类型的乒乓球对于这个项目非常重要。乒乓球通常具有两个加在一起的接缝。这本身不是问题,因为通过在这些半部中间形成一个孔,在显示器中将看不到接缝。然而,当乒乓球在一侧也具有印花时,重要的是球上的印花朝向背面。这可能导致从前面看到一块接缝。购买乒乓球时,也不要购买闪耀的球(反射光)。它们会不那么好地散射光线而且看起来会很奇怪(你不应该买乒乓球的例子)。

摘要:最好使用无白色打印的无缝乒乓球并做不反射光。

第2步:在乒乓球中打洞。

每个乒乓球都有自己的LED背后。为了获得尽可能多的光线照射,需要移除乒乓球背面的一块,因此LED的光线只需穿过球的一侧。这些孔需要非常大(大约30mm),因为LED不会在球后面居中。

在乒乓球中制作这些大洞是一个挑战。由于球本身很弱,因此在制作球之前需要一些支撑。我是通过在一块MDF上钻一些32毫米的孔来做到这一点的。在锯球时,我用一只手在乒乓球上施压,将它们压在孔上。由于孔的直径比球小约8mm,因此球将被压在孔上。虽然在一侧提供压力,但我在另一侧切断了乒乓球的顶部,只是在直线上对着MDF进行锯切。

在锯切它们之前,我确保了徽标印在球上的,是在我要去的那边。我还用手电筒找到了将两半加在一起的接缝。我把球转得更多了,所以从前面看不到徽标,而且从接缝处可以看到很少的东西。

注意:如果不是所有的孔都完全相同也没关系尺寸,尺寸可以变化几毫米。在构建完成时,无法从任何方向看到这一点。

步骤3:在行中粘合所有球

在所有大洞中他们需要将乒乓球按行(2行(17,18和19)和1行20)粘在一起。这些行应该尽可能直,并且球之间应该没有空间。我用我买的木头来制作框架来做到这一点。通过两块木头支撑球,我确信它们在一条线上。在放置几个球之后,确保孔朝上并且球彼此接触,我将它们粘在一起。只需要一点点胶水即可。如果你使用大量胶水,它将从正面看到。我再次使用手电筒来确保乒乓球的正面没有丑陋的斑点(有些人因为便宜的球而有了这些斑点)。

步骤4:胶合行一起。

要做到这一点,我使用框架的木材来保持2行压在一起。请记住使用小滴胶水,如果使用量很大,从前面可以看到。在每次在8个连接处放置胶水之后,我用双手提供压力以确保球紧紧地粘在一起。

步骤5:制作框架

框架中有6件。 2件长件和4件短款。这些部件的所有边缘应具有60度角。由于乒乓球的大小不是40毫米,而是(39,5个东西),我计算了框架件的大致长度(这可以通过测量面板的高度或宽度并使用^来完成。 2 + b ^ 2 = c ^ 2)。我计算出2个长件的内部长度应为66.3cm,4个短件的内部长度应为14.3cm。由于我的锯不太准确,所以我确保将它们剪得更大一些,所以它们不会短路。

在切断所有6个之后,我将它们放在乒乓球面板周围,看看如果它很合适它没有,所以我看到几毫米的一些碎片。我把所有东西粘在乒乓球面板上,以确保它的形状完全正确,这是必要的,因为角度没有在60度完美切割,但更可能是59.5毫米。

步骤6:焊接LED灯条

需要切割LED灯条(一个1个LED,一个3个LED,一个5个LED和17个7个LED)。 LED条带需要接线,如图中所示(首先是一个LED,然后是5个LED,接下来是17个带有7个LED,最后是带有3个LED的部分)。连接较短条带的金属丝应该比其他零件长,因为它需要覆盖更大的距离。我在一块MDF上录下条带,看看每个led是否都在自己的球后面。将所有部件焊接在一起之后,我通过逐个激活每个LED(checkIfLedsAreBehindBalls.ino)来测试所有焊接连接是否良好。

步骤7:切割MDF

一帧已完成我将框架和乒乓球面板放在MDF上,MDF上贴着LED。确保每个LED都在自己的球后,我取下了乒乓球面板。接下来,我沿着MDF上的框架内侧绘制,以获得我需要剪切的形状。我是这样做的,因为LED不在球的中心,这样我就能看到LED与框架的相对位置。在取下贴在电路板上的LED后,我剪下了面板的形状并打磨了边缘,因此它很好地贴合在框架内。

注意:请注意,LED指示灯不会以乒乓球为中心,见草图

步骤8:向MDF添加孔和LED

如前所述,连接LED的导线有点像。它现在的方式,从前面可以看到电线。我决定通过在每个垂直LED条的位置末端钻孔来解决这个问题,因此电线可以放在背面。我将带状导线穿过孔并暂时用胶带粘住。在再次确定之后,每个LED都在自己的乒乓球后面,我取下了磁带,并用LED条上已有的胶条将LED条连接到电路板上。

注意:在MDF上钻孔时,要非常小心,你可以轻松打破板。

步骤9:将球粘到框架上

我将乒乓球面板倒置在框架中,然后我涂上胶水乒乓球接触(或几乎没有碰到框架)的每个点。

步骤10:将LED面板安装到框架

我将LED面板放在球的背面顶部。接下来,我用4个小钉子将面板固定在框架上。我是通过将钉子放在框架内侧来做到这一点的。我选择这样做,因为它允许我修复一些东西,如果它曾经破坏(它也允许我加倍LED的数量,因为许多流明不存在)

步骤11:电子设备

好的,我(几乎)没有经验Arduino所以这可能不完美。但我尝试以尽可能简单的方式做到这一点。

我将连接器焊接到Arduino nano(图像中的黑色东西)(不是必需的)。

我决定这样做,所以如果我想要添加按钮或光依赖电阻(LDR)或其他功能,一切都可以轻松拆开。

接下来,我将RTC连接到Arduino,只需确保时钟模块的SDA和SCl连接到Arduino Nano的SDA和SCL。然后连接引脚9和LED灯条数据之间的电阻。

最后,电线连接到LED灯条的末端,以便为LED灯条的末端提供电源,以便防止电压下降。

是的,它真的很简单。

为了提供所有功能,我切断了一根USB线,可以将Arduino nano连接到一半并连接5V两条电缆的一侧连接到LED灯条和切成两半的USB电缆。我对另一方做了同样的事情。这样我就可以在不通过Arduino供电的情况下为LED灯条供电。

旧灯泡的电缆用于连接5V 10A电源和时钟

我也是在框架一侧底部钻一个洞,让电源线穿过。这使得时钟可以平放在墙上,同时如果愿意的话仍然能够站在表面上。

唯一要做的就是编写一些代码。

步骤12:代码

上传代码时,请确保电源已关闭!

时钟前模块知道当前时间,必须在模块上设置时间。幸运的是,有一些代码可以做到这一点。在仅添加4行代码并安装DS1307RTC模块后,我们可以运行此命令(SetTime_on_ds3231_nano.ino,链接到原始代码/关于如何在DS3231RTC上设置时间的指令)代码以将Arduino上的时间设置为PC的时间。

设置时间后,我们可以开始考虑为这个时钟编写一些代码。我在程序中使用了2个库,FastLED库和DS3232RTC库。这两个库将为您完成几乎所有工作,并允许编程经验很少的人编写程序。

在这里,您可以看到我在此Instructable顶部的视频中使用的代码,在大多数图片中。 (timeWhiteBackgroundRainbow.ino)

#include

#include

#define LED_PIN 9

#define NUM_LEDS 128

DS3232RTC myRTC(false);

tmElements_t tm;

CRGB leds[NUM_LEDS];

CHSV colour( 0, 255, 180);

int counter=0;

const int Digits[10][10] =

{

{7,8,10,11,14,18,22,24},

{14,16,18,22,24},

{7,8,9,11,14,16,18,24},

{7,9,11,14,16,18,22,24},

{9,10,11,16,18,22,24},

{7,9,10,11,14,16,18,22},

{7,8,9,14,15,16,18,22},

{7,11,14,16,17,24},

{7,8,9,10,11,14,16,18,22,24},

{7,9,10,11,14,16,17,24},

};

void setup()

{

pinMode(17, OUTPUT); //ground and v5 for clock module

pinMode(16, OUTPUT);

digitalWrite(17, HIGH);

digitalWrite(16, LOW);

FastLED.addLeds《WS2812, LED_PIN, GRB》(leds, NUM_LEDS);

myRTC.begin();

}

//function that uses the Digit aray to display numbers between 0 and 100

void displaynumber( int place , int number){

for (int i = 0 ; i 《 10 ; i++) {

if (Digits[number/10][i] != 0) {

leds[(Digits[number/10][i]+place)] = CRGB(255,255,255);;

}

if (Digits[number%10][i] != 0) {

leds[(Digits[number%10][i]+28+place)] = CRGB(255,255,255);;

}

}

}

void loop(){

RTC.read(tm);

//changes the colour of background every 10 cycles

if (counter《10){

counter++;

}else{

colour.hue = (colour.hue+1)%256;

counter=0;

}

// sets background to rainbow colours

for ( int i=0; i《 128;i++){

colour.hue = (colour.hue+1)%256;

leds[i]= colour;

}

colour.hue = (colour.hue+128)%256;

displaynumber(0,tm.Hour);

displaynumber(70,tm.Minute);

//display colons

if ( tm.Second%2 == 0 ){

leds[64] = CRGB(255,255,255);

leds[66] = CRGB(255,255,255);

}

FastLED.show();

}

我认为守则相对较短,但当然可以改进。它只是从RTC读取时间并显示该时间。应点亮以形成数字的LED的位置在矩阵“数字”中硬编码。例如,Digits [0]包含应该点亮以形成零的LED的位置。

我还提供了我制作的其他程序,它们是对上述程序的轻微改动。程序‘CycleThroughDigits.ino’只计算9999,以演示所有数字的外观。程序‘onlyTime.ino’只显示更改颜色的时间,没有背景颜色。最后,‘FastledExampleCode.ino’是由FastLED库提供的一些代码,用于演示一些简单的动画。

步骤13:添加您想要的每个功能

这个项目不仅仅是一个基本的时钟,你可以添加按钮,让它根据光线改变亮度,让它只显示一些颜色,制作它对音乐有反应,用ESP连接到wifi。它基本上是连接到显示器的Arduino,一切皆有可能

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

    关注

    240

    文章

    23130

    浏览量

    658337
  • 时钟
    +关注

    关注

    10

    文章

    1720

    浏览量

    131344
收藏 人收藏

    评论

    相关推荐

    乒乓球架构中LMX2820的高隔离、快速频率切换应用说明

    电子发烧友网站提供《乒乓球架构中LMX2820的高隔离、快速频率切换应用说明.pdf》资料免费下载
    发表于 09-11 09:33 0次下载
    <b class='flag-5'>乒乓球</b>架构中LMX2820的高隔离、快速频率切换应用说明

    用于ADC的DMA乒乓

    电子发烧友网站提供《用于ADC的DMA乒乓.pdf》资料免费下载
    发表于 09-07 11:27 1次下载
    用于ADC的DMA<b class='flag-5'>乒乓</b>

    谷歌开发出媲美人类的乒乓球机器人

    行业资讯
    北京中科同志科技股份有限公司
    发布于 :2024年08月12日 09:14:55

    AI看奥运 | 从巴黎奥运会看人工智能的应用和发展

    的奥运会,包括“时空定格”的360度多角度回看、乒乓球比赛中AR运动轨迹和落点实时渲染等。低延时、高算力的AI技术以亮眼表现出现在大众的视野,为AI技术的广泛应用和创
    的头像 发表于 08-09 16:17 923次阅读
    AI看奥运 | 从巴黎奥运会看人工智能的应用和发展

    BGA连接器植工艺研究

    栅阵列(Ball Grid Array,BGA)封装具有体积小、引脚密度高、信号完整性和散热性能佳等优点,因而广泛应用于大规模集成电路的封装领域。植工艺作为BGA封装(连接器)生产中的关键工艺会
    的头像 发表于 07-15 15:42 761次阅读
    BGA连接器植<b class='flag-5'>球</b>工艺研究

    在AP中,如何设置DTIM周期参数?

    ,因为它控制从连接的客户端的浅睡眠中唤醒,让客户端响应信标。 由于专有堆栈的未知过程,如果我需要重复它,我的浅睡眠进入是非常不稳定的。 在一些 spi 乒乓球和随后的 tcp tx/rx 之后,我需要
    发表于 07-12 07:43

    智能软启动柜浮控制设置在哪

    智能软启动柜是一种用于电动机启动和控制的设备,它通过控制电动机的启动电流,减少启动时的冲击,延长电动机的使用寿命。智能软启动柜的浮控制设置是其中的一个重要功能,可以有效地控制水位,防止水泵空转或
    的头像 发表于 06-18 14:41 726次阅读

    单片机POV LED流水灯制作

    电子发烧友网站提供《单片机POV LED流水灯制作.docx》资料免费下载
    发表于 05-28 14:34 3次下载

    如何使用emwin制作时钟

    请教下,使用emwin制作时钟 ??
    发表于 04-29 06:21

    什么是葡萄珠现象?如何解决?

    葡萄珠现象(Graping),一般指在smt贴片加工过程中回流焊接过程中部分锡膏没有完全融化,反而被互相焊接在一起形成一颗颗独立的锡珠或锡堆叠在一起,形成类似一串串葡萄的现象。下面深圳佳金源锡膏
    的头像 发表于 04-01 15:30 557次阅读
    什么是葡萄<b class='flag-5'>球</b>珠现象?如何解决?

    使用Arduino Nano制作一个4×4×4 LED立方体

    在这个项目中,我们将使用 Arduino Nano 制作一个很酷的 4×4×4 LED立方体。LED 立方体,也称为 LED矩阵,可以照亮您的房间、学习空间或创客区域,使其看起来非常酷
    的头像 发表于 02-11 12:07 3052次阅读
    使用Arduino Nano<b class='flag-5'>制作</b>一个4×4×4 <b class='flag-5'>LED</b>立方体

    带光口的机可以和交换机搭配使用吗?

    带光口的机可以和交换机搭配使用吗? 摄像监控是当今社会中不可或缺的一部分,它提供了安全监控和录像的功能。而带光口的机作为一种常见的摄像监控设备之一,其特点是具备网络功能和光纤传输功能。本文将详细
    的头像 发表于 02-04 10:09 980次阅读

    考场led时钟 标准数字时钟 数字时钟系统#时钟 #授时 #数字时钟 #仪器仪表

    仪器仪表电子时钟
    落秋的大西北
    发布于 :2024年01月23日 10:26:03

    液位浮开关接线原理详解

    开关,我们通过他用来接通控制水泵电路。
    的头像 发表于 01-02 09:33 1209次阅读
    液位浮<b class='flag-5'>球</b>开关接线原理详解

    iCAN2023:应用TDK产品的优秀项目展示①厨神帮手&amp;乒乓球裁判

    TDK作为iCAN大赛的合作伙伴, 本次为参赛选手免费提供四种产品 用于作品创作研发。 以下为大家介绍2例 使用TDK产品的优秀项目的内容! 学校:德州学院 成员:陈文灏、王昊杰、单荟 “厨神帮手——家用厨房智能机器人”,是基于树莓派与STM32F103R8T6芯片的家用厨房智能机器人。通过接入图灵机器人、百度智能对话平台UNIT,分别实现菜谱个性化定制与智能语音交互;通过语音与动态手势,实现对菜谱的查看,和对抽屉、垃圾桶等外设的控制。除此之外
    的头像 发表于 11-29 12:10 678次阅读
    iCAN2023:应用TDK产品的优秀项目展示①厨神帮手&amp;<b class='flag-5'>乒乓球</b>裁判