第1步:設置LED燈
莫爾斯游戲將使用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瀏覽量
108108 -
摩爾斯電碼
+關注
關注
0文章
17瀏覽量
10259 -
Arduino
+關注
關注
188文章
6472瀏覽量
187320
發布評論請先 登錄
相關推薦
評論