0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何通過使用LED燈發(fā)送摩爾斯電碼來設(shè)置自己的Arduino來玩Hangman

454398 ? 來源:網(wǎng)絡(luò)整理 ? 作者:網(wǎng)絡(luò)整理 ? 2019-11-19 09:16 ? 次閱讀

第1步:設(shè)置LED

如何通過使用LED燈發(fā)送摩爾斯電碼來設(shè)置自己的Arduino來玩Hangman

莫爾斯游戲?qū)⑹褂?個燈來指出單詞中需要猜測的4個字母和5個指示燈以指示玩家還沒有去猜測的生命,因此首先,您必須按照通常的方式連接9個LED指示燈在圖片里。

第2步:添加一個臨時光傳感器

我們不能在電子商店里亂扔錢,所以我決定保留這個項目

您需要做的就是將LED燈的正極連接到模擬端口之一(在我的情況下為A0)

第3步:添加字典

首先,讓我們開始吧添加一種字典將字母翻譯為相應(yīng)的摩爾斯電碼。為此,我們只需將數(shù)組乘以26 x 5即可,每個輔助數(shù)組的第一個插槽均具有字母,而接下來的4個插槽均具有相應(yīng)的摩爾斯電碼或如果沒有代碼則留一個空格。因此,例如對于字母s,第一個插槽為“ s”,第二,第三和第四插槽為“?!?。并且最后一個插槽為‘’。

步驟4:默認(rèn)情況下點亮燈

在此步驟中,我們確保一旦程序啟動,指示燈便會亮起,并在用戶正確猜出它們后將其代表的字母改成Morse(此代碼將在步驟6中編寫)。我們還請確保打開的生命燈與播放機剩余的生命燈一樣多。

在此之前,請確保您有一個端口號和整數(shù)設(shè)置為0的數(shù)組,以表示該燈應(yīng)打開,關(guān)閉的時間以及該LED燈當(dāng)前顯示在莫爾斯電燈泡的哪一部分。

第5步:添加輸入

現(xiàn)在,我們將編寫代碼以檢查玩家是否在游戲機上照亮了燈光。 LED燈連接到我們的模擬端口A0,如果要將其轉(zhuǎn)換為正確的字母。

為確保讀數(shù)正確,我們使用LED燈平均每20個讀數(shù)并使用該數(shù)字以跟蹤指示燈是關(guān)閉還是打開。為此,在程序開始時,將NUM_AVG設(shè)置為我們希望它在平均之前檢查光的次數(shù)。此數(shù)字越高,讀數(shù)越準(zhǔn)確,但也可能導(dǎo)致延遲。

msBtnPushed表示打開燈的時間。

lastPressed是一個保持跟蹤的布爾值

步驟6:處理輸入

對于此步驟,我們將看一下是否已經(jīng)經(jīng)過了足夠的時間以假定不再添加莫爾斯電文,并且需要檢查莫爾斯電報是否以信函形式以及是否是正確的信函,該怎么辦。

為此,我們需要將字符串wordToGuess設(shè)置為我們希望玩家猜測的單詞。我個人有一個隨機數(shù)發(fā)生器,可以在一開始將其設(shè)置為一個隨機單詞,但是您也可以將其設(shè)置為單個單詞。

我們還需要確保計數(shù)器每增加一個循環(huán),否則整個程序?qū)o法執(zhí)行任何操作。此外,我添加了delay函數(shù),以確保每毫秒都有一個循環(huán)。

PS:所有Serial.println函數(shù)僅用于測試目的。它們可能在完成后被刪除。

goodTimer和badTimer只是用于計劃使用Piezo元素添加聲音的值。

如果您愿意,還必須在第二張圖片中添加代碼,以播放聲音。

步驟7:將正確猜出的字母拼寫

按照之前的承諾,在這一步中,我們將使代表為此,我編寫了兩個函數(shù):morseThis和nextLetter。

它使用我們先前在timers數(shù)組中設(shè)置的數(shù)字并根據(jù)需要進行更改莫爾斯電碼的哪一部分目前正在閃耀。

