Ardunio 入门教程-实验八 7LED电子骰子
实验用到的元件
实验用到的元件 7个LED(颜色看个人喜好),7个 470欧姆的电阻,1个10K欧姆电阻,1个轻触开关,11根杜邦线,一块实验板。
原理图
连接图
实验演示视频:
代码- // Listing. Project 9.
- int ledPins[7] = {2, 3, 4, 5, 6, 7, 8};
- int dicePatterns[7][7] = {
- {0, 0, 0, 0, 0, 0, 1}, // 1
- {0, 0, 1, 1, 0, 0, 0}, // 2
- {0, 0, 1, 1, 0, 0, 1}, // 3
- {1, 0, 1, 1, 0, 1, 0}, // 4
- {1, 0, 1, 1, 0, 1, 1}, // 5
- {1, 1, 1, 1, 1, 1, 0}, // 6
- {0, 0, 0, 0, 0, 0, 0} // BLANK
- };
-
- int switchPin = 9;
- int blank = 6;
- void setup()
- {
- for (int i = 0; i < 7; i++)
- {
- pinMode(ledPins[i], OUTPUT);
- digitalWrite(ledPins[i], LOW);
- }
- randomSeed(analogRead(0));
- }
- void loop()
- {
- if (digitalRead(switchPin))
- {
- rollTheDice();
- }
- delay(100);
- }
- void rollTheDice()
- {
- int result = 0;
- int lengthOfRoll = random(15, 25);
- for (int i = 0; i < lengthOfRoll; i++)
- {
- result = random(0, 6); // result will be 0 to 5 not 1 to 6
- show(result);
- delay(50 + i * 10);
- }
- for (int j = 0; j < 3; j++)
- {
- show(blank);
- delay(500);
- show(result);
- delay(500);
- }
- }
- void show(int result)
- {
- for (int i = 0; i < 7; i++)
- {
- digitalWrite(ledPins[i], dicePatterns[result][i]);
- }
- }
复制代码 |