第1步:設(shè)置LED燈

莫爾斯游戲?qū)⑹褂?個(gè)燈來(lái)指出單詞中需要猜測(cè)的4個(gè)字母和5個(gè)指示燈以指示玩家還沒有去猜測(cè)的生命,因此首先,您必須按照通常的方式連接9個(gè)LED指示燈在圖片里。
第2步:添加一個(gè)臨時(shí)光傳感器
我們不能在電子商店里亂扔錢,所以我決定保留這個(gè)項(xiàng)目
您需要做的就是將LED燈的正極連接到模擬端口之一(在我的情況下為A0)
第3步:添加字典

首先,讓我們開始吧添加一種字典將字母翻譯為相應(yīng)的摩爾斯電碼。為此,我們只需將數(shù)組乘以26 x 5即可,每個(gè)輔助數(shù)組的第一個(gè)插槽均具有字母,而接下來(lái)的4個(gè)插槽均具有相應(yīng)的摩爾斯電碼或如果沒有代碼則留一個(gè)空格。因此,例如對(duì)于字母s,第一個(gè)插槽為“ s”,第二,第三和第四插槽為“。”。并且最后一個(gè)插槽為‘’。
步驟4:默認(rèn)情況下點(diǎn)亮燈


在此步驟中,我們確保一旦程序啟動(dòng),指示燈便會(huì)亮起,并在用戶正確猜出它們后將其代表的字母改成Morse(此代碼將在步驟6中編寫)。我們還請(qǐng)確保打開的生命燈與播放機(jī)剩余的生命燈一樣多。
在此之前,請(qǐng)確保您有一個(gè)端口號(hào)和整數(shù)設(shè)置為0的數(shù)組,以表示該燈應(yīng)打開,關(guān)閉的時(shí)間以及該LED燈當(dāng)前顯示在莫爾斯電燈泡的哪一部分。
第5步:添加輸入

現(xiàn)在,我們將編寫代碼以檢查玩家是否在游戲機(jī)上照亮了燈光。 LED燈連接到我們的模擬端口A0,如果要將其轉(zhuǎn)換為正確的字母。
為確保讀數(shù)正確,我們使用LED燈平均每20個(gè)讀數(shù)并使用該數(shù)字以跟蹤指示燈是關(guān)閉還是打開。為此,在程序開始時(shí),將NUM_AVG設(shè)置為我們希望它在平均之前檢查光的次數(shù)。此數(shù)字越高,讀數(shù)越準(zhǔn)確,但也可能導(dǎo)致延遲。
msBtnPushed表示打開燈的時(shí)間。
lastPressed是一個(gè)保持跟蹤的布爾值
步驟6:處理輸入


對(duì)于此步驟,我們將看一下是否已經(jīng)經(jīng)過了足夠的時(shí)間以假定不再添加莫爾斯電文,并且需要檢查莫爾斯電報(bào)是否以信函形式以及是否是正確的信函,該怎么辦。
為此,我們需要將字符串wordToGuess設(shè)置為我們希望玩家猜測(cè)的單詞。我個(gè)人有一個(gè)隨機(jī)數(shù)發(fā)生器,可以在一開始將其設(shè)置為一個(gè)隨機(jī)單詞,但是您也可以將其設(shè)置為單個(gè)單詞。
我們還需要確保計(jì)數(shù)器每增加一個(gè)循環(huán),否則整個(gè)程序?qū)o(wú)法執(zhí)行任何操作。此外,我添加了delay函數(shù),以確保每毫秒都有一個(gè)循環(huán)。
PS:所有Serial.println函數(shù)僅用于測(cè)試目的。它們可能在完成后被刪除。
goodTimer和badTimer只是用于計(jì)劃使用Piezo元素添加聲音的值。
如果您愿意,還必須在第二張圖片中添加代碼,以播放聲音。
步驟7:將正確猜出的字母拼寫

按照之前的承諾,在這一步中,我們將使代表為此,我編寫了兩個(gè)函數(shù):morseThis和nextLetter。
它使用我們先前在timers數(shù)組中設(shè)置的數(shù)字并根據(jù)需要進(jìn)行更改莫爾斯電碼的哪一部分目前正在閃耀。
如果計(jì)時(shí)器到達(dá)了應(yīng)該打開燈的時(shí)間,則只需打開燈,然后運(yùn)行代碼以設(shè)置新的計(jì)時(shí)器來(lái)重新打開和關(guān)閉燈。
如果計(jì)時(shí)器到達(dá)應(yīng)該熄滅的部分,它會(huì)關(guān)閉照明燈,然后設(shè)置代表字母下一部分的代碼。如果沒有下一部分,它將重置為第一部分。
步驟8:查看我們的設(shè)置并重置

當(dāng)然,如果沒有將燈光設(shè)置為輸出和輸入,則程序?qū)⒉粫?huì)運(yùn)行。我還添加了一個(gè)隨機(jī)數(shù)生成器,以從我放入名為wordsToGuess的數(shù)組中的單詞列表中添加單詞。
此外,我們應(yīng)該添加reset函數(shù)并確保將所有值都重置為default 。
步驟9:一張圖片中的所有變量

最后,您可以使用它來(lái)檢查是否具有所有必需的變量設(shè)置正確。
責(zé)任編輯:wv
-
led燈
+關(guān)注
關(guān)注
22文章
1606瀏覽量
111871 -
摩爾斯電碼
+關(guān)注
關(guān)注
0文章
17瀏覽量
10470 -
Arduino
+關(guān)注
關(guān)注
190文章
6526瀏覽量
196947
發(fā)布評(píng)論請(qǐng)先 登錄
蔚來(lái)匈牙利首家國(guó)家總代理門店開業(yè)
LED觸摸控制PCBA方案開發(fā) | 燈控觸摸方案開發(fā)
飛凌嵌入式OK3506-S12 Mini開發(fā)板產(chǎn)品點(diǎn)亮LED燈
IO設(shè)置為輸出點(diǎn)亮LED燈, 沒有操作時(shí)led燈一亮一滅是怎么回事?
LED燈板自動(dòng)測(cè)試系統(tǒng)設(shè)備#線路板#電路板測(cè)試#led電源測(cè)試系統(tǒng)#led燈板自動(dòng)測(cè)試#pcb
如何使用帶有 PDMA 的 NUC1262 LLSI 來(lái)控制 ARGB Gen 1 LED 燈?
LED燈珠來(lái)料檢驗(yàn)
請(qǐng)問CAN哪些工具來(lái)設(shè)置 CYBT 無(wú)線電的發(fā)射功率?
LED植物生長(zhǎng)燈的原理是什么
【BPI-CanMV-K230D-Zero開發(fā)板體驗(yàn)】+燈效控制與Python編程
使用單片機(jī)驅(qū)動(dòng)多組LED燈實(shí)現(xiàn)呼吸效果電路
蔚來(lái)ET9搭載艾邁斯歐司朗智能多像素LED產(chǎn)品EVIYOS HD 25
如何通過使用LED燈發(fā)送摩爾斯電碼來(lái)設(shè)置自己的Arduino來(lái)玩Hangman
評(píng)論