第十八课--Microduino 4路抢答器/zh

来自Microduino Wikipedia
Pkj讨论 | 贡献2014年3月4日 (二) 02:59的版本 (Created page with "{| style="width: 800px;" |- | ==目的== 本教程将教大家通过Microduino使用5个按钮按键做一个4路的抢答器,4个按键分别标上1~4的编号,同时按...")
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转至: 导航搜索

目的

本教程将教大家通过Microduino使用5个按钮按键做一个4路的抢答器,4个按键分别标上1~4的编号,同时按下4个按键,数码管上会显示最先按下的按键编号,还有一个按钮起到重置的作用

设备

  • Microduino-Core
  • Microduino-FT232R
  • 其他硬件设备
    • 面包板跳线 一盒
    • 面包板 一块
    • 按键 五个
    • 数码管 一个
    • 10k欧电阻 五个
    • 220欧电阻 一个
    • USB数据连接线 一根


原理图

第十八课-Microduino4路抢答器原理图.jpg


引脚表

Microduino引脚 数码管引脚
D10 1
D9 2
D5 3
D8 4
D13 5
D7 6
D6 7
不接 8
D11 9
D12 10

程序

#include "SevSeg.h"
SevSeg sevseg;

void setup() {
  //定义需要使用的引脚
  sevseg.Begin(1,2,3,4,5,6,7,8,9,10,11,12,13);
  pinMode(1, INPUT);    //按钮1引脚
  pinMode(2, INPUT);    //按钮2引脚
  pinMode(3, INPUT);    //按钮3引脚
  pinMode(4, INPUT);    //按钮4引脚

  sevseg.PrintOutput();
  sevseg.NewNum(0, 4); //初始值0

}

void loop() {
  //激活输出功能
  sevseg.PrintOutput();

  //循环读取这四个按钮的引脚
  for(int i=1; i<=4; i++) {
    if(digitalRead(i)==HIGH) {//如果有按钮按下
      while(1) {//显示按键编号
        sevseg.PrintOutput();
        sevseg.NewNum(i, 4);
      }
    }
  }
}

调试

首先介绍下库文件,需要解压缩后放到arduinoIDE目录的libraries内,然后重启arduinoIDE就能加载这个库了

库作者的发布页面:https://docs.google.com/file/d/0Bwrp4uluZCpNN1Q4dmFZX1MzWVE/edit

这个库,可以驱动四位数码管,支持显示数字与小数点,使用简单方便。具体请自己参悟研究

步骤一:把代码复制到IDE中,编译

步骤二:电路连接,我们用一位共阳数码管电路图照片如下:

第十八课-Microduino4路抢答器连接图.jpg

共四个按键,按键的接法完全一样,一段接电源,另一端并联一个信号线和地线。

步骤三:运行代码

步骤四:这时数码管会显示初始值0,同时按下四个按键,看数码管的变化。数码管会显示最先按下的案件编号

结果

数码管会显示最先按下的按键编号,最右边的是重置键,实现抢答器功能。

视频

http://v.youku.com/v_show/id_XNjgwMzY0MzU2.html