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

电子说

1.2w人已加入

描述

第1步:设置LED灯

led灯

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

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

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

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

第3步:添加字典

led灯

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

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

led灯

led灯

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

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

第5步:添加输入

led灯

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

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

msBtnPushed表示打开灯的时间。

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

步骤6:处理输入

led灯

led灯

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

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

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

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

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

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

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

led灯

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

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

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

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

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

led灯

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

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

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

led灯

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

责任编辑:wv

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

全部0条评论

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

×
20
完善资料,
赚取积分