圣源电子制作

 找回密码
 立即注册
查看: 10296|回复: 0
打印 上一主题 下一主题

Ardunio 入门教程-实验十四 2位数码管骰子

[复制链接]
跳转到指定楼层
楼主
发表于 2012-5-13 16:02:14 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
Ardunio 入门教程-实验十四 2位数码管骰子

实验用到的元件

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

原理图





连接图

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

实验演示视频:



代码:
  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. }
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|联系我们|闽公网安备 35012102000020号|闽ICP备11020110号-1|圣源电子

GMT+8, 2024-7-27 07:56 , Processed in 0.044404 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表