課程目標
- 按鍵控制數碼管電路的搭建
- 隨機數的應用
相關知識
在Arduino中,random()函數用來產生偽隨機數,可以傳入一個區間,產生此區間內的隨機數。
random()
- 描述:生成偽隨機數。
- 函數原型:
- random(max)
- random(min,max)
- 參數:
- min: 隨機數區間下限值,且包括在內。此參數可選,省略則從0開始。
- max: 隨機數區間上限值,且不包括在內。
- 返回值:min和max-1之間的隨機數。
randomSeed()
- 描述:初始化隨機數生成器。
- 函數原型:randomSeed(seed)
- 參數:用于初始化偽隨機序列的數字,隨機數種子。
- 返回值:沒有。
電路搭建
所需材料
Arduino UNO * 1
共陽極數碼管 * 1
按鍵 * 1
杜邦線若干
*接線方式
*
參考前幾期課程,進行綜合接線。
程序流程分析
程序編寫
練習:隨機數顯示
根據要求,編寫程序實現按鍵數碼管顯示0~9隨機數功能。
圖形化方式:
代碼方式:
/* 項目名稱:電子骰子
項目時間:2022.02.17
項目作者:MRX
*/
int Pin[8] = {2,3,4,5,6,7,8};//定義引腳數組
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); //設置2~8引腳為輸出模式
}
pinMode(10,INPUT);
randomSeed(analogRead(0));
}
//根據索引顯示數字
void showNum(int index)
{
digitalWrite(2, Num[index][0]); //設置a 引腳的電平
digitalWrite(3, Num[index][1]); //設置b 引腳的電平
digitalWrite(4, Num[index][2]); //設置c 引腳的電平
digitalWrite(5, Num[index][3]); //設置d 引腳的電平
digitalWrite(6, Num[index][4]); //設置e 引腳的電平
digitalWrite(7, Num[index][5]); //設置f 引腳的電平
digitalWrite(8, Num[index][6]); //設置g 引腳的電平
}
void loop()
{
if(digitalRead(10)){
num = random(10); //每0.5秒產生隨機數
delay(500);
}
showNum(num); //顯示隨機數
}
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
數碼管
+關注
關注
32文章
1883瀏覽量
91315 -
生成器
+關注
關注
7文章
319瀏覽量
21074 -
Arduino
+關注
關注
188文章
6477瀏覽量
187541 -
隨機數
+關注
關注
0文章
18瀏覽量
12038
發布評論請先 登錄
相關推薦
arduino學習筆記8 - 數字骰子實驗
前幾次做了數碼管實驗和按鍵控制LED的實驗,通過實驗大家已經學會了兩種器件的基本用法。這次使用數碼管與按鍵進行組合,做一個簡易數字骰子。數字篩子的基本原理是數碼管快速在1-8之間循環跳動,當按下按鍵
發表于 10-23 17:38
評論