課程目標(biāo)
- 按鍵控制數(shù)碼管電路的搭建
- 隨機(jī)數(shù)的應(yīng)用
相關(guān)知識(shí)
在Arduino中,random()函數(shù)用來產(chǎn)生偽隨機(jī)數(shù),可以傳入一個(gè)區(qū)間,產(chǎn)生此區(qū)間內(nèi)的隨機(jī)數(shù)。
random()
- 描述:生成偽隨機(jī)數(shù)。
- 函數(shù)原型:
- random(max)
- random(min,max)
- 參數(shù):
- min: 隨機(jī)數(shù)區(qū)間下限值,且包括在內(nèi)。此參數(shù)可選,省略則從0開始。
- max: 隨機(jī)數(shù)區(qū)間上限值,且不包括在內(nèi)。
- 返回值:min和max-1之間的隨機(jī)數(shù)。
randomSeed()
- 描述:初始化隨機(jī)數(shù)生成器。
- 函數(shù)原型:randomSeed(seed)
- 參數(shù):用于初始化偽隨機(jī)序列的數(shù)字,隨機(jī)數(shù)種子。
- 返回值:沒有。
電路搭建
所需材料
Arduino UNO * 1
共陽極數(shù)碼管 * 1
按鍵 * 1
杜邦線若干
*接線方式
*
參考前幾期課程,進(jìn)行綜合接線。

程序流程分析

程序編寫
練習(xí):隨機(jī)數(shù)顯示
根據(jù)要求,編寫程序?qū)崿F(xiàn)按鍵數(shù)碼管顯示0~9隨機(jī)數(shù)功能。
圖形化方式:

代碼方式:
/* 項(xiàng)目名稱:電子骰子
項(xiàng)目時(shí)間:2022.02.17
項(xiàng)目作者:MRX
*/
int Pin[8] = {2,3,4,5,6,7,8};//定義引腳數(shù)組
int num;
unsigned char Num[10][7] =
//a b c d e f g
{{0, 0, 0, 0, 0, 0, 1}, //0
{1, 0, 0, 1, 1, 1, 1}, //1
{0, 0, 1, 0, 0, 1, 0}, //2
{0, 0, 0, 0, 1, 1, 0}, //3
{1, 0, 0, 1, 1, 0, 0}, //4
{0, 1, 0, 0, 1, 0, 0}, //5
{0, 1, 0, 0, 0, 0, 0}, //6
{0, 0, 0, 1, 1, 1, 1}, //7
{0, 0, 0, 0, 0, 0, 0}, //8
{0, 0, 0, 0, 1, 0, 0}, //9
};
void setup()
{
for (int i = 2; i <= 8; i++)
{
pinMode(i, OUTPUT); //設(shè)置2~8引腳為輸出模式
}
pinMode(10,INPUT);
randomSeed(analogRead(0));
}
//根據(jù)索引顯示數(shù)字
void showNum(int index)
{
digitalWrite(2, Num[index][0]); //設(shè)置a 引腳的電平
digitalWrite(3, Num[index][1]); //設(shè)置b 引腳的電平
digitalWrite(4, Num[index][2]); //設(shè)置c 引腳的電平
digitalWrite(5, Num[index][3]); //設(shè)置d 引腳的電平
digitalWrite(6, Num[index][4]); //設(shè)置e 引腳的電平
digitalWrite(7, Num[index][5]); //設(shè)置f 引腳的電平
digitalWrite(8, Num[index][6]); //設(shè)置g 引腳的電平
}
void loop()
{
if(digitalRead(10)){
num = random(10); //每0.5秒產(chǎn)生隨機(jī)數(shù)
delay(500);
}
showNum(num); //顯示隨機(jī)數(shù)
}
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。
舉報(bào)投訴
-
數(shù)碼管
+關(guān)注
關(guān)注
32文章
1894瀏覽量
94450 -
生成器
+關(guān)注
關(guān)注
7文章
322瀏覽量
22816 -
Arduino
+關(guān)注
關(guān)注
190文章
6527瀏覽量
197507 -
隨機(jī)數(shù)
+關(guān)注
關(guān)注
0文章
20瀏覽量
12303
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
熱點(diǎn)推薦
arduino學(xué)習(xí)筆記8 - 數(shù)字骰子實(shí)驗(yàn)
前幾次做了數(shù)碼管實(shí)驗(yàn)和按鍵控制LED的實(shí)驗(yàn),通過實(shí)驗(yàn)大家已經(jīng)學(xué)會(huì)了兩種器件的基本用法。這次使用數(shù)碼管與按鍵進(jìn)行組合,做一個(gè)簡易數(shù)字骰子。數(shù)字篩子的基本原理是數(shù)碼管快速在1-8之間循環(huán)跳動(dòng),當(dāng)按下按鍵
發(fā)表于 10-23 17:38
電子骰子的設(shè)計(jì)方案分享
描述電子骰子它是電子骰子,用于生成隨機(jī)數(shù),通常作為桌面游戲的一部分,包括骰子游戲、棋盤游戲、角色扮演游戲和機(jī)會(huì)游戲。
發(fā)表于 06-30 06:20
基于AT89C205構(gòu)建的電子骰子的電路圖
這是基于Atmel AT89C2051的微控制器芯片構(gòu)建的電子骰子的電路圖。這種電子骰子的應(yīng)用與骰子游戲中使用的類似。該電路生成隨機(jī)數(shù),這些
用于生成隨機(jī)數(shù)的電子骰子
電子發(fā)燒友網(wǎng)站提供《用于生成隨機(jī)數(shù)的電子骰子.zip》資料免費(fèi)下載
發(fā)表于 07-06 10:58
?4次下載
基于Arduino的7段顯示數(shù)字骰子
電子發(fā)燒友網(wǎng)站提供《基于Arduino的7段顯示數(shù)字骰子.zip》資料免費(fèi)下載
發(fā)表于 11-14 09:28
?0次下載
使用Arduino板載的骰子項(xiàng)目
電子發(fā)燒友網(wǎng)站提供《使用Arduino板載的骰子項(xiàng)目.zip》資料免費(fèi)下載
發(fā)表于 11-15 10:09
?0次下載
使用Arduino Nano點(diǎn)亮骰子頭骨
電子發(fā)燒友網(wǎng)站提供《使用Arduino Nano點(diǎn)亮骰子頭骨.zip》資料免費(fèi)下載
發(fā)表于 02-09 10:14
?0次下載
分享一個(gè)棋盤游戲電子骰子電路
在享受我們的棋盤游戲時(shí),電子骰子可以成為傳統(tǒng)骰子的良好而有趣的替代品。我們?cè)O(shè)計(jì)了一個(gè)電子骰子電路,它將生成從0到6的隨機(jī)數(shù)。該電路的特點(diǎn)是,
Arduino電子骰子系統(tǒng)
電子發(fā)燒友網(wǎng)站提供《Arduino電子骰子系統(tǒng).zip》資料免費(fèi)下載
發(fā)表于 06-29 09:23
?0次下載
Arduino動(dòng)畫矩陣骰子
電子發(fā)燒友網(wǎng)站提供《Arduino動(dòng)畫矩陣骰子.zip》資料免費(fèi)下載
發(fā)表于 07-06 09:05
?0次下載
Arduino篇—電子骰子
評(píng)論