第1步:設(shè)置LED燈
莫爾斯游戲?qū)⑹褂?個(gè)燈來指出單詞中需要猜測的4個(gè)字母和5個(gè)指示燈以指示玩家還沒有去猜測的生命,因此首先,您必須按照通常的方式連接9個(gè)LED指示燈在圖片里。
第2步:添加一個(gè)臨時(shí)光傳感器
我們不能在電子商店里亂扔錢,所以我決定保留這個(gè)項(xiàng)目
您需要做的就是將LED燈的正極連接到模擬端口之一(在我的情況下為A0)
第3步:添加字典
首先,讓我們開始吧添加一種字典將字母翻譯為相應(yīng)的摩爾斯電碼。為此,我們只需將數(shù)組乘以26 x 5即可,每個(gè)輔助數(shù)組的第一個(gè)插槽均具有字母,而接下來的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è)置為我們希望玩家猜測的單詞。我個(gè)人有一個(gè)隨機(jī)數(shù)發(fā)生器,可以在一開始將其設(shè)置為一個(gè)隨機(jī)單詞,但是您也可以將其設(shè)置為單個(gè)單詞。
我們還需要確保計(jì)數(shù)器每增加一個(gè)循環(huán),否則整個(gè)程序?qū)o法執(zhí)行任何操作。此外,我添加了delay函數(shù),以確保每毫秒都有一個(gè)循環(huán)。
PS:所有Serial.println函數(shù)僅用于測試目的。它們可能在完成后被刪除。
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í)器來重新打開和關(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:一張圖片中的所有變量
最后,您可以使用它來檢查是否具有所有必需的變量設(shè)置正確。
責(zé)任編輯:wv
-
led燈
+關(guān)注
關(guān)注
22文章
1592瀏覽量
108242 -
摩爾斯電碼
+關(guān)注
關(guān)注
0文章
17瀏覽量
10265 -
Arduino
+關(guān)注
關(guān)注
188文章
6477瀏覽量
187596
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論