Arduino基礎入門篇15—隨機骰子
上一篇介紹了數碼管的使用,一位數碼管可顯示數字0到9。本篇使用random()函式產生隨機數並在數碼管上進行顯示,製作一個隨機骰子。
在Arduino中,random()函式用來產生偽隨機數,可以傳入一個區間,產生此區間內的隨機數。通常情況下,在使用random()函式之前,需要使用randomSeed()來初始化隨機數生成器,指定一個隨機數種子。
1. 實驗材料
Uno R3開發板
配套USB資料線
麵包板及配套連線線
共陰極數碼管
1個220Ω限流電阻
2. 實驗步驟
1. 根據原理圖搭建電路。
數碼管的A,B,C,D,E,F,G,DP引腳分別接入開發板的數字管腳7,6,5,10,11,8,9,4。數碼管公共端接限流電阻,電阻另一端接GND。
實驗原理圖如下圖所示:
實驗原理圖
實物連線圖如下圖所示:
實物連線圖
2. 新建sketch,複製如下程式碼替換自動生成的程式碼並進行儲存。
/* Random 透過Random隨機顯示0到9的數字 *///設定控制各段的數字IO腳,具體幾號引腳對應哪一段,來源為數碼管官方引腳圖。int pin_a = 7;int pin_b = 6;int pin_c = 5;int pin_d = 10;int pin_e = 11;int pin_f = 8;int pin_g = 9;int pin_p = 4;int num;//根據共陰極數碼管段碼錶定義0~9顯示的各段開關狀態int numTable[10][8] = { //1為點亮,0為關閉 //a b c d e f g dp {1, 1, 1, 1, 1, 1, 0, 0}, //0 {0, 1, 1, 0, 0, 0, 0, 0}, //1 {1, 1, 0, 1, 1, 0, 1, 0}, //2 {1, 1, 1, 1, 0, 0, 1, 0}, //3 {0, 1, 1, 0, 0, 1, 1, 0}, //4 {1, 0, 1, 1, 0, 1, 1, 0}, //5 {1, 0, 1, 1, 1, 1, 1, 0}, //6 {1, 1, 1, 0, 0, 0, 0, 0}, //7 {1, 1, 1, 1, 1, 1, 1, 0}, //8 {1, 1, 1, 1, 0, 1, 1, 0}, //9};void setup(){ for (int i = 4; i <= 11; i++) { pinMode(i, OUTPUT); //設定4~11引腳為輸出模式 } randomSeed(analogRead(0)); }//根據索引顯示數字void showNum(int index){ digitalWrite(pin_a, numTable[index][0]); //設定a 引腳的電平 digitalWrite(pin_b, numTable[index][1]); //設定b 引腳的電平 digitalWrite(pin_c, numTable[index][2]); //設定c 引腳的電平 digitalWrite(pin_d, numTable[index][3]); //設定d 引腳的電平 digitalWrite(pin_e, numTable[index][4]); //設定e 引腳的電平 digitalWrite(pin_f, numTable[index][5]); //設定f 引腳的電平 digitalWrite(pin_g, numTable[index][6]); //設定g 引腳的電平 digitalWrite(pin_p, numTable[index][7]); //設定dp引腳的電平}void loop(){ num = random(10); //產生隨機數 showNum(num); //顯示隨機數 delay(500); }
3. 連線開發板,設定好對應埠號和開發板型別,進行程式下載。
程式下載
3. 實驗現象
隨機顯示0到9之間的數字。
實驗現象
4. 函式介紹
random()
描述:生成偽隨機數。
-
函式原型:
random(max)
random(min,max)
-
引數:
min: 隨機數區間下限值,且包括在內。此引數可選,省略則從0開始。
max: 隨機數區間上限值,且不包括在內。
返回值:min和max-1之間的隨機數。
randomSeed()
描述:初始化隨機數生成器。
函式原型:randomSeed(seed)
引數:用於初始化偽隨機序列的數字,隨機數種子。
返回值:沒有。
作者:TonyCode
連結:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/1020/viewspace-2816246/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Arduino基礎入門套件教程PDFUI套件
- Kafka基礎入門篇Kafka
- vue 基礎入門筆記 15Vue筆記
- vue 基礎入門筆記 15:refVue筆記
- JS基礎入門篇( 一 )JS
- JS基礎入門篇(一)JS
- TypeScript入門指南(基礎篇)TypeScript
- TypeScript入門完全指南(基礎篇)TypeScript
- Dart 語言基礎入門篇Dart
- 入門MySQL——基礎語句篇MySql
- 一、Ansible基礎之入門篇
- 超基礎的機器學習入門-原理篇機器學習
- JS基礎入門篇(十)—字串方法JS字串
- JS基礎入門篇(十八)—日期物件JS物件
- JS基礎入門篇(七)—運算子JS
- (Python篇)零基礎入門第三篇Python
- JS基礎入門篇(十)— 陣列方法JS陣列
- Nginx入門到實戰(1)基礎篇Nginx
- WebSocket系列之基礎知識入門篇Web
- vue+webpack 從入門到精通(基礎篇)VueWeb
- Docker容器基礎入門認知-網路篇Docker
- Java基礎篇—Java類載入機制Java
- Python基礎入門之最常見的15道面試題!Python面試題
- android基礎學習-android篇day12-android的UI基礎入門AndroidUI
- JS基礎入門篇(三十六)—物件導向( 三 )JS物件
- JS基礎入門篇(二十)—事件物件以及案例(二)JS事件物件
- 爬蟲(1) - 爬蟲基礎入門理論篇爬蟲
- HTML 基礎入門HTML
- Maven入門基礎Maven
- Java 入門基礎Java
- Redis入門基礎Redis
- goalng 基礎入門Go
- sqlServer 基礎入門SQLServer
- Ansible 基礎入門
- shell入門基礎
- mongodb基礎入門MongoDB
- MySQL 基礎入門MySql
- RabbitMQ基礎入門MQ