圣源电子制作

标题: Ardunio 入门教程-实验十四 2位数码管骰子 [打印本页]

作者: sydz    时间: 2012-5-13 16:02
标题: Ardunio 入门教程-实验十四 2位数码管骰子
Ardunio 入门教程-实验十四 2位数码管骰子

实验用到的元件
(, 下载次数: 106)
实验用到的元件 ,1个数码管,1个轻触开关,1个10K欧姆的电阻,13根杜邦线,2块实验板。

原理图
(, 下载次数: 105)


(, 下载次数: 105)

连接图
(, 下载次数: 106)
按下 轻触开关数字随机滚动,松开显示摇到的数字。(10K下拉电阻是不可以少的 ,否则会照成电路不稳定)

实验演示视频:
http://player.youku.com/player.php/sid/XNDEyNjk1MDA4/v.swf


代码:
  1. // Project 14 - Double Dice

  2. int segmentPins[] = {3, 2, A5, A2, A4, 4, 5, A3};
  3. int displayPins[] = {10, 11};

  4. int buttonPin = 12;

  5. byte digits[10][8] = {
  6. //  a  b  c  d  e  f  g  .
  7.   { 1, 1, 1, 1, 1, 1, 0, 0},  // 0
  8.   { 0, 1, 1, 0, 0, 0, 0, 0},  // 1
  9.   { 1, 1, 0, 1, 1, 0, 1, 0},  // 2
  10.   { 1, 1, 1, 1, 0, 0, 1, 0},  // 3
  11.   { 0, 1, 1, 0, 0, 1, 1, 0},  // 4
  12.   { 1, 0, 1, 1, 0, 1, 1, 0},  // 5
  13.   { 1, 0, 1, 1, 1, 1, 1, 0},  // 6
  14.   { 1, 1, 1, 0, 0, 0, 0, 0},  // 7
  15.   { 1, 1, 1, 1, 1, 1, 1, 0},  // 8  
  16.   { 1, 1, 1, 1, 0, 1, 1, 0}  // 9  
  17. };
  18.    
  19. void setup()
  20. {
  21.   for (int i=0; i < 8; i++)
  22.   {
  23.     pinMode(segmentPins[i], OUTPUT);
  24.   }
  25.   pinMode(displayPins[0], OUTPUT);
  26.   pinMode(displayPins[1], OUTPUT);
  27.   pinMode(buttonPin, INPUT);
  28. }

  29. void loop()
  30. {
  31.   static int dice1;
  32.   static int dice2;
  33.   if (digitalRead(buttonPin))
  34.   {
  35.     dice1 = random(1,7);
  36.     dice2 = random(1,7);
  37.   }
  38.   updateDisplay(dice1, dice2);
  39. }

  40. void updateDisplay(int value1, int value2)
  41. {
  42.   digitalWrite(displayPins[0], LOW);
  43.   digitalWrite(displayPins[1], HIGH);
  44.   setSegments(value1);
  45.   delay(5);
  46.   digitalWrite(displayPins[0], HIGH);
  47.   digitalWrite(displayPins[1], LOW);
  48.   setSegments(value2);
  49.   delay(5);  
  50. }

  51. void setSegments(int n)
  52. {
  53.   for (int i=0; i < 8; i++)
  54.   {
  55.     digitalWrite(segmentPins[i], ! digits[n][i]);
  56.   }
  57. }
复制代码





欢迎光临 圣源电子制作 (https://syyyd.com/) Powered by Discuz! X3.4