使用Nano V3微控制器、一個(gè)按鈕和兩個(gè)LED矩陣顯示器創(chuàng)建一個(gè)交互式電子骰子
歡迎來到這個(gè)令人興奮的Arduino項(xiàng)目,我們將使用Nano V3微控制器,按鈕和兩個(gè)LED矩陣顯示器創(chuàng)建一個(gè)交互式電子骰子。當(dāng)按下按鈕時(shí),LED矩陣將通過顯示動(dòng)畫模擬擲骰子,然后顯示隨機(jī)的骰子面。這個(gè)項(xiàng)目是一個(gè)有趣的方式潛入編程微控制器和工作與LED顯示器。
步驟1:連接圖
按鈕連接到D2和GND,按下時(shí)拉低。第二個(gè)LED矩陣是菊花鏈。
ArduinoCode
你需要安裝“LedControl”庫。為此,打開Arduino IDE并轉(zhuǎn)到庫管理器。搜索“LedControl”(byEberhardFahle)并安裝。
代碼是如何工作的
庫包含和初始化
包括“LedControl”庫來控制LED矩陣。
●初始化一個(gè)“LedControl”對(duì)象“l(fā)c”,其數(shù)據(jù)(“DIN”)、時(shí)鐘(“CLK”)和芯片選擇(“CS”)引腳分別連接到Arduino的引腳12、11和10。
●指定有2個(gè)器件(LED矩陣)菊狀連接在一起。
定義骰子面模式
●創(chuàng)建一個(gè)二維數(shù)組“骰子”,保存一個(gè)骰子的六個(gè)面的位圖模式。
●每個(gè)面是一個(gè)8字節(jié)數(shù)組,代表8x8 LED矩陣模式。
按鈕的設(shè)置
●設(shè)置按鈕連接到數(shù)字引腳2。
●初始化按鈕狀態(tài)變量和debounce功能,以處理機(jī)械開關(guān)彈跳
設(shè)置函數(shù)
?從關(guān)閉模式喚醒兩個(gè)LED矩陣。
?將亮度設(shè)置為中等。
?清除矩陣上的任何先前顯示。
?種子隨機(jī)數(shù)生成器生成隨機(jī)骰子值。
?配置帶有內(nèi)部上拉電阻的按鈕引腳。
?讀取按鈕的初始狀態(tài)。
顯示骰子面
●輔助功能,獲取骰子面模式并在指定的LED矩陣上顯示。
動(dòng)畫功能
●通過在LED矩陣上顯示隨機(jī)圖案來創(chuàng)建滾動(dòng)骰子動(dòng)畫,持續(xù)一秒鐘。
●在顯示最終結(jié)果之前,通過模擬滾動(dòng)效果來增強(qiáng)用戶體驗(yàn)。
主循環(huán)
●連續(xù)檢查按鈕狀態(tài)并關(guān)機(jī)。
●檢測(cè)到按鈕按下時(shí):
〇調(diào)用“animate()”函數(shù)來顯示滾動(dòng)動(dòng)畫。
〇為骰子值生成1 ~ 6之間的兩個(gè)隨機(jī)數(shù)。
〇使用displayDieFace()函數(shù)在每個(gè)LED矩陣上顯示對(duì)應(yīng)的骰子面
本文編譯自hackster.io