如果計時器到達了應(yīng)該打開燈的時間,則只需打開燈,然后運行代碼以設(shè)置新的計時器來重新打開和關(guān)閉燈。

如果計時器到達應(yīng)該熄滅的部分,它會關(guān)閉照明燈,然后設(shè)置代表字母下一部分的代碼。如果沒有下一部分,它將重置為第一部分。

步驟8:查看我們的設(shè)置并重置

當(dāng)然,如果沒有將燈光設(shè)置為輸出和輸入,則程序?qū)⒉粫\行。我還添加了一個隨機數(shù)生成器,以從我放入名為wordsToGuess的數(shù)組中的單詞列表中添加單詞。

此外,我們應(yīng)該添加reset函數(shù)并確保將所有值都重置為default 。

步驟9:一張圖片中的所有變量

最后,您可以使用它來檢查是否具有所有必需的變量設(shè)置正確。

責(zé)任編輯:wv

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • led燈
    +關(guān)注

    關(guān)注

    22

    文章

    1592

    瀏覽量

    107751
  • 摩爾斯電碼
    +關(guān)注

    關(guān)注

    0

    文章

    17

    瀏覽量

    10233
  • Arduino
    +關(guān)注

    關(guān)注

    187

    文章

    6458

    瀏覽量

    186504
