課程目標(biāo)
- 按鍵控制數(shù)碼管電路的搭建
- 隨機(jī)數(shù)的應(yīng)用
相關(guān)知識
在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ù)
}
-
數(shù)碼管
+關(guān)注
關(guān)注
32文章
1887瀏覽量
91458 -
生成器
+關(guān)注
關(guān)注
7文章
320瀏覽量
21151 -
Arduino
+關(guān)注
關(guān)注
188文章
6477瀏覽量
187964 -
隨機(jī)數(shù)
+關(guān)注
關(guān)注
0文章
18瀏覽量
12051
發(fā)布評論請先 登錄
相關(guān)推薦
arduino學(xué)習(xí)筆記8 - 數(shù)字骰子實(shí)驗(yàn)
電子骰子的設(shè)計(jì)方案分享
基于AT89C205構(gòu)建的電子骰子的電路圖
![基于AT89C205構(gòu)建的<b class='flag-5'>電子</b><b class='flag-5'>骰子</b>的電路圖](https://file.elecfans.com//web2/M00/4E/33/pYYBAGK5cciAEateAAH2Khnm_tQ978.png)
用于生成隨機(jī)數(shù)的電子骰子
![用于生成隨機(jī)數(shù)的<b class='flag-5'>電子</b><b class='flag-5'>骰子</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
基于Arduino的7段顯示數(shù)字骰子
![基于<b class='flag-5'>Arduino</b>的7段顯示數(shù)字<b class='flag-5'>骰子</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
使用Arduino板載的骰子項(xiàng)目
![使用<b class='flag-5'>Arduino</b>板載的<b class='flag-5'>骰子</b>項(xiàng)目](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
使用Arduino Nano點(diǎn)亮骰子頭骨
![使用<b class='flag-5'>Arduino</b> Nano點(diǎn)亮<b class='flag-5'>骰子</b>頭骨](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
分享一個(gè)棋盤游戲電子骰子電路
![分享一個(gè)棋盤游戲<b class='flag-5'>電子</b><b class='flag-5'>骰子</b>電路](https://file.elecfans.com/web2/M00/A4/D6/poYBAGRfMN2AezjWAAFa7qWvjJM736.png)
Arduino電子骰子系統(tǒng)
![<b class='flag-5'>Arduino</b><b class='flag-5'>電子</b><b class='flag-5'>骰子</b>系統(tǒng)](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論