0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Arduino篇—電子骰子

冬至子 ? 來源:X的創(chuàng)客課堂 ? 作者:MRXY ? 2023-11-01 10:15 ? 次閱讀

課程目標(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)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 數(shù)碼管
    +關(guān)注

    關(guān)注

    32

    文章

    1873

    瀏覽量

    90766
  • 生成器
    +關(guān)注

    關(guān)注

    7

    文章

    313

    瀏覽量

    20928
  • Arduino
    +關(guān)注

    關(guān)注

    187

    文章

    6455

    瀏覽量

    186386
  • 隨機(jī)數(shù)
    +關(guān)注

    關(guān)注

    0

    文章

    17

    瀏覽量

    11999
收藏 人收藏

    評(píng)論

    相關(guā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

    電子骰子電路圖

    電子骰子電路圖
    發(fā)表于 03-31 10:18 ?3271次閱讀
    <b class='flag-5'>電子</b><b class='flag-5'>骰子</b>電路圖

    基于AT89C205構(gòu)建的電子骰子的電路圖

    這是基于Atmel AT89C2051的微控制器芯片構(gòu)建的電子骰子的電路圖。這種電子骰子的應(yīng)用與骰子游戲中使用的類似。該電路生成隨機(jī)數(shù),這些
    的頭像 發(fā)表于 06-27 17:00 ?2254次閱讀
    基于AT89C205構(gòu)建的<b class='flag-5'>電子</b><b class='flag-5'>骰子</b>的電路圖

    用于生成隨機(jī)數(shù)的電子骰子

    電子發(fā)燒友網(wǎng)站提供《用于生成隨機(jī)數(shù)的電子骰子.zip》資料免費(fèi)下載
    發(fā)表于 07-06 10:58 ?4次下載
    用于生成隨機(jī)數(shù)的<b class='flag-5'>電子</b><b class='flag-5'>骰子</b>

    基于Arduino的7段顯示數(shù)字骰子

    電子發(fā)燒友網(wǎng)站提供《基于Arduino的7段顯示數(shù)字骰子.zip》資料免費(fèi)下載
    發(fā)表于 11-14 09:28 ?0次下載
    基于<b class='flag-5'>Arduino</b>的7段顯示數(shù)字<b class='flag-5'>骰子</b>

    使用Arduino板載的骰子項(xiàng)目

    電子發(fā)燒友網(wǎng)站提供《使用Arduino板載的骰子項(xiàng)目.zip》資料免費(fèi)下載
    發(fā)表于 11-15 10:09 ?0次下載
    使用<b class='flag-5'>Arduino</b>板載的<b class='flag-5'>骰子</b>項(xiàng)目

    Arduino骰子開源案例

    電子發(fā)燒友網(wǎng)站提供《Arduino骰子開源案例.zip》資料免費(fèi)下載
    發(fā)表于 12-14 10:06 ?0次下載
    <b class='flag-5'>Arduino</b><b class='flag-5'>骰子</b>開源案例

    Arduino LED骰子

    電子發(fā)燒友網(wǎng)站提供《Arduino LED骰子.zip》資料免費(fèi)下載
    發(fā)表于 01-05 10:08 ?0次下載
    <b class='flag-5'>Arduino</b> LED<b class='flag-5'>骰子</b>

    使用Arduino Nano點(diǎn)亮骰子頭骨

    電子發(fā)燒友網(wǎng)站提供《使用Arduino Nano點(diǎn)亮骰子頭骨.zip》資料免費(fèi)下載
    發(fā)表于 02-09 10:14 ?0次下載
    使用<b class='flag-5'>Arduino</b> Nano點(diǎn)亮<b class='flag-5'>骰子</b>頭骨

    分享一個(gè)棋盤游戲電子骰子電路

    在享受我們的棋盤游戲時(shí),電子骰子可以成為傳統(tǒng)骰子的良好而有趣的替代品。我們?cè)O(shè)計(jì)了一個(gè)電子骰子電路,它將生成從0到6的隨機(jī)數(shù)。該電路的特點(diǎn)是,
    的頭像 發(fā)表于 05-13 14:41 ?2343次閱讀
    分享一個(gè)棋盤游戲<b class='flag-5'>電子</b><b class='flag-5'>骰子</b>電路

    FPGA上的電子骰子

    電子發(fā)燒友網(wǎng)站提供《FPGA上的電子骰子.zip》資料免費(fèi)下載
    發(fā)表于 06-15 11:03 ?1次下載
    FPGA上的<b class='flag-5'>電子</b><b class='flag-5'>骰子</b>

    Arduino電子骰子系統(tǒng)

    電子發(fā)燒友網(wǎng)站提供《Arduino電子骰子系統(tǒng).zip》資料免費(fèi)下載
    發(fā)表于 06-29 09:23 ?0次下載
    <b class='flag-5'>Arduino</b><b class='flag-5'>電子</b><b class='flag-5'>骰子</b>系統(tǒng)

    Arduino二進(jìn)制骰子

    電子發(fā)燒友網(wǎng)站提供《Arduino二進(jìn)制骰子.zip》資料免費(fèi)下載
    發(fā)表于 07-04 10:13 ?0次下載
    <b class='flag-5'>Arduino</b>二進(jìn)制<b class='flag-5'>骰子</b>

    Arduino動(dòng)畫矩陣骰子

    電子發(fā)燒友網(wǎng)站提供《Arduino動(dòng)畫矩陣骰子.zip》資料免費(fèi)下載
    發(fā)表于 07-06 09:05 ?0次下載
    <b class='flag-5'>Arduino</b>動(dòng)畫矩陣<b class='flag-5'>骰子</b>