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

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

3天内不再提示

如何通过使用LED灯发送摩尔斯电码来设置自己的Arduino来玩Hangman

454398 来源:网络整理 作者:网络整理 2019-11-19 09:16 次阅读

第1步:设置LED

如何通过使用LED灯发送摩尔斯电码来设置自己的Arduino来玩Hangman

莫尔斯游戏将使用4个灯来指出单词中需要猜测的4个字母和5个指示灯以指示玩家还没有去猜测的生命,因此首先,您必须按照通常的方式连接9个LED指示灯在图片里。

第2步:添加一个临时光传感器

我们不能在电子商店里乱扔钱,所以我决定保留这个项目

您需要做的就是将LED灯的正极连接到模拟端口之一(在我的情况下为A0)

第3步:添加字典

首先,让我们开始吧添加一种字典将字母翻译为相应的摩尔斯电码。为此,我们只需将数组乘以26 x 5即可,每个辅助数组的第一个插槽均具有字母,而接下来的4个插槽均具有相应的摩尔斯电码或如果没有代码则留一个空格。因此,例如对于字母s,第一个插槽为“ s”,第二,第三和第四插槽为“。”。并且最后一个插槽为‘’。

步骤4:默认情况下点亮灯

在此步骤中,我们确保一旦程序启动,指示灯便会亮起,并在用户正确猜出它们后将其代表的字母改成Morse(此代码将在步骤6中编写)。我们还请确保打开的生命灯与播放机剩余的生命灯一样多。

在此之前,请确保您有一个端口号和整数设置为0的数组,以表示该灯应打开,关闭的时间以及该LED灯当前显示在莫尔斯电灯泡的哪一部分。

第5步:添加输入

现在,我们将编写代码以检查玩家是否在游戏机上照亮了灯光。 LED灯连接到我们的模拟端口A0,如果要将其转换为正确的字母。

为确保读数正确,我们使用LED灯平均每20个读数并使用该数字以跟踪指示灯是关闭还是打开。为此,在程序开始时,将NUM_AVG设置为我们希望它在平均之前检查光的次数。此数字越高,读数越准确,但也可能导致延迟。

msBtnPushed表示打开灯的时间。

lastPressed是一个保持跟踪的布尔值

步骤6:处理输入

对于此步骤,我们将看一下是否已经经过了足够的时间以假定不再添加莫尔斯电文,并且需要检查莫尔斯电报是否以信函形式以及是否是正确的信函,该怎么办。

为此,我们需要将字符串wordToGuess设置为我们希望玩家猜测的单词。我个人有一个随机数发生器,可以在一开始将其设置为一个随机单词,但是您也可以将其设置为单个单词。

我们还需要确保计数器每增加一个循环,否则整个程序将无法执行任何操作。此外,我添加了delay函数,以确保每毫秒都有一个循环。

PS:所有Serial.println函数仅用于测试目的。它们可能在完成后被删除。

goodTimer和badTimer只是用于计划使用Piezo元素添加声音的值。

如果您愿意,还必须在第二张图片中添加代码,以播放声音。

步骤7:将正确猜出的字母拼写

按照之前的承诺,在这一步中,我们将使代表为此,我编写了两个函数:morseThis和nextLetter。

它使用我们先前在timers数组中设置的数字并根据需要进行更改莫尔斯电码的哪一部分目前正在闪耀。

如果计时器到达了应该打开灯的时间,则只需打开灯,然后运行代码以设置新的计时器来重新打开和关闭灯。

如果计时器到达应该熄灭的部分,它会关闭照明灯,然后设置代表字母下一部分的代码。如果没有下一部分,它将重置为第一部分。

步骤8:查看我们的设置并重置

当然,如果没有将灯光设置为输出和输入,则程序将不会运行。我还添加了一个随机数生成器,以从我放入名为wordsToGuess的数组中的单词列表中添加单词。

此外,我们应该添加reset函数并确保将所有值都重置为default 。

步骤9:一张图片中的所有变量

最后,您可以使用它来检查是否具有所有必需的变量设置正确。

责任编辑:wv

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

    关注

    22

    文章

    1592

    浏览量

    107936
  • 摩尔斯电码
    +关注

    关注

    0

    文章

    17

    浏览量

    10245
  • Arduino
    +关注

    关注

    188

    文章

    6468

    浏览量

    186906