收藏 人收藏

    評論

    相關(guān)推薦

    摩爾微電子榮獲2024年WBA行業(yè)大獎最佳Wi-Fi創(chuàng)新獎等多項殊榮

    SoC在這一領(lǐng)域扮演了關(guān)鍵性角色。摩爾微電子的聯(lián)合創(chuàng)始人兼首席執(zhí)行官邁克爾·德尼爾(Michael De Nil)表示:“我們非常榮幸能夠獲得無線寬帶聯(lián)盟的這一殊榮。這一獎項突顯了我們致力于通過創(chuàng)新
    發(fā)表于 11-01 14:41

    智慧照明:實現(xiàn)“車亮,車走滅”的高效路燈解決方案

    智慧照明:實現(xiàn)“車亮,車走滅”的高效路燈解決方案
    的頭像 發(fā)表于 10-28 11:48 ?204次閱讀
    智慧照明:實現(xiàn)“車<b class='flag-5'>來</b><b class='flag-5'>燈</b>亮,車走<b class='flag-5'>燈</b>滅”的高效路燈解決方案

    摩爾微電子推出社區(qū)論壇與開源GitHub資源庫,新資源的上線將加速全球工程師與開發(fā)者的Wi-Fi開發(fā)進程

    、解決疑難,并為Wi-Fi HaLow相關(guān)項目做出貢獻。該論壇為討論更廣泛的連接性話題提供了空間,促進全球Wi-Fi HaLow社區(qū)間的合作。 通過推出這些資源,摩爾微電子彰顯了其在推動Wi-Fi
    發(fā)表于 10-18 17:40

    【xG24 Matter開發(fā)套件試用體驗】通過按鍵控制LED

    點完了,點花樣,通過按鍵來點燈。 硬件 還是看這個圖 按鍵有 BUTTON0(PB02)和BUTTON1(PB03) 軟件 這里基于blink_baremetal 工程進行修改適
    發(fā)表于 09-01 17:21

    Renesa RA如何使用SPI實現(xiàn)高速比特流的發(fā)送

    有些特殊的外設(shè)會使用基于SPI模式,發(fā)送連續(xù)比特流來傳輸數(shù)據(jù)。本文主要介紹對于Renesa RA,如何使用SPI實現(xiàn)高速比特流的發(fā)送。
    的頭像 發(fā)表于 07-22 14:38 ?1417次閱讀
    Renesa RA如何使用SPI<b class='flag-5'>來</b>實現(xiàn)高速比特流的<b class='flag-5'>發(fā)送</b>

    開源項目!可編程的磁懸浮桌面氛圍Arduino+WS2812)

    測試。 焊接 Arduino 1、把兩根電線分別連接到 VIN 和電源插口的 GND。 2、把 LED 帶的線焊接到 GND、V5 和一個數(shù)字端口(D1-D12)。 3、把磁性
    發(fā)表于 06-03 11:53

    【Vision Board創(chuàng)客營連載體驗】利用 OpenMV 實現(xiàn) AprilTag 跟蹤以及通過串口通訊控制 Arduino 驅(qū)動 LED

    作為下位機接收坐標(biāo)信息并將信息轉(zhuǎn)化為 LED 矩陣坐標(biāo),再通過 FastLED 庫實現(xiàn)對 WS2812b 帶的 LED 操控。 開發(fā)現(xiàn)況 由于手頭上的 WS2812b
    發(fā)表于 05-31 00:01

    請問如何用串口發(fā)送的消息調(diào)節(jié)LED的亮度呢?

    ;); for(t=0;tDR=USART_RX_BUF[t]; while((USART1->SR 0X40)==0);//等待發(fā)送結(jié)束 } led
    發(fā)表于 04-08 06:30

    如何使用Arduino設(shè)置熱敏電阻創(chuàng)建溫度計

    在本教程中,我們將指導(dǎo)您如何使用Arduino設(shè)置熱敏電阻以創(chuàng)建基本溫度計。提供的原理圖、試驗板圖和示例代碼將使熱敏電阻工作變得簡單明了。
    的頭像 發(fā)表于 02-11 10:37 ?2189次閱讀
    如何使用<b class='flag-5'>Arduino</b><b class='flag-5'>設(shè)置</b>熱敏電阻<b class='flag-5'>來</b>創(chuàng)建溫度計

    如何設(shè)置Arduino IR發(fā)射器電路

    在本指南中,您將學(xué)習(xí)如何設(shè)置 Arduino IR發(fā)射器電路。它使您可以控制IR(紅外線)LED,并從Arduino發(fā)送任何遠程控制代碼。這
    的頭像 發(fā)表于 02-11 09:44 ?791次閱讀
    如何<b class='flag-5'>設(shè)置</b><b class='flag-5'>Arduino</b> IR發(fā)射器電路

    led是什么意思有什么用

    、LED的原理 LED的原理是通過電流通過半導(dǎo)體材料時,電流與電子結(jié)合釋放出光能。這種光能是通過
    的頭像 發(fā)表于 02-01 17:27 ?2130次閱讀

    LED關(guān)燈后閃爍的解決方法

    LED以其亮度大、耗能低、壽命長等特點,逐步霸占當(dāng)今電燈市場。一般來說,LED是很難發(fā)生問題的,在LED
    發(fā)表于 02-01 16:40 ?1706次閱讀

    有沒有通過設(shè)置ad減少噪聲的方法?

    電路板已經(jīng)做出來了,并且能成像了。但是電路的噪聲很大,空載時噪聲到第7位,想問下有沒有通過設(shè)置ad減少噪聲的方法。 另外請教下: cds增益:這個是通過減小輸入動態(tài)范圍
    發(fā)表于 12-22 06:29

    LED閃爍的原因 LED閃爍故障解決方法

    的疲勞和不適。然而,要解決LED的閃爍問題,并不是一件非常困難的事情。下面我將詳細闡述LED閃爍的原因以及解決方法。 首先,我們探討一
    的頭像 發(fā)表于 12-11 15:31 ?6867次閱讀

    基于Arduino的音樂創(chuàng)作系統(tǒng)設(shè)計

    這是一款簡易的音樂創(chuàng)作系統(tǒng)。使用 Arduino 驅(qū)動無源蜂鳴器和一排 LED 讓音樂起舞。它巧妙的使用了紅外遙控器作為琴鍵,通過編輯「樂譜」程序,記錄和創(chuàng)作
    的頭像 發(fā)表于 11-30 09:10 ?1141次閱讀
    基于<b class='flag-5'>Arduino</b>的音樂創(chuàng)作系統(tǒng)設(shè)計