收藏 人收藏

    评论

    相关推荐

    摩尔微电子任命安迪·麦克法兰为营销副总裁

    业界领袖加入摩尔微电子悉尼总部领导团队,推动营销创新与全球增长   2024 年12月16日,澳大利亚悉尼和中国北京 ——全球领先的Wi-Fi HaLow解决方案提供商摩尔微电子,
    发表于 12-17 10:34 37次阅读
     <b class='flag-5'>摩尔</b><b class='flag-5'>斯</b>微电子任命安迪·麦克法兰为营销副总裁

    ADS127L11是否可以通过外部时钟频率设置输出速率?

    我在ADS127L11手册上看到使用外部时钟的范围是0.5MHz到26.2MHz。如下图所示 请问我是否可以通过这个外部时钟频率设置输出速率,例如我想要得到51.2KHz的数据输出速率,是不是
    发表于 11-25 07:07

    摩尔微电子荣获2024年WBA行业大奖最佳Wi-Fi创新奖等多项殊荣

    SoC在这一领域扮演了关键性角色。摩尔微电子的联合创始人兼首席执行官迈克尔·德尼尔(Michael De Nil)表示:“我们非常荣幸能够获得无线宽带联盟的这一殊荣。这一奖项突显了我们致力于通过创新
    发表于 11-01 14:41

    智慧照明:实现“车亮,车走灭”的高效路灯解决方案

    智慧照明:实现“车亮,车走灭”的高效路灯解决方案
    的头像 发表于 10-28 11:48 331次阅读
    智慧照明:实现“车<b class='flag-5'>来</b><b class='flag-5'>灯</b>亮,车走<b class='flag-5'>灯</b>灭”的高效路灯解决方案

    摩尔微电子推出社区论坛与开源GitHub资源库,新资源的上线将加速全球工程师与开发者的Wi-Fi开发进程

    、解决疑难,并为Wi-Fi HaLow相关项目做出贡献。该论坛为讨论更广泛的连接性话题提供了空间,促进全球Wi-Fi HaLow社区间的合作。 通过推出这些资源,摩尔微电子彰显了其在推动Wi-Fi
    发表于 10-18 17:40

    【xG24 Matter开发套件试用体验】通过按键控制LED

    点完了,点花样,通过按键来点灯。 硬件 还是看这个图 按键有 BUTTON0(PB02)和BUTTON1(PB03) 软件 这里基于blink_baremetal 工程进行修改适
    发表于 09-01 17:21

    Renesa RA如何使用SPI实现高速比特流的发送

    有些特殊的外设会使用基于SPI模式,发送连续比特流来传输数据。本文主要介绍对于Renesa RA,如何使用SPI实现高速比特流的发送
    的头像 发表于 07-22 14:38 1500次阅读
    Renesa RA如何使用SPI<b class='flag-5'>来</b>实现高速比特流的<b class='flag-5'>发送</b>

    开源项目!可编程的磁悬浮桌面氛围Arduino+WS2812)

    测试。 焊接 Arduino 1、把两根电线分别连接到 VIN 和电源插口的 GND。 2、把 LED 带的线焊接到 GND、V5 和一个数字端口(D1-D12)。 3、把磁性
    发表于 06-03 11:53

    【Vision Board创客营连载体验】利用 OpenMV 实现 AprilTag 跟踪以及通过串口通讯控制 Arduino 驱动 LED

    作为下位机接收坐标信息并将信息转化为 LED 矩阵坐标,再通过 FastLED 库实现对 WS2812b 带的 LED 操控。 开发现况 由于手头上的 WS2812b
    发表于 05-31 00:01

    请问如何用串口发送的消息调节LED的亮度呢?

    ;); for(t=0;tDR=USART_RX_BUF[t]; while((USART1->SR 0X40)==0);//等待发送结束 } led
    发表于 04-08 06:30

    如何使用Arduino设置热敏电阻创建温度计

    在本教程中,我们将指导您如何使用Arduino设置热敏电阻以创建基本温度计。提供的原理图、试验板图和示例代码将使热敏电阻工作变得简单明了。
    的头像 发表于 02-11 10:37 2439次阅读
    如何使用<b class='flag-5'>Arduino</b><b class='flag-5'>设置</b>热敏电阻<b class='flag-5'>来</b>创建温度计

    如何设置Arduino IR发射器电路

    在本指南中,您将学习如何设置 Arduino IR发射器电路。它使您可以控制IR(红外线)LED,并从Arduino发送任何远程控制代码。这
    的头像 发表于 02-11 09:44 828次阅读
    如何<b class='flag-5'>设置</b><b class='flag-5'>Arduino</b> IR发射器电路

    led是什么意思有什么用

    LED的原理 LED的原理是通过电流通过半导体材料时,电流与电子结合释放出光能。这种光能是通过
    的头像 发表于 02-01 17:27 2455次阅读

    LED关灯后闪烁的解决方法

    LED以其亮度大、耗能低、寿命长等特点,逐步霸占当今电灯市场。一般来说,LED是很难发生问题的,在LED
    发表于 02-01 16:40 1933次阅读

    有没有通过设置ad减少噪声的方法?

    电路板已经做出来了,并且能成像了。但是电路的噪声很大,空载时噪声到第7位,想问下有没有通过设置ad减少噪声的方法。 另外请教下: cds增益:这个是通过减小输入动态范围
    发表于 12-22 06:29